[{"data":1,"prerenderedAt":1260},["ShallowReactive",2],{"navigation":3,"\u002Fbooki-documentation\u002Fapi\u002Fpublic-packages":337,"\u002Fbooki-documentation\u002Fapi\u002Fpublic-packages-surround":1255},[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,266,280,293],{"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,196,201,205,210,215,220,225,230,234,239,244,248,252,256,261],{"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 - Billing","\u002Fbooki-documentation\u002Fapi\u002Forganization-billing","3.booki-documentation\u002F3.api\u002F5.organization-billing","i-lucide-building-2",{"title":189,"path":190,"stem":191,"icon":187},"Organizations - Base","\u002Fbooki-documentation\u002Fapi\u002Forganizations","3.booki-documentation\u002F3.api\u002F5.organizations",{"title":193,"path":194,"stem":195,"icon":172},"Organizations - Packages","\u002Fbooki-documentation\u002Fapi\u002Fpackages","3.booki-documentation\u002F3.api\u002F5.packages",{"title":197,"path":198,"stem":199,"icon":200},"Organizations - Payments & Integrations","\u002Fbooki-documentation\u002Fapi\u002Fpayments","3.booki-documentation\u002F3.api\u002F5.payments","i-lucide-credit-card",{"title":202,"path":203,"stem":204,"icon":182},"Business Hours - Public","\u002Fbooki-documentation\u002Fapi\u002Fpublic-business-hours","3.booki-documentation\u002F3.api\u002F5.public-business-hours",{"title":206,"path":207,"stem":208,"icon":209},"Packages - Public","\u002Fbooki-documentation\u002Fapi\u002Fpublic-packages","3.booki-documentation\u002F3.api\u002F5.public-packages","i-lucide-package",{"title":211,"path":212,"stem":213,"icon":214},"Subscription Payments","\u002Fbooki-documentation\u002Fapi\u002Fsubscription-payments","3.booki-documentation\u002F3.api\u002F6.subscription-payments","i-lucide-receipt",{"title":216,"path":217,"stem":218,"icon":219},"Users - Saved Payment Methods","\u002Fbooki-documentation\u002Fapi\u002Fuser-payment-methods","3.booki-documentation\u002F3.api\u002F6.user-payment-methods","i-lucide-wallet",{"title":221,"path":222,"stem":223,"icon":224},"Users - Profile & Settings","\u002Fbooki-documentation\u002Fapi\u002Fusers","3.booki-documentation\u002F3.api\u002F6.users","i-lucide-user",{"title":226,"path":227,"stem":228,"icon":229},"Chat","\u002Fbooki-documentation\u002Fapi\u002Fchat","3.booki-documentation\u002F3.api\u002F7.chat","i-lucide-message-circle",{"title":231,"path":232,"stem":233,"icon":200},"Maya Payments","\u002Fbooki-documentation\u002Fapi\u002Fmaya","3.booki-documentation\u002F3.api\u002F7.maya",{"title":235,"path":236,"stem":237,"icon":238},"Owner - Booking Management","\u002Fbooki-documentation\u002Fapi\u002Fowner-bookings","3.booki-documentation\u002F3.api\u002F7.owner-bookings","i-lucide-calendar",{"title":240,"path":241,"stem":242,"icon":243},"Owner - Customer Management","\u002Fbooki-documentation\u002Fapi\u002Fowner-customers","3.booki-documentation\u002F3.api\u002F7.owner-customers","i-lucide-users",{"title":245,"path":246,"stem":247,"icon":200},"Stripe Payments","\u002Fbooki-documentation\u002Fapi\u002Fstripe","3.booki-documentation\u002F3.api\u002F7.stripe",{"title":249,"path":250,"stem":251,"icon":200},"Admin - Billing & Subscriptions","\u002Fbooki-documentation\u002Fapi\u002Fadmin-billing","3.booki-documentation\u002F3.api\u002F8.admin-billing",{"title":253,"path":254,"stem":255,"icon":187},"Admin - Organizations Management","\u002Fbooki-documentation\u002Fapi\u002Fadmin-organizations","3.booki-documentation\u002F3.api\u002F8.admin-organizations",{"title":257,"path":258,"stem":259,"icon":260},"Admin - Billing Settings","\u002Fbooki-documentation\u002Fapi\u002Fadmin-settings","3.booki-documentation\u002F3.api\u002F8.admin-settings","i-lucide-settings",{"title":262,"path":263,"stem":264,"icon":265},"Admin - User Management","\u002Fbooki-documentation\u002Fapi\u002Fadmin-users","3.booki-documentation\u002F3.api\u002F8.admin-users","i-lucide-shield-admin",{"title":267,"icon":209,"path":268,"stem":269,"children":270,"page":54},"Shared","\u002Fbooki-documentation\u002Fshared","3.booki-documentation\u002F4.shared",[271,276],{"title":272,"path":273,"stem":274,"icon":275},"codi-node-utils","\u002Fbooki-documentation\u002Fshared\u002Fcodi-node-utils","3.booki-documentation\u002F4.shared\u002F1.codi-node-utils","i-lucide-wrench",{"title":277,"path":278,"stem":279,"icon":124},"codi-layer","\u002Fbooki-documentation\u002Fshared\u002Fcodi-layer","3.booki-documentation\u002F4.shared\u002F2.codi-layer",{"title":281,"path":282,"stem":283,"children":284,"page":54},"Flowcharts","\u002Fbooki-documentation\u002Fflowcharts","3.booki-documentation\u002F5.flowcharts",[285,289],{"title":286,"path":287,"stem":288,"icon":158},"Owner Booking Management Flow","\u002Fbooki-documentation\u002Fflowcharts\u002Fowner-booking-management","3.booki-documentation\u002F5.flowcharts\u002F1.owner-booking-management",{"title":290,"path":291,"stem":292,"icon":167},"Customer Booking Flow","\u002Fbooki-documentation\u002Fflowcharts\u002Fcustomer-booking-flow","3.booki-documentation\u002F5.flowcharts\u002F2.customer-booking-flow",{"title":294,"path":295,"stem":296,"children":297,"page":54},"Guides","\u002Fbooki-documentation\u002Fguides","3.booki-documentation\u002Fguides",[298,303,307,311,315,320,325,329,333],{"title":299,"path":300,"stem":301,"icon":302},"Guide - Authentication Flow & Sessions","\u002Fbooki-documentation\u002Fguides\u002Fguides-auth-flow","3.booki-documentation\u002Fguides\u002Fguides-auth-flow","i-lucide-lock",{"title":304,"path":305,"stem":306,"icon":177},"Guide - Branch Management","\u002Fbooki-documentation\u002Fguides\u002Fguides-branch-management","3.booki-documentation\u002Fguides\u002Fguides-branch-management",{"title":308,"path":309,"stem":310,"icon":200},"Guide - Customer Payment Methods","\u002Fbooki-documentation\u002Fguides\u002Fguides-customer-payments","3.booki-documentation\u002Fguides\u002Fguides-customer-payments",{"title":312,"path":313,"stem":314,"icon":260},"Guide - Environment Setup","\u002Fbooki-documentation\u002Fguides\u002Fguides-environment-setup","3.booki-documentation\u002Fguides\u002Fguides-environment-setup",{"title":316,"path":317,"stem":318,"icon":319},"Guide - Common Error Responses","\u002Fbooki-documentation\u002Fguides\u002Fguides-errors","3.booki-documentation\u002Fguides\u002Fguides-errors","i-lucide-alert-circle",{"title":321,"path":322,"stem":323,"icon":324},"Guide - Gmail SMTP Setup","\u002Fbooki-documentation\u002Fguides\u002Fguides-gmail-setup","3.booki-documentation\u002Fguides\u002Fguides-gmail-setup","i-lucide-mail",{"title":326,"path":327,"stem":328,"icon":124},"Guide - Multi-Tenancy & Tenant Slug Resolution","\u002Fbooki-documentation\u002Fguides\u002Fguides-multi-tenancy","3.booki-documentation\u002Fguides\u002Fguides-multi-tenancy",{"title":330,"path":331,"stem":332,"icon":48},"Guide - Redis Caching","\u002Fbooki-documentation\u002Fguides\u002Fguides-redis","3.booki-documentation\u002Fguides\u002Fguides-redis",{"title":334,"path":335,"stem":336,"icon":214},"Guide - Subscription Billing","\u002Fbooki-documentation\u002Fguides\u002Fguides-subscription-billing","3.booki-documentation\u002Fguides\u002Fguides-subscription-billing",{"id":338,"title":206,"body":339,"description":1248,"extension":1249,"links":1250,"meta":1251,"navigation":1252,"path":207,"seo":1253,"stem":208,"__hash__":1254},"docs\u002F3.booki-documentation\u002F3.api\u002F5.public-packages.md",{"type":340,"value":341,"toc":1232},"minimark",[342,350,383,390,401,404,412,439,444,449,459,462,509,515,519,864,868,874,921,925,966,968,975,997,1000,1006,1009,1017,1020,1155,1158,1164,1209,1212,1228],[343,344,345,346],"p",{},"Base path: ",[347,348,349],"code",{},"\u002Fapi\u002Fv1\u002Fpackages",[343,351,352,356,357,360,361,364,365,368,369,372,375,378,379,382],{},[353,354,355],"strong",{},"Used by:"," ",[347,358,359],{},"customer-booki-web-app",", ",[347,362,363],{},"cms-booki-web-app"," · ",[353,366,367],{},"Role:"," guest \u002F ",[347,370,371],{},"customer",[373,374],"br",{},[353,376,377],{},"organizationId:"," Resolved by tenant middleware from ",[347,380,381],{},"x-tenant-slug"," header (auto-injected from subdomain)",[343,384,385,386,389],{},"These are the ",[353,387,388],{},"public"," package endpoints that return service offerings for a specific business (tenant). Customers use them to browse available packages before booking.",[391,392,393],"blockquote",{},[343,394,395,396,400],{},"For owner-side package management (create, update, delete), see ",[397,398,193],"a",{"href":399},".\u002Fpackages",".",[402,403],"hr",{},[405,406,408,409,411],"h2",{"id":407},"get-apiv1packages-list-public-packages","GET ",[347,410,349],{}," — List Public Packages",[343,413,414,417,418,420,421,423,356,425,360,427,364,429,368,431,433,435,438],{},[353,415,416],{},"Auth:"," Public (requires ",[347,419,381],{}," header)",[373,422],{},[353,424,355],{},[347,426,359],{},[347,428,363],{},[353,430,367],{},[347,432,371],{},[373,434],{},[353,436,437],{},"Description:"," Fetch all active packages (services) offered by a specific business tenant. Customers use this to browse services before making a booking.",[440,441,443],"h3",{"id":442},"request","Request",[343,445,446],{},[353,447,448],{},"Headers (required):",[450,451,456],"pre",{"className":452,"code":454,"language":455},[453],"language-text","X-Tenant-Slug: janes-salon\n","text",[347,457,454],{"__ignoreMap":458},"",[343,460,461],{},"Query Parameters (optional):",[463,464,465,472,478,484,494],"ul",{},[466,467,468,471],"li",{},[347,469,470],{},"page"," (number, default: 1)",[466,473,474,477],{},[347,475,476],{},"limit"," (number, default: 10, max: 100)",[466,479,480,483],{},[347,481,482],{},"search"," (string): Search by package name or description",[466,485,486,489,490,493],{},[347,487,488],{},"sort"," (string, default: ",[347,491,492],{},"_id",")",[466,495,496,489,499,502,503,506,507],{},[347,497,498],{},"order",[347,500,501],{},"desc","): ",[347,504,505],{},"asc"," | ",[347,508,501],{},[450,510,513],{"className":511,"code":512,"language":455},[453],"GET \u002Fapi\u002Fv1\u002Fpackages?page=1&limit=20\n",[347,514,512],{"__ignoreMap":458},[440,516,518],{"id":517},"response-200-ok","Response (200 OK)",[450,520,524],{"className":521,"code":522,"language":523,"meta":458,"style":458},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"items\": [\n    {\n      \"_id\": \"507f1f77bcf86cd799439031\",\n      \"organizationId\": \"507f191e810c19729de860ea\",\n      \"name\": \"Haircut + Wash\",\n      \"description\": \"Professional haircut with shampoo and blow dry included.\",\n      \"amount\": 350,\n      \"createdAt\": \"2026-01-10T08:00:00Z\"\n    },\n    {\n      \"_id\": \"507f1f77bcf86cd799439032\",\n      \"organizationId\": \"507f191e810c19729de860ea\",\n      \"name\": \"Manicure + Pedicure\",\n      \"description\": \"Full manicure and pedicure with gel color of choice.\",\n      \"amount\": 450,\n      \"createdAt\": \"2026-01-10T08:05:00Z\"\n    }\n  ],\n  \"pages\": 2,\n  \"pageRange\": \"1-2 of 8\"\n}\n","json",[347,525,526,535,554,560,585,606,627,648,666,686,692,697,717,736,756,776,792,810,816,822,839,858],{"__ignoreMap":458},[527,528,531],"span",{"class":529,"line":530},"line",1,[527,532,534],{"class":533},"sMK4o","{\n",[527,536,538,541,545,548,551],{"class":529,"line":537},2,[527,539,540],{"class":533},"  \"",[527,542,544],{"class":543},"spNyl","items",[527,546,547],{"class":533},"\"",[527,549,550],{"class":533},":",[527,552,553],{"class":533}," [\n",[527,555,557],{"class":529,"line":556},3,[527,558,559],{"class":533},"    {\n",[527,561,563,566,569,571,573,576,580,582],{"class":529,"line":562},4,[527,564,565],{"class":533},"      \"",[527,567,492],{"class":568},"sBMFI",[527,570,547],{"class":533},[527,572,550],{"class":533},[527,574,575],{"class":533}," \"",[527,577,579],{"class":578},"sfazB","507f1f77bcf86cd799439031",[527,581,547],{"class":533},[527,583,584],{"class":533},",\n",[527,586,588,590,593,595,597,599,602,604],{"class":529,"line":587},5,[527,589,565],{"class":533},[527,591,592],{"class":568},"organizationId",[527,594,547],{"class":533},[527,596,550],{"class":533},[527,598,575],{"class":533},[527,600,601],{"class":578},"507f191e810c19729de860ea",[527,603,547],{"class":533},[527,605,584],{"class":533},[527,607,609,611,614,616,618,620,623,625],{"class":529,"line":608},6,[527,610,565],{"class":533},[527,612,613],{"class":568},"name",[527,615,547],{"class":533},[527,617,550],{"class":533},[527,619,575],{"class":533},[527,621,622],{"class":578},"Haircut + Wash",[527,624,547],{"class":533},[527,626,584],{"class":533},[527,628,630,632,635,637,639,641,644,646],{"class":529,"line":629},7,[527,631,565],{"class":533},[527,633,634],{"class":568},"description",[527,636,547],{"class":533},[527,638,550],{"class":533},[527,640,575],{"class":533},[527,642,643],{"class":578},"Professional haircut with shampoo and blow dry included.",[527,645,547],{"class":533},[527,647,584],{"class":533},[527,649,651,653,656,658,660,664],{"class":529,"line":650},8,[527,652,565],{"class":533},[527,654,655],{"class":568},"amount",[527,657,547],{"class":533},[527,659,550],{"class":533},[527,661,663],{"class":662},"sbssI"," 350",[527,665,584],{"class":533},[527,667,669,671,674,676,678,680,683],{"class":529,"line":668},9,[527,670,565],{"class":533},[527,672,673],{"class":568},"createdAt",[527,675,547],{"class":533},[527,677,550],{"class":533},[527,679,575],{"class":533},[527,681,682],{"class":578},"2026-01-10T08:00:00Z",[527,684,685],{"class":533},"\"\n",[527,687,689],{"class":529,"line":688},10,[527,690,691],{"class":533},"    },\n",[527,693,695],{"class":529,"line":694},11,[527,696,559],{"class":533},[527,698,700,702,704,706,708,710,713,715],{"class":529,"line":699},12,[527,701,565],{"class":533},[527,703,492],{"class":568},[527,705,547],{"class":533},[527,707,550],{"class":533},[527,709,575],{"class":533},[527,711,712],{"class":578},"507f1f77bcf86cd799439032",[527,714,547],{"class":533},[527,716,584],{"class":533},[527,718,720,722,724,726,728,730,732,734],{"class":529,"line":719},13,[527,721,565],{"class":533},[527,723,592],{"class":568},[527,725,547],{"class":533},[527,727,550],{"class":533},[527,729,575],{"class":533},[527,731,601],{"class":578},[527,733,547],{"class":533},[527,735,584],{"class":533},[527,737,739,741,743,745,747,749,752,754],{"class":529,"line":738},14,[527,740,565],{"class":533},[527,742,613],{"class":568},[527,744,547],{"class":533},[527,746,550],{"class":533},[527,748,575],{"class":533},[527,750,751],{"class":578},"Manicure + Pedicure",[527,753,547],{"class":533},[527,755,584],{"class":533},[527,757,759,761,763,765,767,769,772,774],{"class":529,"line":758},15,[527,760,565],{"class":533},[527,762,634],{"class":568},[527,764,547],{"class":533},[527,766,550],{"class":533},[527,768,575],{"class":533},[527,770,771],{"class":578},"Full manicure and pedicure with gel color of choice.",[527,773,547],{"class":533},[527,775,584],{"class":533},[527,777,779,781,783,785,787,790],{"class":529,"line":778},16,[527,780,565],{"class":533},[527,782,655],{"class":568},[527,784,547],{"class":533},[527,786,550],{"class":533},[527,788,789],{"class":662}," 450",[527,791,584],{"class":533},[527,793,795,797,799,801,803,805,808],{"class":529,"line":794},17,[527,796,565],{"class":533},[527,798,673],{"class":568},[527,800,547],{"class":533},[527,802,550],{"class":533},[527,804,575],{"class":533},[527,806,807],{"class":578},"2026-01-10T08:05:00Z",[527,809,685],{"class":533},[527,811,813],{"class":529,"line":812},18,[527,814,815],{"class":533},"    }\n",[527,817,819],{"class":529,"line":818},19,[527,820,821],{"class":533},"  ],\n",[527,823,825,827,830,832,834,837],{"class":529,"line":824},20,[527,826,540],{"class":533},[527,828,829],{"class":543},"pages",[527,831,547],{"class":533},[527,833,550],{"class":533},[527,835,836],{"class":662}," 2",[527,838,584],{"class":533},[527,840,842,844,847,849,851,853,856],{"class":529,"line":841},21,[527,843,540],{"class":533},[527,845,846],{"class":543},"pageRange",[527,848,547],{"class":533},[527,850,550],{"class":533},[527,852,575],{"class":533},[527,854,855],{"class":578},"1-2 of 8",[527,857,685],{"class":533},[527,859,861],{"class":529,"line":860},22,[527,862,863],{"class":533},"}\n",[440,865,867],{"id":866},"error-responses","Error Responses",[343,869,870,873],{},[353,871,872],{},"422 Unprocessable Entity"," — Missing tenant slug:",[450,875,877],{"className":521,"code":876,"language":523,"meta":458,"style":458},"{\n  \"statusCode\": 422,\n  \"message\": \"Tenant identifier is required to process this request.\"\n}\n",[347,878,879,883,899,917],{"__ignoreMap":458},[527,880,881],{"class":529,"line":530},[527,882,534],{"class":533},[527,884,885,887,890,892,894,897],{"class":529,"line":537},[527,886,540],{"class":533},[527,888,889],{"class":543},"statusCode",[527,891,547],{"class":533},[527,893,550],{"class":533},[527,895,896],{"class":662}," 422",[527,898,584],{"class":533},[527,900,901,903,906,908,910,912,915],{"class":529,"line":556},[527,902,540],{"class":533},[527,904,905],{"class":543},"message",[527,907,547],{"class":533},[527,909,550],{"class":533},[527,911,575],{"class":533},[527,913,914],{"class":578},"Tenant identifier is required to process this request.",[527,916,685],{"class":533},[527,918,919],{"class":529,"line":562},[527,920,863],{"class":533},[440,922,924],{"id":923},"curl-example","cURL Example",[450,926,930],{"className":927,"code":928,"language":929,"meta":458,"style":458},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -X GET \"http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fpackages?page=1&limit=20\" \\\n  -H \"X-Tenant-Slug: janes-salon\"\n","bash",[347,931,932,954],{"__ignoreMap":458},[527,933,934,937,940,943,945,948,950],{"class":529,"line":530},[527,935,936],{"class":568},"curl",[527,938,939],{"class":578}," -X",[527,941,942],{"class":578}," GET",[527,944,575],{"class":533},[527,946,947],{"class":578},"http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fpackages?page=1&limit=20",[527,949,547],{"class":533},[527,951,953],{"class":952},"sTEyZ"," \\\n",[527,955,956,959,961,964],{"class":529,"line":537},[527,957,958],{"class":578},"  -H",[527,960,575],{"class":533},[527,962,963],{"class":578},"X-Tenant-Slug: janes-salon",[527,965,685],{"class":533},[402,967],{},[405,969,408,971,974],{"id":970},"get-apiv1packagesid-get-package-by-id",[347,972,973],{},"\u002Fapi\u002Fv1\u002Fpackages\u002F:id"," — Get Package by ID",[343,976,977,979,980,982,356,984,360,986,364,988,368,990,992,994,996],{},[353,978,416],{}," Public",[373,981],{},[353,983,355],{},[347,985,359],{},[347,987,363],{},[353,989,367],{},[347,991,371],{},[373,993],{},[353,995,437],{}," Fetch details for a single package by its ID. No tenant slug required — the package ID uniquely identifies the record.",[440,998,443],{"id":999},"request-1",[450,1001,1004],{"className":1002,"code":1003,"language":455},[453],"GET \u002Fapi\u002Fv1\u002Fpackages\u002F507f1f77bcf86cd799439031\n",[347,1005,1003],{"__ignoreMap":458},[343,1007,1008],{},"Path Parameters:",[463,1010,1011],{},[466,1012,1013,1016],{},[347,1014,1015],{},"id"," (string, required): Package ID (24-hex)",[440,1018,518],{"id":1019},"response-200-ok-1",[450,1021,1023],{"className":521,"code":1022,"language":523,"meta":458,"style":458},"{\n  \"_id\": \"507f1f77bcf86cd799439031\",\n  \"organizationId\": \"507f191e810c19729de860ea\",\n  \"name\": \"Haircut + Wash\",\n  \"description\": \"Professional haircut with shampoo and blow dry included.\",\n  \"amount\": 350,\n  \"createdAt\": \"2026-01-10T08:00:00Z\",\n  \"updatedAt\": \"2026-03-01T12:00:00Z\"\n}\n",[347,1024,1025,1029,1047,1065,1083,1101,1115,1133,1151],{"__ignoreMap":458},[527,1026,1027],{"class":529,"line":530},[527,1028,534],{"class":533},[527,1030,1031,1033,1035,1037,1039,1041,1043,1045],{"class":529,"line":537},[527,1032,540],{"class":533},[527,1034,492],{"class":543},[527,1036,547],{"class":533},[527,1038,550],{"class":533},[527,1040,575],{"class":533},[527,1042,579],{"class":578},[527,1044,547],{"class":533},[527,1046,584],{"class":533},[527,1048,1049,1051,1053,1055,1057,1059,1061,1063],{"class":529,"line":556},[527,1050,540],{"class":533},[527,1052,592],{"class":543},[527,1054,547],{"class":533},[527,1056,550],{"class":533},[527,1058,575],{"class":533},[527,1060,601],{"class":578},[527,1062,547],{"class":533},[527,1064,584],{"class":533},[527,1066,1067,1069,1071,1073,1075,1077,1079,1081],{"class":529,"line":562},[527,1068,540],{"class":533},[527,1070,613],{"class":543},[527,1072,547],{"class":533},[527,1074,550],{"class":533},[527,1076,575],{"class":533},[527,1078,622],{"class":578},[527,1080,547],{"class":533},[527,1082,584],{"class":533},[527,1084,1085,1087,1089,1091,1093,1095,1097,1099],{"class":529,"line":587},[527,1086,540],{"class":533},[527,1088,634],{"class":543},[527,1090,547],{"class":533},[527,1092,550],{"class":533},[527,1094,575],{"class":533},[527,1096,643],{"class":578},[527,1098,547],{"class":533},[527,1100,584],{"class":533},[527,1102,1103,1105,1107,1109,1111,1113],{"class":529,"line":608},[527,1104,540],{"class":533},[527,1106,655],{"class":543},[527,1108,547],{"class":533},[527,1110,550],{"class":533},[527,1112,663],{"class":662},[527,1114,584],{"class":533},[527,1116,1117,1119,1121,1123,1125,1127,1129,1131],{"class":529,"line":629},[527,1118,540],{"class":533},[527,1120,673],{"class":543},[527,1122,547],{"class":533},[527,1124,550],{"class":533},[527,1126,575],{"class":533},[527,1128,682],{"class":578},[527,1130,547],{"class":533},[527,1132,584],{"class":533},[527,1134,1135,1137,1140,1142,1144,1146,1149],{"class":529,"line":650},[527,1136,540],{"class":533},[527,1138,1139],{"class":543},"updatedAt",[527,1141,547],{"class":533},[527,1143,550],{"class":533},[527,1145,575],{"class":533},[527,1147,1148],{"class":578},"2026-03-01T12:00:00Z",[527,1150,685],{"class":533},[527,1152,1153],{"class":529,"line":668},[527,1154,863],{"class":533},[440,1156,867],{"id":1157},"error-responses-1",[343,1159,1160,1163],{},[353,1161,1162],{},"404 Not Found"," — Package does not exist:",[450,1165,1167],{"className":521,"code":1166,"language":523,"meta":458,"style":458},"{\n  \"statusCode\": 404,\n  \"message\": \"Package not found.\"\n}\n",[347,1168,1169,1173,1188,1205],{"__ignoreMap":458},[527,1170,1171],{"class":529,"line":530},[527,1172,534],{"class":533},[527,1174,1175,1177,1179,1181,1183,1186],{"class":529,"line":537},[527,1176,540],{"class":533},[527,1178,889],{"class":543},[527,1180,547],{"class":533},[527,1182,550],{"class":533},[527,1184,1185],{"class":662}," 404",[527,1187,584],{"class":533},[527,1189,1190,1192,1194,1196,1198,1200,1203],{"class":529,"line":556},[527,1191,540],{"class":533},[527,1193,905],{"class":543},[527,1195,547],{"class":533},[527,1197,550],{"class":533},[527,1199,575],{"class":533},[527,1201,1202],{"class":578},"Package not found.",[527,1204,685],{"class":533},[527,1206,1207],{"class":529,"line":562},[527,1208,863],{"class":533},[440,1210,924],{"id":1211},"curl-example-1",[450,1213,1215],{"className":927,"code":1214,"language":929,"meta":458,"style":458},"curl -X GET http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fpackages\u002F507f1f77bcf86cd799439031\n",[347,1216,1217],{"__ignoreMap":458},[527,1218,1219,1221,1223,1225],{"class":529,"line":530},[527,1220,936],{"class":568},[527,1222,939],{"class":578},[527,1224,942],{"class":578},[527,1226,1227],{"class":578}," http:\u002F\u002Flocalhost:4001\u002Fapi\u002Fv1\u002Fpackages\u002F507f1f77bcf86cd799439031\n",[1229,1230,1231],"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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":458,"searchDepth":530,"depth":537,"links":1233},[1234,1241],{"id":407,"depth":537,"text":1235,"children":1236},"GET \u002Fapi\u002Fv1\u002Fpackages — List Public Packages",[1237,1238,1239,1240],{"id":442,"depth":556,"text":443},{"id":517,"depth":556,"text":518},{"id":866,"depth":556,"text":867},{"id":923,"depth":556,"text":924},{"id":970,"depth":537,"text":1242,"children":1243},"GET \u002Fapi\u002Fv1\u002Fpackages\u002F:id — Get Package by ID",[1244,1245,1246,1247],{"id":999,"depth":556,"text":443},{"id":1019,"depth":556,"text":518},{"id":1157,"depth":556,"text":867},{"id":1211,"depth":556,"text":924},"Public tenant-scoped package endpoints for customers browsing available services.","md",null,{},{"icon":209},{"title":206,"description":1248},"ic4hXhxCjIGcIdoZ3duweobeVrMWia-zpMS1wxLZAe8",[1256,1258],{"title":202,"path":203,"stem":204,"description":1257,"icon":182,"children":-1},"Public tenant-scoped business hours endpoints for the customer-facing booking UI.",{"title":211,"path":212,"stem":213,"description":1259,"icon":214,"children":-1},"Owner endpoints for viewing subscription payment history and individual payment records.",1783416091346]