[{"data":1,"prerenderedAt":2905},["ShallowReactive",2],{"navigation":3,"\u002Fbooki-documentation\u002Fapi\u002Fauth":303,"\u002Fbooki-documentation\u002Fapi\u002Fauth-surround":2900},[4,55,105],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":54},"Nuxt Guide","i-lucide-layout","\u002Fnuxt-guide","1.nuxt-guide",[10,14,19,24,29,34,39,44,49],{"title":11,"path":12,"stem":13,"icon":6},"Overview","\u002Fnuxt-guide\u002Foverview","1.nuxt-guide\u002F1.overview",{"title":15,"path":16,"stem":17,"icon":18},"Folder Structure","\u002Fnuxt-guide\u002Ffolder-structure","1.nuxt-guide\u002F2.folder-structure","i-lucide-folder-tree",{"title":20,"path":21,"stem":22,"icon":23},"Components","\u002Fnuxt-guide\u002Fcomponents","1.nuxt-guide\u002F3.components","i-lucide-component",{"title":25,"path":26,"stem":27,"icon":28},"Composables","\u002Fnuxt-guide\u002Fcomposables","1.nuxt-guide\u002F4.composables","i-lucide-puzzle",{"title":30,"path":31,"stem":32,"icon":33},"Pages & Routing","\u002Fnuxt-guide\u002Fpages-routing","1.nuxt-guide\u002F5.pages-routing","i-lucide-file-text",{"title":35,"path":36,"stem":37,"icon":38},"Middleware","\u002Fnuxt-guide\u002Fmiddleware","1.nuxt-guide\u002F6.middleware","i-lucide-shield-check",{"title":40,"path":41,"stem":42,"icon":43},"Plugins","\u002Fnuxt-guide\u002Fplugins","1.nuxt-guide\u002F7.plugins","i-lucide-plug",{"title":45,"path":46,"stem":47,"icon":48},"State Management","\u002Fnuxt-guide\u002Fstate-management","1.nuxt-guide\u002F8.state-management","i-lucide-database",{"title":50,"path":51,"stem":52,"icon":53},"TypeScript","\u002Fnuxt-guide\u002Ftypescript","1.nuxt-guide\u002F9.typescript","i-lucide-braces",false,{"title":56,"icon":57,"path":58,"stem":59,"children":60,"page":54},"Node \u002F Express Guide","i-lucide-server","\u002Fnode-express-guide","2.node-express-guide",[61,64,69,72,77,82,86,91,96,100],{"title":11,"path":62,"stem":63,"icon":57},"\u002Fnode-express-guide\u002Foverview","2.node-express-guide\u002F1.overview",{"title":65,"path":66,"stem":67,"icon":68},"Error Handling","\u002Fnode-express-guide\u002Ferror-handling","2.node-express-guide\u002F10.error-handling","i-lucide-alert-triangle",{"title":15,"path":70,"stem":71,"icon":18},"\u002Fnode-express-guide\u002Ffolder-structure","2.node-express-guide\u002F2.folder-structure",{"title":73,"path":74,"stem":75,"icon":76},"Controllers","\u002Fnode-express-guide\u002Fcontrollers","2.node-express-guide\u002F3.controllers","i-lucide-cpu",{"title":78,"path":79,"stem":80,"icon":81},"Services","\u002Fnode-express-guide\u002Fservices","2.node-express-guide\u002F4.services","i-lucide-workflow",{"title":83,"path":84,"stem":85,"icon":48},"Repositories","\u002Fnode-express-guide\u002Frepositories","2.node-express-guide\u002F5.repositories",{"title":87,"path":88,"stem":89,"icon":90},"Models","\u002Fnode-express-guide\u002Fmodels","2.node-express-guide\u002F6.models","i-lucide-boxes",{"title":92,"path":93,"stem":94,"icon":95},"Routes","\u002Fnode-express-guide\u002Froutes","2.node-express-guide\u002F7.routes","i-lucide-route",{"title":35,"path":97,"stem":98,"icon":99},"\u002Fnode-express-guide\u002Fmiddleware","2.node-express-guide\u002F8.middleware","i-lucide-shield",{"title":101,"path":102,"stem":103,"icon":104},"Validation","\u002Fnode-express-guide\u002Fvalidation","2.node-express-guide\u002F9.validation","i-lucide-check-circle",{"title":106,"icon":107,"path":108,"stem":109,"children":110,"page":54},"Booki Documentation","i-lucide-book-open","\u002Fbooki-documentation","3.booki-documentation",[111,115,120,125,130,229,244,257],{"title":112,"path":113,"stem":114,"icon":107},"Project Overview","\u002Fbooki-documentation\u002Foverview","3.booki-documentation\u002F1.overview",{"title":116,"path":117,"stem":118,"icon":119},"Installation","\u002Fbooki-documentation\u002F1.installation","3.booki-documentation\u002F2.1.installation","i-lucide-download",{"title":121,"path":122,"stem":123,"icon":124},"Development Overview","\u002Fbooki-documentation\u002F2.architecture","3.booki-documentation\u002F2.2.architecture","i-lucide-layers",{"title":126,"path":127,"stem":128,"icon":129},"Local Development","\u002Fbooki-documentation\u002F3.local-development","3.booki-documentation\u002F2.3.local-development","i-lucide-monitor",{"title":131,"icon":57,"path":132,"stem":133,"children":134,"page":54},"API","\u002Fbooki-documentation\u002Fapi","3.booki-documentation\u002F3.api",[135,139,144,149,154,159,163,168,173,178,183,188,192,197,202,206,211,216,220,224],{"title":136,"path":137,"stem":138,"icon":57},"Booki API Reference","\u002Fbooki-documentation\u002Fapi\u002Fbooki-api","3.booki-documentation\u002F3.api\u002F1.booki-api",{"title":140,"path":141,"stem":142,"icon":143},"Auth - Login & Refresh","\u002Fbooki-documentation\u002Fapi\u002Fauth","3.booki-documentation\u002F3.api\u002F2.auth","i-lucide-key",{"title":145,"path":146,"stem":147,"icon":148},"Auth - Customer Registration","\u002Fbooki-documentation\u002Fapi\u002Fauth-customer-register","3.booki-documentation\u002F3.api\u002F2.auth-customer-register","i-lucide-user-check",{"title":150,"path":151,"stem":152,"icon":153},"Auth - Owner Registration","\u002Fbooki-documentation\u002Fapi\u002Fauth-owner-register","3.booki-documentation\u002F3.api\u002F2.auth-owner-register","i-lucide-user-plus",{"title":155,"path":156,"stem":157,"icon":158},"Bookings","\u002Fbooki-documentation\u002Fapi\u002Fbookings","3.booki-documentation\u002F3.api\u002F3.bookings","i-lucide-calendar-check",{"title":160,"path":161,"stem":162,"icon":158},"Bookings - Authenticated","\u002Fbooki-documentation\u002Fapi\u002Fbookings-auth","3.booki-documentation\u002F3.api\u002F3.bookings-auth",{"title":164,"path":165,"stem":166,"icon":167},"Bookings - Public & Guest","\u002Fbooki-documentation\u002Fapi\u002Fbookings-public","3.booki-documentation\u002F3.api\u002F3.bookings-public","i-lucide-calendar-plus",{"title":169,"path":170,"stem":171,"icon":172},"Booking Services","\u002Fbooki-documentation\u002Fapi\u002Fbooking-services","3.booki-documentation\u002F3.api\u002F4.booking-services","i-lucide-box",{"title":174,"path":175,"stem":176,"icon":177},"Organizations - Branches","\u002Fbooki-documentation\u002Fapi\u002Fbranches","3.booki-documentation\u002F3.api\u002F5.branches","i-lucide-git-branch",{"title":179,"path":180,"stem":181,"icon":182},"Organizations - Business Hours","\u002Fbooki-documentation\u002Fapi\u002Fbusiness-hours","3.booki-documentation\u002F3.api\u002F5.business-hours","i-lucide-clock",{"title":184,"path":185,"stem":186,"icon":187},"Organizations - Base","\u002Fbooki-documentation\u002Fapi\u002Forganizations","3.booki-documentation\u002F3.api\u002F5.organizations","i-lucide-building-2",{"title":189,"path":190,"stem":191,"icon":172},"Organizations - Packages","\u002Fbooki-documentation\u002Fapi\u002Fpackages","3.booki-documentation\u002F3.api\u002F5.packages",{"title":193,"path":194,"stem":195,"icon":196},"Organizations - Payments & Integrations","\u002Fbooki-documentation\u002Fapi\u002Fpayments","3.booki-documentation\u002F3.api\u002F5.payments","i-lucide-credit-card",{"title":198,"path":199,"stem":200,"icon":201},"Users - Profile & Settings","\u002Fbooki-documentation\u002Fapi\u002Fusers","3.booki-documentation\u002F3.api\u002F6.users","i-lucide-user",{"title":203,"path":204,"stem":205,"icon":196},"Maya Payments","\u002Fbooki-documentation\u002Fapi\u002Fmaya","3.booki-documentation\u002F3.api\u002F7.maya",{"title":207,"path":208,"stem":209,"icon":210},"Owner - Booking Management","\u002Fbooki-documentation\u002Fapi\u002Fowner-bookings","3.booki-documentation\u002F3.api\u002F7.owner-bookings","i-lucide-calendar",{"title":212,"path":213,"stem":214,"icon":215},"Owner - Customer Management","\u002Fbooki-documentation\u002Fapi\u002Fowner-customers","3.booki-documentation\u002F3.api\u002F7.owner-customers","i-lucide-users",{"title":217,"path":218,"stem":219,"icon":196},"Admin - Billing & Subscriptions","\u002Fbooki-documentation\u002Fapi\u002Fadmin-billing","3.booki-documentation\u002F3.api\u002F8.admin-billing",{"title":221,"path":222,"stem":223,"icon":187},"Admin - Organizations Management","\u002Fbooki-documentation\u002Fapi\u002Fadmin-organizations","3.booki-documentation\u002F3.api\u002F8.admin-organizations",{"title":225,"path":226,"stem":227,"icon":228},"Admin - User Management","\u002Fbooki-documentation\u002Fapi\u002Fadmin-users","3.booki-documentation\u002F3.api\u002F8.admin-users","i-lucide-shield-admin",{"title":230,"icon":231,"path":232,"stem":233,"children":234,"page":54},"Shared","i-lucide-package","\u002Fbooki-documentation\u002Fshared","3.booki-documentation\u002F4.shared",[235,240],{"title":236,"path":237,"stem":238,"icon":239},"codi-node-utils","\u002Fbooki-documentation\u002Fshared\u002Fcodi-node-utils","3.booki-documentation\u002F4.shared\u002F1.codi-node-utils","i-lucide-wrench",{"title":241,"path":242,"stem":243,"icon":124},"codi-layer","\u002Fbooki-documentation\u002Fshared\u002Fcodi-layer","3.booki-documentation\u002F4.shared\u002F2.codi-layer",{"title":245,"path":246,"stem":247,"children":248,"page":54},"Flowcharts","\u002Fbooki-documentation\u002Fflowcharts","3.booki-documentation\u002F5.flowcharts",[249,253],{"title":250,"path":251,"stem":252,"icon":158},"Owner Booking Management Flow","\u002Fbooki-documentation\u002Fflowcharts\u002Fowner-booking-management","3.booki-documentation\u002F5.flowcharts\u002F1.owner-booking-management",{"title":254,"path":255,"stem":256,"icon":167},"Customer Booking Flow","\u002Fbooki-documentation\u002Fflowcharts\u002Fcustomer-booking-flow","3.booki-documentation\u002F5.flowcharts\u002F2.customer-booking-flow",{"title":258,"path":259,"stem":260,"children":261,"page":54},"Guides","\u002Fbooki-documentation\u002Fguides","3.booki-documentation\u002Fguides",[262,267,271,275,280,285,290,294,298],{"title":263,"path":264,"stem":265,"icon":266},"Guide - Authentication Flow & Sessions","\u002Fbooki-documentation\u002Fguides\u002Fguides-auth-flow","3.booki-documentation\u002Fguides\u002Fguides-auth-flow","i-lucide-lock",{"title":268,"path":269,"stem":270,"icon":177},"Guide - Branch Management","\u002Fbooki-documentation\u002Fguides\u002Fguides-branch-management","3.booki-documentation\u002Fguides\u002Fguides-branch-management",{"title":272,"path":273,"stem":274,"icon":196},"Guide - Customer Payment Methods","\u002Fbooki-documentation\u002Fguides\u002Fguides-customer-payments","3.booki-documentation\u002Fguides\u002Fguides-customer-payments",{"title":276,"path":277,"stem":278,"icon":279},"Guide - Environment Setup","\u002Fbooki-documentation\u002Fguides\u002Fguides-environment-setup","3.booki-documentation\u002Fguides\u002Fguides-environment-setup","i-lucide-settings",{"title":281,"path":282,"stem":283,"icon":284},"Guide - Common Error Responses","\u002Fbooki-documentation\u002Fguides\u002Fguides-errors","3.booki-documentation\u002Fguides\u002Fguides-errors","i-lucide-alert-circle",{"title":286,"path":287,"stem":288,"icon":289},"Guide - Gmail SMTP Setup","\u002Fbooki-documentation\u002Fguides\u002Fguides-gmail-setup","3.booki-documentation\u002Fguides\u002Fguides-gmail-setup","i-lucide-mail",{"title":291,"path":292,"stem":293,"icon":124},"Guide - Multi-Tenancy & Tenant Slug Resolution","\u002Fbooki-documentation\u002Fguides\u002Fguides-multi-tenancy","3.booki-documentation\u002Fguides\u002Fguides-multi-tenancy",{"title":295,"path":296,"stem":297,"icon":48},"Guide - Redis Caching","\u002Fbooki-documentation\u002Fguides\u002Fguides-redis","3.booki-documentation\u002Fguides\u002Fguides-redis",{"title":299,"path":300,"stem":301,"icon":302},"Guide - Subscription Billing","\u002Fbooki-documentation\u002Fguides\u002Fguides-subscription-billing","3.booki-documentation\u002Fguides\u002Fguides-subscription-billing","i-lucide-receipt",{"id":304,"title":140,"body":305,"description":2893,"extension":2894,"links":2895,"meta":2896,"navigation":2897,"path":141,"seo":2898,"stem":142,"__hash__":2899},"docs\u002F3.booki-documentation\u002F3.api\u002F2.auth.md",{"type":306,"value":307,"toc":2857},"minimark",[308,316,325,378,403,408,480,483,497,516,520,602,606,676,683,687,693,749,755,800,805,849,855,900,904,909,978,983,1024,1027,1034,1055,1060,1063,1093,1096,1144,1147,1152,1196,1200,1243,1245,1253,1275,1280,1283,1291,1294,1527,1555,1558,1564,1609,1612,1642,1644,1651,1683,1688,1691,1696,1699,2715,2718,2746,2748,2756,2772,2777,2780,2785,2788,2791,2821,2824,2853],[309,310,311,312],"p",{},"Base path: ",[313,314,315],"code",{},"\u002Fapi\u002Fv1\u002Fauth",[317,318,320,321,324],"h2",{"id":319},"post-apiv1authlogin-login","POST ",[313,322,323],{},"\u002Fapi\u002Fv1\u002Fauth\u002Flogin"," — Login",[309,326,327,331,332,335,338,339,342,343,342,346,342,349,352,353,355,358,359,362,363,366,367,342,370,373,374,377],{},[328,329,330],"strong",{},"Auth:"," Public",[333,334],"br",{},[328,336,337],{},"Used by:"," All apps (",[313,340,341],{},"cms-booki-web-app",", ",[313,344,345],{},"owner-booki-web-app",[313,347,348],{},"customer-booki-web-app",[313,350,351],{},"admin-booki-web-app",")",[333,354],{},[328,356,357],{},"organizationId:"," Resolved by tenant middleware (",[313,360,361],{},"resolveOptionalTenant",") — if ",[313,364,365],{},"x-tenant-slug"," header is present, login is scoped to that organization (customers, owners, branch managers); if absent, only ",[313,368,369],{},"owner",[313,371,372],{},"branch-manager",", and ",[313,375,376],{},"admin"," accounts may log in globally.",[309,379,380,383,384,387,388,391,392,395,396,398,399,402],{},[328,381,382],{},"Description:"," Login with email and password. Returns ",[313,385,386],{},"accessToken"," and ",[313,389,390],{},"refreshToken"," in the response body; the ",[313,393,394],{},"$api"," plugin stores them and injects ",[313,397,386],{}," as ",[313,400,401],{},"Authorization: Bearer"," on all subsequent requests.",[404,405,407],"h3",{"id":406},"request","Request",[409,410,415],"pre",{"className":411,"code":412,"language":413,"meta":414,"style":414},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"email\": \"owner@example.com\",\n  \"password\": \"SecureP@ss123\"\n}\n","json","",[313,416,417,426,454,474],{"__ignoreMap":414},[418,419,422],"span",{"class":420,"line":421},"line",1,[418,423,425],{"class":424},"sMK4o","{\n",[418,427,429,432,436,439,442,445,449,451],{"class":420,"line":428},2,[418,430,431],{"class":424},"  \"",[418,433,435],{"class":434},"spNyl","email",[418,437,438],{"class":424},"\"",[418,440,441],{"class":424},":",[418,443,444],{"class":424}," \"",[418,446,448],{"class":447},"sfazB","owner@example.com",[418,450,438],{"class":424},[418,452,453],{"class":424},",\n",[418,455,457,459,462,464,466,468,471],{"class":420,"line":456},3,[418,458,431],{"class":424},[418,460,461],{"class":434},"password",[418,463,438],{"class":424},[418,465,441],{"class":424},[418,467,444],{"class":424},[418,469,470],{"class":447},"SecureP@ss123",[418,472,473],{"class":424},"\"\n",[418,475,477],{"class":420,"line":476},4,[418,478,479],{"class":424},"}\n",[309,481,482],{},"Fields:",[484,485,486,492],"ul",{},[487,488,489,491],"li",{},[313,490,435],{}," (string, required): User email (lowercase, valid email format)",[487,493,494,496],{},[313,495,461],{}," (string, required): Min 8 chars, uppercase + lowercase + number + special char",[498,499,500],"blockquote",{},[309,501,502,505,506,509,510,512,513,515],{},[328,503,504],{},"Note:"," ",[313,507,508],{},"organizationId"," is NOT sent in the request body. It is resolved from the ",[313,511,365],{}," header (auto-injected by the Nuxt ",[313,514,394],{}," plugin from the subdomain). For global owner\u002Fadmin login (no subdomain), omit the header entirely.",[404,517,519],{"id":518},"login-behavior-by-app","Login Behavior by App",[521,522,523,539],"table",{},[524,525,526],"thead",{},[527,528,529,533,536],"tr",{},[530,531,532],"th",{},"App",[530,534,535],{},"Subdomain",[530,537,538],{},"Behavior",[540,541,542,557,570,588],"tbody",{},[527,543,544,549,554],{},[545,546,547],"td",{},[313,548,341],{},[545,550,551],{},[313,552,553],{},"janes-salon.booki.app",[545,555,556],{},"Tenant-scoped — customers, owners, branch managers of that org",[527,558,559,563,567],{},[545,560,561],{},[313,562,348],{},[545,564,565],{},[313,566,553],{},[545,568,569],{},"Customer login scoped to tenant",[527,571,572,576,582],{},[545,573,574],{},[313,575,345],{},[545,577,578,581],{},[313,579,580],{},"owner.booki.app"," (no tenant subdomain)",[545,583,584,585,587],{},"Global owner\u002Fadmin login — ",[313,586,365],{}," not sent",[527,589,590,594,599],{},[545,591,592],{},[313,593,351],{},[545,595,596,581],{},[313,597,598],{},"admin.booki.app",[545,600,601],{},"Global admin login",[404,603,605],{"id":604},"response-200-ok","Response (200 OK)",[409,607,609],{"className":411,"code":608,"language":413,"meta":414,"style":414},"{\n  \"accessToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"refreshToken\": \"abc123def456...\",\n  \"_id\": \"507f1f77bcf86cd799439011\"\n}\n",[313,610,611,615,634,653,671],{"__ignoreMap":414},[418,612,613],{"class":420,"line":421},[418,614,425],{"class":424},[418,616,617,619,621,623,625,627,630,632],{"class":420,"line":428},[418,618,431],{"class":424},[418,620,386],{"class":434},[418,622,438],{"class":424},[418,624,441],{"class":424},[418,626,444],{"class":424},[418,628,629],{"class":447},"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",[418,631,438],{"class":424},[418,633,453],{"class":424},[418,635,636,638,640,642,644,646,649,651],{"class":420,"line":456},[418,637,431],{"class":424},[418,639,390],{"class":434},[418,641,438],{"class":424},[418,643,441],{"class":424},[418,645,444],{"class":424},[418,647,648],{"class":447},"abc123def456...",[418,650,438],{"class":424},[418,652,453],{"class":424},[418,654,655,657,660,662,664,666,669],{"class":420,"line":476},[418,656,431],{"class":424},[418,658,659],{"class":434},"_id",[418,661,438],{"class":424},[418,663,441],{"class":424},[418,665,444],{"class":424},[418,667,668],{"class":447},"507f1f77bcf86cd799439011",[418,670,473],{"class":424},[418,672,674],{"class":420,"line":673},5,[418,675,479],{"class":424},[309,677,678,679,682],{},"The frontend plugin stores the tokens and sends ",[313,680,681],{},"Authorization: Bearer \u003CaccessToken>"," on every subsequent request.",[404,684,686],{"id":685},"error-responses","Error Responses",[309,688,689,692],{},[328,690,691],{},"422 Unprocessable Entity"," — Missing or invalid fields:",[409,694,696],{"className":411,"code":695,"language":413,"meta":414,"style":414},"{\n  \"statusCode\": 422,\n  \"message\": \"\\\"email\\\" must be a valid email\"\n}\n",[313,697,698,702,719,745],{"__ignoreMap":414},[418,699,700],{"class":420,"line":421},[418,701,425],{"class":424},[418,703,704,706,709,711,713,717],{"class":420,"line":428},[418,705,431],{"class":424},[418,707,708],{"class":434},"statusCode",[418,710,438],{"class":424},[418,712,441],{"class":424},[418,714,716],{"class":715},"sbssI"," 422",[418,718,453],{"class":424},[418,720,721,723,726,728,730,732,736,738,740,743],{"class":420,"line":456},[418,722,431],{"class":424},[418,724,725],{"class":434},"message",[418,727,438],{"class":424},[418,729,441],{"class":424},[418,731,444],{"class":424},[418,733,735],{"class":734},"sTEyZ","\\\"",[418,737,435],{"class":447},[418,739,735],{"class":734},[418,741,742],{"class":447}," must be a valid email",[418,744,473],{"class":424},[418,746,747],{"class":420,"line":476},[418,748,479],{"class":424},[309,750,751,754],{},[328,752,753],{},"400 Bad Request"," — Too many failed attempts (5+):",[409,756,758],{"className":411,"code":757,"language":413,"meta":414,"style":414},"{\n  \"statusCode\": 400,\n  \"message\": \"Too many failed attempts. Please try again later.\"\n}\n",[313,759,760,764,779,796],{"__ignoreMap":414},[418,761,762],{"class":420,"line":421},[418,763,425],{"class":424},[418,765,766,768,770,772,774,777],{"class":420,"line":428},[418,767,431],{"class":424},[418,769,708],{"class":434},[418,771,438],{"class":424},[418,773,441],{"class":424},[418,775,776],{"class":715}," 400",[418,778,453],{"class":424},[418,780,781,783,785,787,789,791,794],{"class":420,"line":456},[418,782,431],{"class":424},[418,784,725],{"class":434},[418,786,438],{"class":424},[418,788,441],{"class":424},[418,790,444],{"class":424},[418,792,793],{"class":447},"Too many failed attempts. Please try again later.",[418,795,473],{"class":424},[418,797,798],{"class":420,"line":476},[418,799,479],{"class":424},[309,801,802,804],{},[328,803,753],{}," — Suspended owner account:",[409,806,808],{"className":411,"code":807,"language":413,"meta":414,"style":414},"{\n  \"statusCode\": 400,\n  \"message\": \"Your account has been suspended. Please contact support for assistance.\"\n}\n",[313,809,810,814,828,845],{"__ignoreMap":414},[418,811,812],{"class":420,"line":421},[418,813,425],{"class":424},[418,815,816,818,820,822,824,826],{"class":420,"line":428},[418,817,431],{"class":424},[418,819,708],{"class":434},[418,821,438],{"class":424},[418,823,441],{"class":424},[418,825,776],{"class":715},[418,827,453],{"class":424},[418,829,830,832,834,836,838,840,843],{"class":420,"line":456},[418,831,431],{"class":424},[418,833,725],{"class":434},[418,835,438],{"class":424},[418,837,441],{"class":424},[418,839,444],{"class":424},[418,841,842],{"class":447},"Your account has been suspended. Please contact support for assistance.",[418,844,473],{"class":424},[418,846,847],{"class":420,"line":476},[418,848,479],{"class":424},[309,850,851,854],{},[328,852,853],{},"404 Not Found"," — Invalid credentials:",[409,856,858],{"className":411,"code":857,"language":413,"meta":414,"style":414},"{\n  \"statusCode\": 404,\n  \"message\": \"Invalid credentials.\"\n}\n",[313,859,860,864,879,896],{"__ignoreMap":414},[418,861,862],{"class":420,"line":421},[418,863,425],{"class":424},[418,865,866,868,870,872,874,877],{"class":420,"line":428},[418,867,431],{"class":424},[418,869,708],{"class":434},[418,871,438],{"class":424},[418,873,441],{"class":424},[418,875,876],{"class":715}," 404",[418,878,453],{"class":424},[418,880,881,883,885,887,889,891,894],{"class":420,"line":456},[418,882,431],{"class":424},[418,884,725],{"class":434},[418,886,438],{"class":424},[418,888,441],{"class":424},[418,890,444],{"class":424},[418,892,893],{"class":447},"Invalid credentials.",[418,895,473],{"class":424},[418,897,898],{"class":420,"line":476},[418,899,479],{"class":424},[404,901,903],{"id":902},"curl-examples","cURL Examples",[309,905,906],{},[328,907,908],{},"Tenant-scoped login (customer\u002Fowner on subdomain):",[409,910,914],{"className":911,"code":912,"language":913,"meta":414,"style":414},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -i -X POST http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fauth\u002Flogin \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"X-Tenant-Slug: janes-salon\" \\\n  -d '{\"email\": \"owner@example.com\", \"password\": \"SecureP@ss123\"}'\n","bash",[313,915,916,937,951,964],{"__ignoreMap":414},[418,917,918,922,925,928,931,934],{"class":420,"line":421},[418,919,921],{"class":920},"sBMFI","curl",[418,923,924],{"class":447}," -i",[418,926,927],{"class":447}," -X",[418,929,930],{"class":447}," POST",[418,932,933],{"class":447}," http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fauth\u002Flogin",[418,935,936],{"class":734}," \\\n",[418,938,939,942,944,947,949],{"class":420,"line":428},[418,940,941],{"class":447},"  -H",[418,943,444],{"class":424},[418,945,946],{"class":447},"Content-Type: application\u002Fjson",[418,948,438],{"class":424},[418,950,936],{"class":734},[418,952,953,955,957,960,962],{"class":420,"line":456},[418,954,941],{"class":447},[418,956,444],{"class":424},[418,958,959],{"class":447},"X-Tenant-Slug: janes-salon",[418,961,438],{"class":424},[418,963,936],{"class":734},[418,965,966,969,972,975],{"class":420,"line":476},[418,967,968],{"class":447},"  -d",[418,970,971],{"class":424}," '",[418,973,974],{"class":447},"{\"email\": \"owner@example.com\", \"password\": \"SecureP@ss123\"}",[418,976,977],{"class":424},"'\n",[309,979,980],{},[328,981,982],{},"Global owner\u002Fadmin login (no subdomain):",[409,984,986],{"className":911,"code":985,"language":913,"meta":414,"style":414},"curl -i -X POST http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fauth\u002Flogin \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"email\": \"owner@example.com\", \"password\": \"SecureP@ss123\"}'\n",[313,987,988,1002,1014],{"__ignoreMap":414},[418,989,990,992,994,996,998,1000],{"class":420,"line":421},[418,991,921],{"class":920},[418,993,924],{"class":447},[418,995,927],{"class":447},[418,997,930],{"class":447},[418,999,933],{"class":447},[418,1001,936],{"class":734},[418,1003,1004,1006,1008,1010,1012],{"class":420,"line":428},[418,1005,941],{"class":447},[418,1007,444],{"class":424},[418,1009,946],{"class":447},[418,1011,438],{"class":424},[418,1013,936],{"class":734},[418,1015,1016,1018,1020,1022],{"class":420,"line":456},[418,1017,968],{"class":447},[418,1019,971],{"class":424},[418,1021,974],{"class":447},[418,1023,977],{"class":424},[1025,1026],"hr",{},[317,1028,320,1030,1033],{"id":1029},"post-apiv1authrefresh-refresh-token",[313,1031,1032],{},"\u002Fapi\u002Fv1\u002Fauth\u002Frefresh"," — Refresh Token",[309,1035,1036,1038,1039,1041,1042,1044,1046,1047,1049,1050,1052,1054],{},[328,1037,330],{}," Public (uses ",[313,1040,390],{}," from previous login)",[333,1043],{},[328,1045,337],{}," All authenticated apps (automatic — called by ",[313,1048,394],{}," plugin on 401)",[333,1051],{},[328,1053,357],{}," Carried over from the existing refresh token payload (no header needed)",[309,1056,1057,1059],{},[328,1058,382],{}," Exchange refresh token for a new access token without re-login.",[404,1061,407],{"id":1062},"request-1",[409,1064,1066],{"className":411,"code":1065,"language":413,"meta":414,"style":414},"{\n  \"token\": \"abc123def456...\"\n}\n",[313,1067,1068,1072,1089],{"__ignoreMap":414},[418,1069,1070],{"class":420,"line":421},[418,1071,425],{"class":424},[418,1073,1074,1076,1079,1081,1083,1085,1087],{"class":420,"line":428},[418,1075,431],{"class":424},[418,1077,1078],{"class":434},"token",[418,1080,438],{"class":424},[418,1082,441],{"class":424},[418,1084,444],{"class":424},[418,1086,648],{"class":447},[418,1088,473],{"class":424},[418,1090,1091],{"class":420,"line":456},[418,1092,479],{"class":424},[404,1094,605],{"id":1095},"response-200-ok-1",[409,1097,1099],{"className":411,"code":1098,"language":413,"meta":414,"style":414},"{\n  \"accessToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"refreshToken\": \"newRefreshToken123...\"\n}\n",[313,1100,1101,1105,1123,1140],{"__ignoreMap":414},[418,1102,1103],{"class":420,"line":421},[418,1104,425],{"class":424},[418,1106,1107,1109,1111,1113,1115,1117,1119,1121],{"class":420,"line":428},[418,1108,431],{"class":424},[418,1110,386],{"class":434},[418,1112,438],{"class":424},[418,1114,441],{"class":424},[418,1116,444],{"class":424},[418,1118,629],{"class":447},[418,1120,438],{"class":424},[418,1122,453],{"class":424},[418,1124,1125,1127,1129,1131,1133,1135,1138],{"class":420,"line":456},[418,1126,431],{"class":424},[418,1128,390],{"class":434},[418,1130,438],{"class":424},[418,1132,441],{"class":424},[418,1134,444],{"class":424},[418,1136,1137],{"class":447},"newRefreshToken123...",[418,1139,473],{"class":424},[418,1141,1142],{"class":420,"line":476},[418,1143,479],{"class":424},[404,1145,686],{"id":1146},"error-responses-1",[309,1148,1149,1151],{},[328,1150,753],{}," — Invalid or expired refresh token:",[409,1153,1155],{"className":411,"code":1154,"language":413,"meta":414,"style":414},"{\n  \"statusCode\": 400,\n  \"message\": \"Invalid or expired refresh token.\"\n}\n",[313,1156,1157,1161,1175,1192],{"__ignoreMap":414},[418,1158,1159],{"class":420,"line":421},[418,1160,425],{"class":424},[418,1162,1163,1165,1167,1169,1171,1173],{"class":420,"line":428},[418,1164,431],{"class":424},[418,1166,708],{"class":434},[418,1168,438],{"class":424},[418,1170,441],{"class":424},[418,1172,776],{"class":715},[418,1174,453],{"class":424},[418,1176,1177,1179,1181,1183,1185,1187,1190],{"class":420,"line":456},[418,1178,431],{"class":424},[418,1180,725],{"class":434},[418,1182,438],{"class":424},[418,1184,441],{"class":424},[418,1186,444],{"class":424},[418,1188,1189],{"class":447},"Invalid or expired refresh token.",[418,1191,473],{"class":424},[418,1193,1194],{"class":420,"line":476},[418,1195,479],{"class":424},[404,1197,1199],{"id":1198},"curl-example","cURL Example",[409,1201,1203],{"className":911,"code":1202,"language":913,"meta":414,"style":414},"curl -i -X POST http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fauth\u002Frefresh \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"token\": \"abc123def456...\"}'\n",[313,1204,1205,1220,1232],{"__ignoreMap":414},[418,1206,1207,1209,1211,1213,1215,1218],{"class":420,"line":421},[418,1208,921],{"class":920},[418,1210,924],{"class":447},[418,1212,927],{"class":447},[418,1214,930],{"class":447},[418,1216,1217],{"class":447}," http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fauth\u002Frefresh",[418,1219,936],{"class":734},[418,1221,1222,1224,1226,1228,1230],{"class":420,"line":428},[418,1223,941],{"class":447},[418,1225,444],{"class":424},[418,1227,946],{"class":447},[418,1229,438],{"class":424},[418,1231,936],{"class":734},[418,1233,1234,1236,1238,1241],{"class":420,"line":456},[418,1235,968],{"class":447},[418,1237,971],{"class":424},[418,1239,1240],{"class":447},"{\"token\": \"abc123def456...\"}",[418,1242,977],{"class":424},[1025,1244],{},[317,1246,1248,1249,1252],{"id":1247},"get-apiv1authuser-get-current-user","GET ",[313,1250,1251],{},"\u002Fapi\u002Fv1\u002Fauth\u002Fuser"," — Get Current User",[309,1254,1255,1257,1258,352,1261,1263,1265,1266,1269,1270,1272,1274],{},[328,1256,330],{}," Protected (",[313,1259,1260],{},"authenticate",[333,1262],{},[328,1264,337],{}," All authenticated apps (called on app load to hydrate ",[313,1267,1268],{},"currentUser"," state)",[333,1271],{},[328,1273,357],{}," From JWT token (embedded at login)",[309,1276,1277,1279],{},[328,1278,382],{}," Get the authenticated user's profile.",[404,1281,407],{"id":1282},"request-2",[409,1284,1289],{"className":1285,"code":1287,"language":1288},[1286],"language-text","Authorization: Bearer \u003CaccessToken>\n","text",[313,1290,1287],{"__ignoreMap":414},[404,1292,605],{"id":1293},"response-200-ok-2",[409,1295,1297],{"className":411,"code":1296,"language":413,"meta":414,"style":414},"{\n  \"_id\": \"507f1f77bcf86cd799439011\",\n  \"firstName\": \"Jane\",\n  \"lastName\": \"Doe\",\n  \"phone\": \"09171234567\",\n  \"type\": \"owner\",\n  \"email\": \"owner@example.com\",\n  \"organizationId\": \"507f191e810c19729de860ea\",\n  \"status\": \"active\",\n  \"createdAt\": \"2026-03-15T10:30:00Z\",\n  \"emailVerifiedAt\": \"2026-04-13T10:01:15.656Z\",\n  \"updatedAt\": \"2026-04-13T10:01:19.694Z\"\n}\n",[313,1298,1299,1303,1321,1341,1361,1381,1401,1420,1440,1461,1482,1503,1522],{"__ignoreMap":414},[418,1300,1301],{"class":420,"line":421},[418,1302,425],{"class":424},[418,1304,1305,1307,1309,1311,1313,1315,1317,1319],{"class":420,"line":428},[418,1306,431],{"class":424},[418,1308,659],{"class":434},[418,1310,438],{"class":424},[418,1312,441],{"class":424},[418,1314,444],{"class":424},[418,1316,668],{"class":447},[418,1318,438],{"class":424},[418,1320,453],{"class":424},[418,1322,1323,1325,1328,1330,1332,1334,1337,1339],{"class":420,"line":456},[418,1324,431],{"class":424},[418,1326,1327],{"class":434},"firstName",[418,1329,438],{"class":424},[418,1331,441],{"class":424},[418,1333,444],{"class":424},[418,1335,1336],{"class":447},"Jane",[418,1338,438],{"class":424},[418,1340,453],{"class":424},[418,1342,1343,1345,1348,1350,1352,1354,1357,1359],{"class":420,"line":476},[418,1344,431],{"class":424},[418,1346,1347],{"class":434},"lastName",[418,1349,438],{"class":424},[418,1351,441],{"class":424},[418,1353,444],{"class":424},[418,1355,1356],{"class":447},"Doe",[418,1358,438],{"class":424},[418,1360,453],{"class":424},[418,1362,1363,1365,1368,1370,1372,1374,1377,1379],{"class":420,"line":673},[418,1364,431],{"class":424},[418,1366,1367],{"class":434},"phone",[418,1369,438],{"class":424},[418,1371,441],{"class":424},[418,1373,444],{"class":424},[418,1375,1376],{"class":447},"09171234567",[418,1378,438],{"class":424},[418,1380,453],{"class":424},[418,1382,1384,1386,1389,1391,1393,1395,1397,1399],{"class":420,"line":1383},6,[418,1385,431],{"class":424},[418,1387,1388],{"class":434},"type",[418,1390,438],{"class":424},[418,1392,441],{"class":424},[418,1394,444],{"class":424},[418,1396,369],{"class":447},[418,1398,438],{"class":424},[418,1400,453],{"class":424},[418,1402,1404,1406,1408,1410,1412,1414,1416,1418],{"class":420,"line":1403},7,[418,1405,431],{"class":424},[418,1407,435],{"class":434},[418,1409,438],{"class":424},[418,1411,441],{"class":424},[418,1413,444],{"class":424},[418,1415,448],{"class":447},[418,1417,438],{"class":424},[418,1419,453],{"class":424},[418,1421,1423,1425,1427,1429,1431,1433,1436,1438],{"class":420,"line":1422},8,[418,1424,431],{"class":424},[418,1426,508],{"class":434},[418,1428,438],{"class":424},[418,1430,441],{"class":424},[418,1432,444],{"class":424},[418,1434,1435],{"class":447},"507f191e810c19729de860ea",[418,1437,438],{"class":424},[418,1439,453],{"class":424},[418,1441,1443,1445,1448,1450,1452,1454,1457,1459],{"class":420,"line":1442},9,[418,1444,431],{"class":424},[418,1446,1447],{"class":434},"status",[418,1449,438],{"class":424},[418,1451,441],{"class":424},[418,1453,444],{"class":424},[418,1455,1456],{"class":447},"active",[418,1458,438],{"class":424},[418,1460,453],{"class":424},[418,1462,1464,1466,1469,1471,1473,1475,1478,1480],{"class":420,"line":1463},10,[418,1465,431],{"class":424},[418,1467,1468],{"class":434},"createdAt",[418,1470,438],{"class":424},[418,1472,441],{"class":424},[418,1474,444],{"class":424},[418,1476,1477],{"class":447},"2026-03-15T10:30:00Z",[418,1479,438],{"class":424},[418,1481,453],{"class":424},[418,1483,1485,1487,1490,1492,1494,1496,1499,1501],{"class":420,"line":1484},11,[418,1486,431],{"class":424},[418,1488,1489],{"class":434},"emailVerifiedAt",[418,1491,438],{"class":424},[418,1493,441],{"class":424},[418,1495,444],{"class":424},[418,1497,1498],{"class":447},"2026-04-13T10:01:15.656Z",[418,1500,438],{"class":424},[418,1502,453],{"class":424},[418,1504,1506,1508,1511,1513,1515,1517,1520],{"class":420,"line":1505},12,[418,1507,431],{"class":424},[418,1509,1510],{"class":434},"updatedAt",[418,1512,438],{"class":424},[418,1514,441],{"class":424},[418,1516,444],{"class":424},[418,1518,1519],{"class":447},"2026-04-13T10:01:19.694Z",[418,1521,473],{"class":424},[418,1523,1525],{"class":420,"line":1524},13,[418,1526,479],{"class":424},[498,1528,1529],{},[309,1530,1531,505,1533,387,1535,1537,1538,387,1541,1544,1545,342,1548,342,1551,1554],{},[328,1532,504],{},[313,1534,1388],{},[313,1536,1447],{}," values are lowercase strings matching the ",[313,1539,1540],{},"UserType",[313,1542,1543],{},"UserStatus"," enums (",[313,1546,1547],{},"\"owner\"",[313,1549,1550],{},"\"active\"",[313,1552,1553],{},"\"customer\"",", etc.).",[404,1556,686],{"id":1557},"error-responses-2",[309,1559,1560,1563],{},[328,1561,1562],{},"401 Unauthorized"," — No valid token:",[409,1565,1567],{"className":411,"code":1566,"language":413,"meta":414,"style":414},"{\n  \"statusCode\": 401,\n  \"message\": \"Access token is required to proceed.\"\n}\n",[313,1568,1569,1573,1588,1605],{"__ignoreMap":414},[418,1570,1571],{"class":420,"line":421},[418,1572,425],{"class":424},[418,1574,1575,1577,1579,1581,1583,1586],{"class":420,"line":428},[418,1576,431],{"class":424},[418,1578,708],{"class":434},[418,1580,438],{"class":424},[418,1582,441],{"class":424},[418,1584,1585],{"class":715}," 401",[418,1587,453],{"class":424},[418,1589,1590,1592,1594,1596,1598,1600,1603],{"class":420,"line":456},[418,1591,431],{"class":424},[418,1593,725],{"class":434},[418,1595,438],{"class":424},[418,1597,441],{"class":424},[418,1599,444],{"class":424},[418,1601,1602],{"class":447},"Access token is required to proceed.",[418,1604,473],{"class":424},[418,1606,1607],{"class":420,"line":476},[418,1608,479],{"class":424},[404,1610,1199],{"id":1611},"curl-example-1",[409,1613,1615],{"className":911,"code":1614,"language":913,"meta":414,"style":414},"curl -X GET http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fauth\u002Fuser \\\n  -H \"Authorization: Bearer eyJhbGc...\"\n",[313,1616,1617,1631],{"__ignoreMap":414},[418,1618,1619,1621,1623,1626,1629],{"class":420,"line":421},[418,1620,921],{"class":920},[418,1622,927],{"class":447},[418,1624,1625],{"class":447}," GET",[418,1627,1628],{"class":447}," http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fauth\u002Fuser",[418,1630,936],{"class":734},[418,1632,1633,1635,1637,1640],{"class":420,"line":428},[418,1634,941],{"class":447},[418,1636,444],{"class":424},[418,1638,1639],{"class":447},"Authorization: Bearer eyJhbGc...",[418,1641,473],{"class":424},[1025,1643],{},[317,1645,1248,1647,1650],{"id":1646},"get-apiv1authorganization-get-current-users-organization",[313,1648,1649],{},"\u002Fapi\u002Fv1\u002Fauth\u002Forganization"," — Get Current User's Organization",[309,1652,1653,1257,1655,1658,1659,342,1661,342,1663,352,1665,1667,505,1669,1671,1672,1675,1676,1678,1680,1681,352],{},[328,1654,330],{},[313,1656,1657],{},"requireBranchManagerOrAbove"," — ",[313,1660,369],{},[313,1662,372],{},[313,1664,376],{},[333,1666],{},[328,1668,337],{},[313,1670,345],{}," (loaded in ",[313,1673,1674],{},"01.org.ts"," middleware on app boot)",[333,1677],{},[328,1679,357],{}," From JWT token (no tenant header needed — owner app does not send ",[313,1682,365],{},[309,1684,1685,1687],{},[328,1686,382],{}," Get the organization owned or managed by the currently authenticated user.",[404,1689,407],{"id":1690},"request-3",[409,1692,1694],{"className":1693,"code":1287,"language":1288},[1286],[313,1695,1287],{"__ignoreMap":414},[404,1697,605],{"id":1698},"response-200-ok-3",[409,1700,1702],{"className":411,"code":1701,"language":413,"meta":414,"style":414},"{\n  \"_id\": \"507f191e810c19729de860ea\",\n  \"name\": \"Jane's Beauty Salon\",\n  \"businessPermit\": \"BP-2024-001\",\n  \"businessRegistration\": \"BR-2024-001\",\n  \"branch\": 1,\n  \"slug\": \"janes-salon\",\n  \"businessAddress\": {\n    \"region\": \"NCR\",\n    \"province\": \"Metro Manila\",\n    \"municipalOrCity\": \"Quezon City\",\n    \"barangay\": \"Doña Julia\",\n    \"zip\": \"1100\",\n    \"street\": \"Main Avenue\",\n    \"address\": \"123 Business Complex\"\n  },\n  \"mayaConnected\": false,\n  \"cashConnected\": false,\n  \"businessHoursSettings\": {\n    \"businessHours\": [\n      {\n        \"day\": \"monday\",\n        \"isOpen\": true,\n        \"openTime\": \"08:00\",\n        \"closeTime\": \"17:00\"\n      },\n      {\n        \"day\": \"tuesday\",\n        \"isOpen\": true,\n        \"openTime\": \"08:00\",\n        \"closeTime\": \"17:00\"\n      },\n      {\n        \"day\": \"wednesday\",\n        \"isOpen\": true,\n        \"openTime\": \"08:00\",\n        \"closeTime\": \"17:00\"\n      },\n      {\n        \"day\": \"thursday\",\n        \"isOpen\": true,\n        \"openTime\": \"08:00\",\n        \"closeTime\": \"17:00\"\n      },\n      {\n        \"day\": \"friday\",\n        \"isOpen\": true,\n        \"openTime\": \"08:00\",\n        \"closeTime\": \"17:00\"\n      },\n      {\n        \"day\": \"saturday\",\n        \"isOpen\": false,\n        \"openTime\": \"08:00\",\n        \"closeTime\": \"17:00\"\n      },\n      {\n        \"day\": \"sunday\",\n        \"isOpen\": false,\n        \"openTime\": \"08:00\",\n        \"closeTime\": \"17:00\"\n      }\n    ],\n    \"timezone\": \"Asia\u002FManila\",\n    \"intervalMinutes\": 60\n  },\n  \"createdAt\": \"2026-03-15T10:30:00Z\",\n  \"updatedAt\": \"2026-04-13T10:01:16.911Z\",\n  \"serviceName\": \"Personal Care & Beauty\"\n}\n",[313,1703,1704,1708,1726,1746,1766,1786,1802,1822,1836,1857,1877,1897,1917,1937,1958,1977,1983,1998,2012,2026,2041,2047,2069,2084,2105,2124,2130,2135,2155,2168,2187,2204,2209,2214,2234,2247,2266,2283,2288,2293,2313,2326,2345,2362,2367,2372,2392,2405,2424,2441,2446,2451,2471,2484,2503,2520,2525,2530,2550,2563,2582,2599,2605,2611,2632,2647,2652,2671,2691,2710],{"__ignoreMap":414},[418,1705,1706],{"class":420,"line":421},[418,1707,425],{"class":424},[418,1709,1710,1712,1714,1716,1718,1720,1722,1724],{"class":420,"line":428},[418,1711,431],{"class":424},[418,1713,659],{"class":434},[418,1715,438],{"class":424},[418,1717,441],{"class":424},[418,1719,444],{"class":424},[418,1721,1435],{"class":447},[418,1723,438],{"class":424},[418,1725,453],{"class":424},[418,1727,1728,1730,1733,1735,1737,1739,1742,1744],{"class":420,"line":456},[418,1729,431],{"class":424},[418,1731,1732],{"class":434},"name",[418,1734,438],{"class":424},[418,1736,441],{"class":424},[418,1738,444],{"class":424},[418,1740,1741],{"class":447},"Jane's Beauty Salon",[418,1743,438],{"class":424},[418,1745,453],{"class":424},[418,1747,1748,1750,1753,1755,1757,1759,1762,1764],{"class":420,"line":476},[418,1749,431],{"class":424},[418,1751,1752],{"class":434},"businessPermit",[418,1754,438],{"class":424},[418,1756,441],{"class":424},[418,1758,444],{"class":424},[418,1760,1761],{"class":447},"BP-2024-001",[418,1763,438],{"class":424},[418,1765,453],{"class":424},[418,1767,1768,1770,1773,1775,1777,1779,1782,1784],{"class":420,"line":673},[418,1769,431],{"class":424},[418,1771,1772],{"class":434},"businessRegistration",[418,1774,438],{"class":424},[418,1776,441],{"class":424},[418,1778,444],{"class":424},[418,1780,1781],{"class":447},"BR-2024-001",[418,1783,438],{"class":424},[418,1785,453],{"class":424},[418,1787,1788,1790,1793,1795,1797,1800],{"class":420,"line":1383},[418,1789,431],{"class":424},[418,1791,1792],{"class":434},"branch",[418,1794,438],{"class":424},[418,1796,441],{"class":424},[418,1798,1799],{"class":715}," 1",[418,1801,453],{"class":424},[418,1803,1804,1806,1809,1811,1813,1815,1818,1820],{"class":420,"line":1403},[418,1805,431],{"class":424},[418,1807,1808],{"class":434},"slug",[418,1810,438],{"class":424},[418,1812,441],{"class":424},[418,1814,444],{"class":424},[418,1816,1817],{"class":447},"janes-salon",[418,1819,438],{"class":424},[418,1821,453],{"class":424},[418,1823,1824,1826,1829,1831,1833],{"class":420,"line":1422},[418,1825,431],{"class":424},[418,1827,1828],{"class":434},"businessAddress",[418,1830,438],{"class":424},[418,1832,441],{"class":424},[418,1834,1835],{"class":424}," {\n",[418,1837,1838,1841,1844,1846,1848,1850,1853,1855],{"class":420,"line":1442},[418,1839,1840],{"class":424},"    \"",[418,1842,1843],{"class":920},"region",[418,1845,438],{"class":424},[418,1847,441],{"class":424},[418,1849,444],{"class":424},[418,1851,1852],{"class":447},"NCR",[418,1854,438],{"class":424},[418,1856,453],{"class":424},[418,1858,1859,1861,1864,1866,1868,1870,1873,1875],{"class":420,"line":1463},[418,1860,1840],{"class":424},[418,1862,1863],{"class":920},"province",[418,1865,438],{"class":424},[418,1867,441],{"class":424},[418,1869,444],{"class":424},[418,1871,1872],{"class":447},"Metro Manila",[418,1874,438],{"class":424},[418,1876,453],{"class":424},[418,1878,1879,1881,1884,1886,1888,1890,1893,1895],{"class":420,"line":1484},[418,1880,1840],{"class":424},[418,1882,1883],{"class":920},"municipalOrCity",[418,1885,438],{"class":424},[418,1887,441],{"class":424},[418,1889,444],{"class":424},[418,1891,1892],{"class":447},"Quezon City",[418,1894,438],{"class":424},[418,1896,453],{"class":424},[418,1898,1899,1901,1904,1906,1908,1910,1913,1915],{"class":420,"line":1505},[418,1900,1840],{"class":424},[418,1902,1903],{"class":920},"barangay",[418,1905,438],{"class":424},[418,1907,441],{"class":424},[418,1909,444],{"class":424},[418,1911,1912],{"class":447},"Doña Julia",[418,1914,438],{"class":424},[418,1916,453],{"class":424},[418,1918,1919,1921,1924,1926,1928,1930,1933,1935],{"class":420,"line":1524},[418,1920,1840],{"class":424},[418,1922,1923],{"class":920},"zip",[418,1925,438],{"class":424},[418,1927,441],{"class":424},[418,1929,444],{"class":424},[418,1931,1932],{"class":447},"1100",[418,1934,438],{"class":424},[418,1936,453],{"class":424},[418,1938,1940,1942,1945,1947,1949,1951,1954,1956],{"class":420,"line":1939},14,[418,1941,1840],{"class":424},[418,1943,1944],{"class":920},"street",[418,1946,438],{"class":424},[418,1948,441],{"class":424},[418,1950,444],{"class":424},[418,1952,1953],{"class":447},"Main Avenue",[418,1955,438],{"class":424},[418,1957,453],{"class":424},[418,1959,1961,1963,1966,1968,1970,1972,1975],{"class":420,"line":1960},15,[418,1962,1840],{"class":424},[418,1964,1965],{"class":920},"address",[418,1967,438],{"class":424},[418,1969,441],{"class":424},[418,1971,444],{"class":424},[418,1973,1974],{"class":447},"123 Business Complex",[418,1976,473],{"class":424},[418,1978,1980],{"class":420,"line":1979},16,[418,1981,1982],{"class":424},"  },\n",[418,1984,1986,1988,1991,1993,1995],{"class":420,"line":1985},17,[418,1987,431],{"class":424},[418,1989,1990],{"class":434},"mayaConnected",[418,1992,438],{"class":424},[418,1994,441],{"class":424},[418,1996,1997],{"class":424}," false,\n",[418,1999,2001,2003,2006,2008,2010],{"class":420,"line":2000},18,[418,2002,431],{"class":424},[418,2004,2005],{"class":434},"cashConnected",[418,2007,438],{"class":424},[418,2009,441],{"class":424},[418,2011,1997],{"class":424},[418,2013,2015,2017,2020,2022,2024],{"class":420,"line":2014},19,[418,2016,431],{"class":424},[418,2018,2019],{"class":434},"businessHoursSettings",[418,2021,438],{"class":424},[418,2023,441],{"class":424},[418,2025,1835],{"class":424},[418,2027,2029,2031,2034,2036,2038],{"class":420,"line":2028},20,[418,2030,1840],{"class":424},[418,2032,2033],{"class":920},"businessHours",[418,2035,438],{"class":424},[418,2037,441],{"class":424},[418,2039,2040],{"class":424}," [\n",[418,2042,2044],{"class":420,"line":2043},21,[418,2045,2046],{"class":424},"      {\n",[418,2048,2050,2053,2056,2058,2060,2062,2065,2067],{"class":420,"line":2049},22,[418,2051,2052],{"class":424},"        \"",[418,2054,2055],{"class":715},"day",[418,2057,438],{"class":424},[418,2059,441],{"class":424},[418,2061,444],{"class":424},[418,2063,2064],{"class":447},"monday",[418,2066,438],{"class":424},[418,2068,453],{"class":424},[418,2070,2072,2074,2077,2079,2081],{"class":420,"line":2071},23,[418,2073,2052],{"class":424},[418,2075,2076],{"class":715},"isOpen",[418,2078,438],{"class":424},[418,2080,441],{"class":424},[418,2082,2083],{"class":424}," true,\n",[418,2085,2087,2089,2092,2094,2096,2098,2101,2103],{"class":420,"line":2086},24,[418,2088,2052],{"class":424},[418,2090,2091],{"class":715},"openTime",[418,2093,438],{"class":424},[418,2095,441],{"class":424},[418,2097,444],{"class":424},[418,2099,2100],{"class":447},"08:00",[418,2102,438],{"class":424},[418,2104,453],{"class":424},[418,2106,2108,2110,2113,2115,2117,2119,2122],{"class":420,"line":2107},25,[418,2109,2052],{"class":424},[418,2111,2112],{"class":715},"closeTime",[418,2114,438],{"class":424},[418,2116,441],{"class":424},[418,2118,444],{"class":424},[418,2120,2121],{"class":447},"17:00",[418,2123,473],{"class":424},[418,2125,2127],{"class":420,"line":2126},26,[418,2128,2129],{"class":424},"      },\n",[418,2131,2133],{"class":420,"line":2132},27,[418,2134,2046],{"class":424},[418,2136,2138,2140,2142,2144,2146,2148,2151,2153],{"class":420,"line":2137},28,[418,2139,2052],{"class":424},[418,2141,2055],{"class":715},[418,2143,438],{"class":424},[418,2145,441],{"class":424},[418,2147,444],{"class":424},[418,2149,2150],{"class":447},"tuesday",[418,2152,438],{"class":424},[418,2154,453],{"class":424},[418,2156,2158,2160,2162,2164,2166],{"class":420,"line":2157},29,[418,2159,2052],{"class":424},[418,2161,2076],{"class":715},[418,2163,438],{"class":424},[418,2165,441],{"class":424},[418,2167,2083],{"class":424},[418,2169,2171,2173,2175,2177,2179,2181,2183,2185],{"class":420,"line":2170},30,[418,2172,2052],{"class":424},[418,2174,2091],{"class":715},[418,2176,438],{"class":424},[418,2178,441],{"class":424},[418,2180,444],{"class":424},[418,2182,2100],{"class":447},[418,2184,438],{"class":424},[418,2186,453],{"class":424},[418,2188,2190,2192,2194,2196,2198,2200,2202],{"class":420,"line":2189},31,[418,2191,2052],{"class":424},[418,2193,2112],{"class":715},[418,2195,438],{"class":424},[418,2197,441],{"class":424},[418,2199,444],{"class":424},[418,2201,2121],{"class":447},[418,2203,473],{"class":424},[418,2205,2207],{"class":420,"line":2206},32,[418,2208,2129],{"class":424},[418,2210,2212],{"class":420,"line":2211},33,[418,2213,2046],{"class":424},[418,2215,2217,2219,2221,2223,2225,2227,2230,2232],{"class":420,"line":2216},34,[418,2218,2052],{"class":424},[418,2220,2055],{"class":715},[418,2222,438],{"class":424},[418,2224,441],{"class":424},[418,2226,444],{"class":424},[418,2228,2229],{"class":447},"wednesday",[418,2231,438],{"class":424},[418,2233,453],{"class":424},[418,2235,2237,2239,2241,2243,2245],{"class":420,"line":2236},35,[418,2238,2052],{"class":424},[418,2240,2076],{"class":715},[418,2242,438],{"class":424},[418,2244,441],{"class":424},[418,2246,2083],{"class":424},[418,2248,2250,2252,2254,2256,2258,2260,2262,2264],{"class":420,"line":2249},36,[418,2251,2052],{"class":424},[418,2253,2091],{"class":715},[418,2255,438],{"class":424},[418,2257,441],{"class":424},[418,2259,444],{"class":424},[418,2261,2100],{"class":447},[418,2263,438],{"class":424},[418,2265,453],{"class":424},[418,2267,2269,2271,2273,2275,2277,2279,2281],{"class":420,"line":2268},37,[418,2270,2052],{"class":424},[418,2272,2112],{"class":715},[418,2274,438],{"class":424},[418,2276,441],{"class":424},[418,2278,444],{"class":424},[418,2280,2121],{"class":447},[418,2282,473],{"class":424},[418,2284,2286],{"class":420,"line":2285},38,[418,2287,2129],{"class":424},[418,2289,2291],{"class":420,"line":2290},39,[418,2292,2046],{"class":424},[418,2294,2296,2298,2300,2302,2304,2306,2309,2311],{"class":420,"line":2295},40,[418,2297,2052],{"class":424},[418,2299,2055],{"class":715},[418,2301,438],{"class":424},[418,2303,441],{"class":424},[418,2305,444],{"class":424},[418,2307,2308],{"class":447},"thursday",[418,2310,438],{"class":424},[418,2312,453],{"class":424},[418,2314,2316,2318,2320,2322,2324],{"class":420,"line":2315},41,[418,2317,2052],{"class":424},[418,2319,2076],{"class":715},[418,2321,438],{"class":424},[418,2323,441],{"class":424},[418,2325,2083],{"class":424},[418,2327,2329,2331,2333,2335,2337,2339,2341,2343],{"class":420,"line":2328},42,[418,2330,2052],{"class":424},[418,2332,2091],{"class":715},[418,2334,438],{"class":424},[418,2336,441],{"class":424},[418,2338,444],{"class":424},[418,2340,2100],{"class":447},[418,2342,438],{"class":424},[418,2344,453],{"class":424},[418,2346,2348,2350,2352,2354,2356,2358,2360],{"class":420,"line":2347},43,[418,2349,2052],{"class":424},[418,2351,2112],{"class":715},[418,2353,438],{"class":424},[418,2355,441],{"class":424},[418,2357,444],{"class":424},[418,2359,2121],{"class":447},[418,2361,473],{"class":424},[418,2363,2365],{"class":420,"line":2364},44,[418,2366,2129],{"class":424},[418,2368,2370],{"class":420,"line":2369},45,[418,2371,2046],{"class":424},[418,2373,2375,2377,2379,2381,2383,2385,2388,2390],{"class":420,"line":2374},46,[418,2376,2052],{"class":424},[418,2378,2055],{"class":715},[418,2380,438],{"class":424},[418,2382,441],{"class":424},[418,2384,444],{"class":424},[418,2386,2387],{"class":447},"friday",[418,2389,438],{"class":424},[418,2391,453],{"class":424},[418,2393,2395,2397,2399,2401,2403],{"class":420,"line":2394},47,[418,2396,2052],{"class":424},[418,2398,2076],{"class":715},[418,2400,438],{"class":424},[418,2402,441],{"class":424},[418,2404,2083],{"class":424},[418,2406,2408,2410,2412,2414,2416,2418,2420,2422],{"class":420,"line":2407},48,[418,2409,2052],{"class":424},[418,2411,2091],{"class":715},[418,2413,438],{"class":424},[418,2415,441],{"class":424},[418,2417,444],{"class":424},[418,2419,2100],{"class":447},[418,2421,438],{"class":424},[418,2423,453],{"class":424},[418,2425,2427,2429,2431,2433,2435,2437,2439],{"class":420,"line":2426},49,[418,2428,2052],{"class":424},[418,2430,2112],{"class":715},[418,2432,438],{"class":424},[418,2434,441],{"class":424},[418,2436,444],{"class":424},[418,2438,2121],{"class":447},[418,2440,473],{"class":424},[418,2442,2444],{"class":420,"line":2443},50,[418,2445,2129],{"class":424},[418,2447,2449],{"class":420,"line":2448},51,[418,2450,2046],{"class":424},[418,2452,2454,2456,2458,2460,2462,2464,2467,2469],{"class":420,"line":2453},52,[418,2455,2052],{"class":424},[418,2457,2055],{"class":715},[418,2459,438],{"class":424},[418,2461,441],{"class":424},[418,2463,444],{"class":424},[418,2465,2466],{"class":447},"saturday",[418,2468,438],{"class":424},[418,2470,453],{"class":424},[418,2472,2474,2476,2478,2480,2482],{"class":420,"line":2473},53,[418,2475,2052],{"class":424},[418,2477,2076],{"class":715},[418,2479,438],{"class":424},[418,2481,441],{"class":424},[418,2483,1997],{"class":424},[418,2485,2487,2489,2491,2493,2495,2497,2499,2501],{"class":420,"line":2486},54,[418,2488,2052],{"class":424},[418,2490,2091],{"class":715},[418,2492,438],{"class":424},[418,2494,441],{"class":424},[418,2496,444],{"class":424},[418,2498,2100],{"class":447},[418,2500,438],{"class":424},[418,2502,453],{"class":424},[418,2504,2506,2508,2510,2512,2514,2516,2518],{"class":420,"line":2505},55,[418,2507,2052],{"class":424},[418,2509,2112],{"class":715},[418,2511,438],{"class":424},[418,2513,441],{"class":424},[418,2515,444],{"class":424},[418,2517,2121],{"class":447},[418,2519,473],{"class":424},[418,2521,2523],{"class":420,"line":2522},56,[418,2524,2129],{"class":424},[418,2526,2528],{"class":420,"line":2527},57,[418,2529,2046],{"class":424},[418,2531,2533,2535,2537,2539,2541,2543,2546,2548],{"class":420,"line":2532},58,[418,2534,2052],{"class":424},[418,2536,2055],{"class":715},[418,2538,438],{"class":424},[418,2540,441],{"class":424},[418,2542,444],{"class":424},[418,2544,2545],{"class":447},"sunday",[418,2547,438],{"class":424},[418,2549,453],{"class":424},[418,2551,2553,2555,2557,2559,2561],{"class":420,"line":2552},59,[418,2554,2052],{"class":424},[418,2556,2076],{"class":715},[418,2558,438],{"class":424},[418,2560,441],{"class":424},[418,2562,1997],{"class":424},[418,2564,2566,2568,2570,2572,2574,2576,2578,2580],{"class":420,"line":2565},60,[418,2567,2052],{"class":424},[418,2569,2091],{"class":715},[418,2571,438],{"class":424},[418,2573,441],{"class":424},[418,2575,444],{"class":424},[418,2577,2100],{"class":447},[418,2579,438],{"class":424},[418,2581,453],{"class":424},[418,2583,2585,2587,2589,2591,2593,2595,2597],{"class":420,"line":2584},61,[418,2586,2052],{"class":424},[418,2588,2112],{"class":715},[418,2590,438],{"class":424},[418,2592,441],{"class":424},[418,2594,444],{"class":424},[418,2596,2121],{"class":447},[418,2598,473],{"class":424},[418,2600,2602],{"class":420,"line":2601},62,[418,2603,2604],{"class":424},"      }\n",[418,2606,2608],{"class":420,"line":2607},63,[418,2609,2610],{"class":424},"    ],\n",[418,2612,2614,2616,2619,2621,2623,2625,2628,2630],{"class":420,"line":2613},64,[418,2615,1840],{"class":424},[418,2617,2618],{"class":920},"timezone",[418,2620,438],{"class":424},[418,2622,441],{"class":424},[418,2624,444],{"class":424},[418,2626,2627],{"class":447},"Asia\u002FManila",[418,2629,438],{"class":424},[418,2631,453],{"class":424},[418,2633,2635,2637,2640,2642,2644],{"class":420,"line":2634},65,[418,2636,1840],{"class":424},[418,2638,2639],{"class":920},"intervalMinutes",[418,2641,438],{"class":424},[418,2643,441],{"class":424},[418,2645,2646],{"class":715}," 60\n",[418,2648,2650],{"class":420,"line":2649},66,[418,2651,1982],{"class":424},[418,2653,2655,2657,2659,2661,2663,2665,2667,2669],{"class":420,"line":2654},67,[418,2656,431],{"class":424},[418,2658,1468],{"class":434},[418,2660,438],{"class":424},[418,2662,441],{"class":424},[418,2664,444],{"class":424},[418,2666,1477],{"class":447},[418,2668,438],{"class":424},[418,2670,453],{"class":424},[418,2672,2674,2676,2678,2680,2682,2684,2687,2689],{"class":420,"line":2673},68,[418,2675,431],{"class":424},[418,2677,1510],{"class":434},[418,2679,438],{"class":424},[418,2681,441],{"class":424},[418,2683,444],{"class":424},[418,2685,2686],{"class":447},"2026-04-13T10:01:16.911Z",[418,2688,438],{"class":424},[418,2690,453],{"class":424},[418,2692,2694,2696,2699,2701,2703,2705,2708],{"class":420,"line":2693},69,[418,2695,431],{"class":424},[418,2697,2698],{"class":434},"serviceName",[418,2700,438],{"class":424},[418,2702,441],{"class":424},[418,2704,444],{"class":424},[418,2706,2707],{"class":447},"Personal Care & Beauty",[418,2709,473],{"class":424},[418,2711,2713],{"class":420,"line":2712},70,[418,2714,479],{"class":424},[404,2716,1199],{"id":2717},"curl-example-2",[409,2719,2721],{"className":911,"code":2720,"language":913,"meta":414,"style":414},"curl -X GET http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fauth\u002Forganization \\\n  -H \"Authorization: Bearer eyJhbGc...\"\n",[313,2722,2723,2736],{"__ignoreMap":414},[418,2724,2725,2727,2729,2731,2734],{"class":420,"line":421},[418,2726,921],{"class":920},[418,2728,927],{"class":447},[418,2730,1625],{"class":447},[418,2732,2733],{"class":447}," http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fauth\u002Forganization",[418,2735,936],{"class":734},[418,2737,2738,2740,2742,2744],{"class":420,"line":428},[418,2739,941],{"class":447},[418,2741,444],{"class":424},[418,2743,1639],{"class":447},[418,2745,473],{"class":424},[1025,2747],{},[317,2749,2751,2752,2755],{"id":2750},"delete-apiv1authlogout-logout","DELETE ",[313,2753,2754],{},"\u002Fapi\u002Fv1\u002Fauth\u002Flogout"," — Logout",[309,2757,2758,1257,2760,352,2762,2764,2766,2767,2769,2771],{},[328,2759,330],{},[313,2761,1260],{},[333,2763],{},[328,2765,337],{}," All authenticated apps",[333,2768],{},[328,2770,357],{}," From JWT token",[309,2773,2774,2776],{},[328,2775,382],{}," Invalidate the current access token (blacklist via JTI) and clear session cache.",[404,2778,407],{"id":2779},"request-4",[409,2781,2783],{"className":2782,"code":1287,"language":1288},[1286],[313,2784,1287],{"__ignoreMap":414},[309,2786,2787],{},"No body required.",[404,2789,605],{"id":2790},"response-200-ok-4",[409,2792,2794],{"className":411,"code":2793,"language":413,"meta":414,"style":414},"{\n  \"message\": \"Logged out successfully.\"\n}\n",[313,2795,2796,2800,2817],{"__ignoreMap":414},[418,2797,2798],{"class":420,"line":421},[418,2799,425],{"class":424},[418,2801,2802,2804,2806,2808,2810,2812,2815],{"class":420,"line":428},[418,2803,431],{"class":424},[418,2805,725],{"class":434},[418,2807,438],{"class":424},[418,2809,441],{"class":424},[418,2811,444],{"class":424},[418,2813,2814],{"class":447},"Logged out successfully.",[418,2816,473],{"class":424},[418,2818,2819],{"class":420,"line":456},[418,2820,479],{"class":424},[404,2822,1199],{"id":2823},"curl-example-3",[409,2825,2827],{"className":911,"code":2826,"language":913,"meta":414,"style":414},"curl -X DELETE http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fauth\u002Flogout \\\n  -H \"Authorization: Bearer eyJhbGc...\"\n",[313,2828,2829,2843],{"__ignoreMap":414},[418,2830,2831,2833,2835,2838,2841],{"class":420,"line":421},[418,2832,921],{"class":920},[418,2834,927],{"class":447},[418,2836,2837],{"class":447}," DELETE",[418,2839,2840],{"class":447}," http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fauth\u002Flogout",[418,2842,936],{"class":734},[418,2844,2845,2847,2849,2851],{"class":420,"line":428},[418,2846,941],{"class":447},[418,2848,444],{"class":424},[418,2850,1639],{"class":447},[418,2852,473],{"class":424},[2854,2855,2856],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":414,"searchDepth":421,"depth":428,"links":2858},[2859,2867,2874,2881,2887],{"id":319,"depth":428,"text":2860,"children":2861},"POST \u002Fapi\u002Fv1\u002Fauth\u002Flogin — Login",[2862,2863,2864,2865,2866],{"id":406,"depth":456,"text":407},{"id":518,"depth":456,"text":519},{"id":604,"depth":456,"text":605},{"id":685,"depth":456,"text":686},{"id":902,"depth":456,"text":903},{"id":1029,"depth":428,"text":2868,"children":2869},"POST \u002Fapi\u002Fv1\u002Fauth\u002Frefresh — Refresh Token",[2870,2871,2872,2873],{"id":1062,"depth":456,"text":407},{"id":1095,"depth":456,"text":605},{"id":1146,"depth":456,"text":686},{"id":1198,"depth":456,"text":1199},{"id":1247,"depth":428,"text":2875,"children":2876},"GET \u002Fapi\u002Fv1\u002Fauth\u002Fuser — Get Current User",[2877,2878,2879,2880],{"id":1282,"depth":456,"text":407},{"id":1293,"depth":456,"text":605},{"id":1557,"depth":456,"text":686},{"id":1611,"depth":456,"text":1199},{"id":1646,"depth":428,"text":2882,"children":2883},"GET \u002Fapi\u002Fv1\u002Fauth\u002Forganization — Get Current User's Organization",[2884,2885,2886],{"id":1690,"depth":456,"text":407},{"id":1698,"depth":456,"text":605},{"id":2717,"depth":456,"text":1199},{"id":2750,"depth":428,"text":2888,"children":2889},"DELETE \u002Fapi\u002Fv1\u002Fauth\u002Flogout — Logout",[2890,2891,2892],{"id":2779,"depth":456,"text":407},{"id":2790,"depth":456,"text":605},{"id":2823,"depth":456,"text":1199},"Login, logout, and token refresh endpoints with real payloads and responses.","md",null,{},{"icon":143},{"title":140,"description":2893},"CEo65naKqKbibQ6uRz154xZfY3IjpJ-707zb5YluuyA",[2901,2903],{"title":136,"path":137,"stem":138,"description":2902,"icon":57,"children":-1},"Complete REST API reference for Booki. Base path \u002Fapi\u002Fv1 with real payloads, responses, and multi-tenant flows.",{"title":145,"path":146,"stem":147,"description":2904,"icon":148,"children":-1},"Customer registration for tenant-scoped bookings (no OTP required).",1777787844707]