feat(admin): add business settings API and routing for gift card config

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
2026-06-11 22:08:21 +01:00
co-authored by Sisyphus
parent 30ded0bb95
commit 44895a3697
3 changed files with 423 additions and 0 deletions
+10
View File
@@ -225,6 +225,9 @@ func main() {
// Guest user creation (public, no auth required)
r.With(mw.RateLimit(10, time.Minute), limitBody(defaultBodyLimit)).Post("/users/guest", user.CreateGuestUserHandler)
// Public email check (used by BookingFlow for proactive registered-email detection)
r.With(mw.RateLimit(60, time.Minute)).Get("/check-email", user.CheckEmailHandler)
// Authenticated users
r.Group(func(r chi.Router) {
r.Use(mw.RequireAuth)
@@ -357,10 +360,17 @@ r.Route("/admin/users", func(r chi.Router) {
r.Post("/admin/gift-cards", payments.CreateGiftCard)
r.Put("/admin/gift-cards/{id}/topup", payments.TopUpGiftCard)
r.Post("/admin/gift-cards/{from}/transfer", payments.TransferGiftCard)
r.Get("/admin/gift-cards/expired-balances", payments.GetExpiredBalances)
r.Post("/admin/gift-cards/expired-balances/claim", payments.ClaimExpiredBalance)
// Admin till sale routes (POS transactions not linked to bookings)
r.Post("/admin/till/sale", payments.CreateTillSale)
r.Get("/admin/till/sale/checkout/{checkout_id}/status", payments.GetTillCheckoutStatus)
r.Route("/admin/settings", func(r chi.Router) {
r.Get("/", admin.GetBusinessSettings)
r.Put("/", admin.UpdateBusinessSettings)
})
})
})