{"openapi":"3.0.0","paths":{"/api/v1/admin/sms/config":{"get":{"operationId":"SmsAdminController_config","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]},"put":{"operationId":"SmsAdminController_save","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/sms/test":{"post":{"operationId":"SmsAdminController_test","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/email/config":{"get":{"operationId":"EmailAdminController_config","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]},"put":{"operationId":"EmailAdminController_save","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/email/test":{"post":{"operationId":"EmailAdminController_test","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/whatsapp/config":{"get":{"operationId":"WhatsAppAdminController_config","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]},"put":{"operationId":"WhatsAppAdminController_save","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/whatsapp/test":{"post":{"operationId":"WhatsAppAdminController_test","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/push/test":{"post":{"operationId":"PushController_test","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["push"]}},"/api/v1/push/register":{"post":{"operationId":"PushController_register","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["push"]},"delete":{"operationId":"PushController_unregister","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["push"]}},"/api/v1/notifications":{"get":{"operationId":"NotificationsController_list","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["notifications"]}},"/api/v1/notifications/{id}/read":{"post":{"operationId":"NotificationsController_markRead","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["notifications"]}},"/api/v1/notifications/read-all":{"post":{"operationId":"NotificationsController_markAllRead","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["notifications"]}},"/api/v1/businesses/{businessId}/reviews":{"get":{"operationId":"ReviewsController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["reviews"]}},"/api/v1/businesses/{businessId}/reviews/inbox":{"get":{"operationId":"ReviewsController_inbox","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["reviews"]}},"/api/v1/businesses/{businessId}/reviews/{id}/reply":{"patch":{"operationId":"ReviewsController_reply","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["reviews"]}},"/api/v1/reviews/{bookingId}":{"post":{"operationId":"ReviewsController_submit","parameters":[{"name":"bookingId","required":true,"in":"path","schema":{"type":"string"}},{"name":"t","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["reviews"]}},"/api/v1/businesses/{businessId}/time-blocks":{"get":{"operationId":"TimeBlocksController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"staffId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["time-blocks"]},"post":{"operationId":"TimeBlocksController_create","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["time-blocks"]}},"/api/v1/businesses/{businessId}/time-blocks/{id}":{"delete":{"operationId":"TimeBlocksController_remove","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["time-blocks"]}},"/api/v1/admin/marketing/reengage/run":{"post":{"operationId":"MarketingController_run","parameters":[{"name":"dryRun","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["marketing"]}},"/uploads/image":{"post":{"operationId":"UploadsController_upload","parameters":[],"responses":{"201":{"description":""}},"tags":["uploads"]}},"/ical/{businessId}.ics":{"get":{"operationId":"ICalController_download","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"t","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["ical"]}},"/api/v1/admin/audit":{"get":{"operationId":"AuditController_list","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["audit"]}},"/api/v1/promos/validate":{"get":{"operationId":"PromosController_validate","parameters":[{"name":"code","required":true,"in":"query","schema":{"type":"string"}},{"name":"businessId","required":true,"in":"query","schema":{"type":"string"}},{"name":"priceCents","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["promos"]}},"/api/v1/admin/promos":{"get":{"operationId":"PromosController_list","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["promos"]},"post":{"operationId":"PromosController_create","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["promos"]}},"/api/v1/admin/promos/{id}":{"delete":{"operationId":"PromosController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["promos"]}},"/api/v1/businesses/{businessId}/chat/threads":{"get":{"operationId":"ChatController_threads","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["chat"]}},"/api/v1/businesses/{businessId}/chat/{customerId}":{"get":{"operationId":"ChatController_messages","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"customerId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["chat"]},"post":{"operationId":"ChatController_send","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"customerId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["chat"]}},"/api/v1/businesses/{businessId}/chat/{customerId}/read":{"post":{"operationId":"ChatController_markRead","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"customerId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["chat"]}},"/api/v1/me/chat/{businessId}/messages":{"get":{"operationId":"ChatController_customerMessages","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["chat"]}},"/api/v1/me/chat/{businessId}/send":{"post":{"operationId":"ChatController_customerSend","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["chat"]}},"/api/v1/businesses/{businessId}/queue/join":{"post":{"operationId":"QueueController_join","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["queue"]}},"/api/v1/queue/{id}/position":{"get":{"operationId":"QueueController_position","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["queue"]}},"/api/v1/businesses/{businessId}/queue":{"get":{"operationId":"QueueController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["queue"]}},"/api/v1/businesses/{businessId}/queue/{id}":{"patch":{"operationId":"QueueController_updateStatus","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["queue"]}},"/api/v1/businesses/{businessId}/inventory":{"get":{"operationId":"InventoryController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["inventory"]},"post":{"operationId":"InventoryController_create","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["inventory"]}},"/api/v1/businesses/{businessId}/inventory/{id}":{"patch":{"operationId":"InventoryController_update","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["inventory"]},"delete":{"operationId":"InventoryController_remove","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["inventory"]}},"/api/v1/businesses/{businessId}/inventory/{id}/stock":{"post":{"operationId":"InventoryController_adjustStock","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["inventory"]}},"/api/v1/businesses/{businessId}/inventory/import":{"post":{"operationId":"InventoryController_importCsv","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["inventory"]}},"/api/v1/auth/2fa/status":{"get":{"operationId":"TotpController_status","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["2fa"]}},"/api/v1/auth/2fa/setup":{"post":{"operationId":"TotpController_setup","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["2fa"]}},"/api/v1/auth/2fa/verify":{"post":{"operationId":"TotpController_verify","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["2fa"]}},"/api/v1/auth/2fa/disable":{"post":{"operationId":"TotpController_disable","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["2fa"]}},"/api/v1/me/export":{"get":{"operationId":"GdprController_export","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["gdpr"]}},"/api/v1/me/account":{"delete":{"operationId":"GdprController_delete","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["gdpr"]}},"/api/v1/support":{"post":{"operationId":"SupportController_submit","parameters":[],"responses":{"201":{"description":""}},"tags":["support"]}},"/api/v1/admin/support":{"get":{"operationId":"SupportController_list","parameters":[{"name":"status","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["support"]}},"/api/v1/admin/support/{id}":{"patch":{"operationId":"SupportController_setStatus","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["support"]}},"/api/v1/businesses/{businessId}/wallet/{customerId}":{"get":{"operationId":"WalletController_get","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"customerId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["wallet"]}},"/api/v1/businesses/{businessId}/wallet/{customerId}/credit":{"post":{"operationId":"WalletController_credit","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"customerId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["wallet"]}},"/api/v1/businesses/{businessId}/wallet/{customerId}/debit":{"post":{"operationId":"WalletController_debit","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"customerId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["wallet"]}},"/api/v1/receipts/{saleId}":{"get":{"operationId":"PosController_receipt","parameters":[{"name":"saleId","required":true,"in":"path","schema":{"type":"string"}},{"name":"t","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["pos"]}},"/api/v1/businesses/{businessId}/pos/receipts/{saleId}/url":{"get":{"operationId":"PosController_receiptUrl","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"saleId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["pos"]}},"/api/v1/businesses/{businessId}/pos/checkout":{"post":{"operationId":"PosController_checkout","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["pos"]}},"/api/v1/businesses/{businessId}/pos/sales":{"get":{"operationId":"PosController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["pos"]}},"/api/v1/businesses/{businessId}/waitlist/join":{"post":{"operationId":"WaitlistController_join","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["waitlist"]}},"/api/v1/businesses/{businessId}/waitlist":{"get":{"operationId":"WaitlistController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["waitlist"]}},"/api/v1/businesses/{businessId}/webhooks":{"get":{"operationId":"WebhooksController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["webhooks"]},"post":{"operationId":"WebhooksController_create","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["webhooks"]}},"/api/v1/businesses/{businessId}/webhooks/{id}":{"delete":{"operationId":"WebhooksController_remove","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["webhooks"]}},"/api/v1/me/businesses":{"get":{"operationId":"MembershipsController_list","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["memberships"]}},"/api/v1/me/businesses/current/team":{"get":{"operationId":"MembershipsController_team","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["memberships"]}},"/api/v1/me/businesses/current/seats":{"get":{"operationId":"MembershipsController_seats","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["memberships"]}},"/api/v1/me/businesses/current/seats/checkout":{"post":{"operationId":"MembershipsController_checkoutSeat","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["memberships"]}},"/api/v1/me/businesses/current/seats/confirm":{"post":{"operationId":"MembershipsController_confirmSeat","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["memberships"]}},"/api/v1/me/businesses/switch/{businessId}":{"post":{"operationId":"MembershipsController_switch","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["memberships"]}},"/api/v1/me/businesses/grant":{"post":{"operationId":"MembershipsController_grant","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["memberships"]}},"/api/v1/me/businesses/memberships/{id}":{"delete":{"operationId":"MembershipsController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["memberships"]}},"/api/v1/payments/zaincash/return":{"get":{"operationId":"PaymentsController_zaincashReturn","parameters":[{"name":"token","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["payments"]}},"/api/v1/payments/zaincash/webhook":{"post":{"operationId":"PaymentsController_zaincashWebhook","parameters":[],"responses":{"201":{"description":""}},"tags":["payments"]}},"/api/v1/payments/init":{"post":{"operationId":"PaymentsController_init","parameters":[],"responses":{"201":{"description":""}},"tags":["payments"]}},"/api/v1/payments/{id}/verify":{"post":{"operationId":"PaymentsController_verify","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["payments"]}},"/api/v1/payments/{id}/refund":{"post":{"operationId":"PaymentsController_refund","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["payments"]}},"/api/v1/payments/business/{businessId}":{"get":{"operationId":"PaymentsController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["payments"]}},"/api/v1/admin/zaincash/config":{"get":{"operationId":"ZainCashAdminController_getConfig","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]},"put":{"operationId":"ZainCashAdminController_saveConfig","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/zaincash/test":{"post":{"operationId":"ZainCashAdminController_test","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/fx/rates":{"get":{"operationId":"FxController_rates","parameters":[],"responses":{"200":{"description":""}},"tags":["fx"]}},"/api/v1/fx/convert":{"get":{"operationId":"FxController_convert","parameters":[{"name":"amount","required":true,"in":"query","schema":{"type":"string"}},{"name":"from","required":true,"in":"query","schema":{"type":"string"}},{"name":"to","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["fx"]}},"/api/v1/admin/digest/run":{"post":{"operationId":"DigestController_run","parameters":[{"name":"dryRun","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["digest"]}},"/api/v1/businesses/{businessId}/floorplan":{"get":{"operationId":"TablesController_floorPlan","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["tables"]},"put":{"operationId":"TablesController_saveFloorPlan","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["tables"]}},"/api/v1/businesses/{businessId}/tables/availability":{"get":{"operationId":"TablesController_availability","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"startAt","required":true,"in":"query","schema":{"type":"string"}},{"name":"endAt","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["tables"]}},"/api/v1/businesses/{businessId}/tables":{"get":{"operationId":"TablesController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["tables"]},"post":{"operationId":"TablesController_create","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["tables"]}},"/api/v1/businesses/{businessId}/tables/{id}":{"delete":{"operationId":"TablesController_remove","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["tables"]}},"/api/v1/businesses/{businessId}/table-orders":{"get":{"operationId":"TablesController_listOrders","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["tables"]}},"/api/v1/businesses/{businessId}/table-orders/{id}":{"patch":{"operationId":"TablesController_updateOrder","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["tables"]}},"/api/v1/tables/{token}":{"get":{"operationId":"TablesController_public","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["tables"]}},"/api/v1/tables/{token}/menu":{"get":{"operationId":"TablesController_menu","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["tables"]}},"/api/v1/tables/{token}/orders":{"post":{"operationId":"TablesController_placeOrder","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["tables"]}},"/api/v1/businesses/{businessId}/customers/{customerId}/payment-methods":{"get":{"operationId":"PaymentMethodsController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"customerId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["payment-methods"]},"post":{"operationId":"PaymentMethodsController_save","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"customerId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["payment-methods"]}},"/api/v1/businesses/{businessId}/customers/{customerId}/payment-methods/{id}":{"delete":{"operationId":"PaymentMethodsController_remove","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"customerId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["payment-methods"]}},"/api/v1/chains":{"get":{"operationId":"ChainsController_list","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["chains"]},"post":{"operationId":"ChainsController_create","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["chains"]}},"/api/v1/chains/{chainId}/businesses/{businessId}":{"post":{"operationId":"ChainsController_attach","parameters":[{"name":"chainId","required":true,"in":"path","schema":{"type":"string"}},{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["chains"]}},"/api/v1/chains/businesses/{businessId}":{"delete":{"operationId":"ChainsController_detach","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["chains"]}},"/api/v1/chains/{chainId}/rollup":{"get":{"operationId":"ChainsController_rollup","parameters":[{"name":"chainId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["chains"]}},"/api/v1/voice/incoming/{slug}":{"post":{"operationId":"VoiceController_incoming","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["voice"]}},"/api/v1/voice/handle/{slug}":{"post":{"operationId":"VoiceController_handle","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["voice"]}},"/api/v1/voice/parse/{slug}":{"get":{"operationId":"VoiceController_parse","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["voice"]}},"/api/v1/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"responses":{"201":{"description":""}},"tags":["auth"]}},"/api/v1/auth/login":{"post":{"operationId":"AuthController_login","parameters":[],"responses":{"201":{"description":""}},"tags":["auth"]}},"/api/v1/auth/otp/request":{"post":{"operationId":"AuthController_requestOtp","parameters":[],"responses":{"201":{"description":""}},"tags":["auth"]}},"/api/v1/auth/refresh":{"post":{"operationId":"AuthController_refresh","parameters":[],"responses":{"201":{"description":""}},"tags":["auth"]}},"/api/v1/auth/otp/verify":{"post":{"operationId":"AuthController_verifyOtp","parameters":[],"responses":{"201":{"description":""}},"tags":["auth"]}},"/api/v1/auth/me":{"get":{"operationId":"AuthController_me","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["auth"]}},"/api/v1/businesses":{"get":{"operationId":"BusinessesController_discover","parameters":[{"name":"category","required":true,"in":"query","schema":{"type":"string"}},{"name":"city","required":true,"in":"query","schema":{"type":"string"}},{"name":"q","required":true,"in":"query","schema":{"type":"string"}},{"name":"tag","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["businesses"]}},"/api/v1/businesses/_tags":{"get":{"operationId":"BusinessesController_listTags","parameters":[],"responses":{"200":{"description":""}},"tags":["businesses"]}},"/api/v1/businesses/me":{"get":{"operationId":"BusinessesController_findMine","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["businesses"]}},"/api/v1/businesses/me/search":{"get":{"operationId":"BusinessesController_search","parameters":[{"name":"q","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["businesses"]}},"/api/v1/businesses/me/calendar-url":{"get":{"operationId":"BusinessesController_calendarUrl","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["businesses"]}},"/api/v1/businesses/me/limits":{"get":{"operationId":"BusinessesController_myLimits","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["businesses"]}},"/api/v1/businesses/me/upgrade-request":{"post":{"operationId":"BusinessesController_requestUpgrade","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["businesses"]}},"/api/v1/businesses/{slug}":{"get":{"operationId":"BusinessesController_findBySlug","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["businesses"]}},"/api/v1/businesses/{id}":{"patch":{"operationId":"BusinessesController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["businesses"]}},"/api/v1/businesses/{id}/branches":{"get":{"operationId":"BusinessesController_branches","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["businesses"]},"post":{"operationId":"BusinessesController_createBranch","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["businesses"]}},"/api/v1/businesses/{id}/branches/{branchId}":{"patch":{"operationId":"BusinessesController_updateBranch","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"branchId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["businesses"]},"delete":{"operationId":"BusinessesController_deleteBranch","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"branchId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["businesses"]}},"/api/v1/businesses/{businessId}/services":{"get":{"operationId":"ServicesController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["services"]},"post":{"operationId":"ServicesController_create","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["services"]}},"/api/v1/businesses/{businessId}/services/{id}":{"patch":{"operationId":"ServicesController_update","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["services"]},"delete":{"operationId":"ServicesController_remove","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["services"]}},"/api/v1/availability":{"get":{"operationId":"BookingsController_getAvailability","parameters":[],"responses":{"200":{"description":""}},"tags":["bookings"]}},"/api/v1/bookings":{"post":{"operationId":"BookingsController_create","parameters":[],"responses":{"201":{"description":""}},"tags":["bookings"]}},"/api/v1/bookings/{id}/cancel":{"post":{"operationId":"BookingsController_cancel","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"t","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["bookings"]}},"/api/v1/bookings/{id}/check-in":{"post":{"operationId":"BookingsController_checkIn","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"t","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["bookings"]}},"/api/v1/bookings/mine":{"get":{"operationId":"BookingsController_mine","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["bookings"]}},"/api/v1/businesses/{businessId}/bookings":{"get":{"operationId":"BookingsController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}},{"name":"from","required":true,"in":"query","schema":{"type":"string"}},{"name":"to","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["bookings"]}},"/api/v1/businesses/{businessId}/bookings/recurring":{"get":{"operationId":"BookingsController_recurring","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["bookings"]}},"/api/v1/businesses/{businessId}/bookings/recurring/pause":{"post":{"operationId":"BookingsController_pauseRecurring","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["bookings"]}},"/api/v1/businesses/{businessId}/bookings/{id}/status":{"patch":{"operationId":"BookingsController_updateStatus","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["bookings"]}},"/api/v1/businesses/{businessId}/staff":{"get":{"operationId":"StaffController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["staff"]},"post":{"operationId":"StaffController_create","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]}],"tags":["staff"]}},"/api/v1/businesses/{businessId}/staff/{id}":{"patch":{"operationId":"StaffController_update","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["staff"]},"delete":{"operationId":"StaffController_remove","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["staff"]}},"/api/v1/businesses/{businessId}/customers":{"get":{"operationId":"CustomersController_list","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"q","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["customers"]}},"/api/v1/businesses/{businessId}/customers/{id}":{"get":{"operationId":"CustomersController_detail","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["customers"]},"patch":{"operationId":"CustomersController_update","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["customers"]}},"/api/v1/admin/fx":{"get":{"operationId":"AdminController_getFx","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]},"put":{"operationId":"AdminController_setFx","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/stats":{"get":{"operationId":"AdminController_stats","parameters":[{"name":"days","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/commission":{"get":{"operationId":"AdminController_commission","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/inbox":{"get":{"operationId":"AdminController_inbox","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/businesses":{"get":{"operationId":"AdminController_listBusinesses","parameters":[{"name":"q","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/businesses/{id}/subscription":{"patch":{"operationId":"AdminController_updateSubscription","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/businesses/{id}/active":{"patch":{"operationId":"AdminController_setActive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/admin/businesses/{id}/branding":{"patch":{"operationId":"AdminController_setBranding","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["admin"]}},"/api/v1/businesses/{businessId}/analytics/zreport":{"get":{"operationId":"AnalyticsController_zreport","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"date","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["analytics"]}},"/api/v1/businesses/{businessId}/analytics/summary":{"get":{"operationId":"AnalyticsController_summary","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}},{"name":"days","required":true,"in":"query","schema":{"type":"string"}},{"name":"branchId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["analytics"]}},"/api/v1/businesses/{businessId}/analytics/export.csv":{"get":{"operationId":"AnalyticsController_exportCsv","parameters":[{"name":"businessId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]}],"tags":["analytics"]}},"/api/v1/health":{"get":{"operationId":"HealthController_health","parameters":[],"responses":{"200":{"description":""}},"tags":["health"]}}},"info":{"title":"Katlink API","description":"Booking platform for Iraqi SMEs","version":"0.1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{}}}