@techzunction/sdk 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/query.ts","../src/client.ts","../src/storefront/auth.ts","../src/storefront/catalog.ts","../src/storefront/cart.ts","../src/storefront/orders.ts","../src/storefront/payments.ts","../src/storefront/delivery.ts","../src/storefront/locations.ts","../src/storefront/loyalty.ts","../src/storefront/coupons.ts","../src/storefront/promotions.ts","../src/storefront/referrals.ts","../src/storefront/reviews.ts","../src/storefront/gift-cards.ts","../src/storefront/reservations.ts","../src/storefront/support.ts","../src/storefront/content.ts","../src/storefront/notifications.ts","../src/storefront/addresses.ts","../src/storefront/upload.ts","../src/storefront/contact.ts","../src/storefront/config.ts","../src/storefront/property.ts","../src/storefront/movies.ts","../src/storefront/tmdb.ts","../src/storefront/wallet.ts","../src/storefront/student.ts","../src/storefront/meal-plans.ts","../src/storefront/help.ts","../src/storefront/index.ts","../src/admin/index.ts","../src/super-admin/index.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import type { PaginatedResponse } from './types';\n\n// ─── Raw Response (before envelope unwrap) ──────────────────────────────────\n\nexport interface RawResponse<T> {\n data: T;\n raw: unknown;\n status: number;\n headers: Headers;\n}\n\n// ─── TZQuery — Rich response wrapper for every API call ─────────────────────\n//\n// Usage:\n// const q = tz.storefront.catalog.getItems();\n// const items = await q; // await directly → T\n// const items = await q.data(); // explicit .data()\n// const raw = await q.raw(); // raw JSON before envelope unwrap\n// const code = await q.status(); // HTTP status code\n// q.cancel(); // abort in-flight request\n// const q2 = q.refetch(); // re-execute same request\n//\n\nexport class TZQuery<T> implements PromiseLike<T> {\n private controller: AbortController;\n private _promise: Promise<RawResponse<T>>;\n private _executor: (signal: AbortSignal) => Promise<RawResponse<T>>;\n\n constructor(executor: (signal: AbortSignal) => Promise<RawResponse<T>>) {\n this._executor = executor;\n this.controller = new AbortController();\n this._promise = executor(this.controller.signal);\n }\n\n /** Thenable — `await query` resolves directly to T */\n then<R1 = T, R2 = never>(\n onFulfilled?: ((value: T) => R1 | PromiseLike<R1>) | null,\n onRejected?: ((reason: unknown) => R2 | PromiseLike<R2>) | null,\n ): Promise<R1 | R2> {\n return this._promise.then((r) => r.data).then(onFulfilled, onRejected);\n }\n\n /** Catch errors */\n catch<R = never>(\n onRejected?: ((reason: unknown) => R | PromiseLike<R>) | null,\n ): Promise<T | R> {\n return this.then(undefined, onRejected);\n }\n\n /** Get the unwrapped data */\n async data(): Promise<T> {\n return (await this._promise).data;\n }\n\n /** Get the raw JSON (before envelope unwrap) */\n async raw(): Promise<unknown> {\n return (await this._promise).raw;\n }\n\n /** Get the HTTP status code */\n async status(): Promise<number> {\n return (await this._promise).status;\n }\n\n /** Get the response headers */\n async headers(): Promise<Headers> {\n return (await this._promise).headers;\n }\n\n /** Abort the in-flight request */\n cancel(): void {\n this.controller.abort();\n }\n\n /** Re-execute the same request (returns a new TZQuery) */\n refetch(): TZQuery<T> {\n return new TZQuery<T>(this._executor);\n }\n}\n\n// ─── TZPaginatedQuery — Adds .next() and .prev() for paginated endpoints ────\n//\n// Usage:\n// const q = tz.storefront.catalog.getItems({ page: 1, limit: 20 });\n// const page1 = await q; // PaginatedResponse<CatalogItem>\n// const page2Query = q.next(); // TZPaginatedQuery for page 2\n// const page2 = await page2Query;\n// const backToPage1 = page2Query.prev(); // back to page 1\n//\n\nexport interface PaginationMeta {\n page: number;\n limit: number;\n totalPages: number;\n total: number;\n}\n\nexport class TZPaginatedQuery<T> extends TZQuery<PaginatedResponse<T>> {\n private _page: number;\n private _limit: number;\n private _pageFactory: (page: number, limit: number) => TZPaginatedQuery<T>;\n\n constructor(\n executor: (signal: AbortSignal) => Promise<RawResponse<PaginatedResponse<T>>>,\n page: number,\n limit: number,\n pageFactory: (page: number, limit: number) => TZPaginatedQuery<T>,\n ) {\n super(executor);\n this._page = page;\n this._limit = limit;\n this._pageFactory = pageFactory;\n }\n\n /** Current page number */\n get page(): number {\n return this._page;\n }\n\n /** Current page size */\n get limit(): number {\n return this._limit;\n }\n\n /** Fetch the next page (returns a new TZPaginatedQuery) */\n next(): TZPaginatedQuery<T> {\n return this._pageFactory(this._page + 1, this._limit);\n }\n\n /** Fetch the previous page (returns a new TZPaginatedQuery, clamped to page 1) */\n prev(): TZPaginatedQuery<T> {\n return this._pageFactory(Math.max(1, this._page - 1), this._limit);\n }\n\n /** Jump to a specific page */\n goTo(page: number): TZPaginatedQuery<T> {\n return this._pageFactory(Math.max(1, page), this._limit);\n }\n\n /** Check if there's a next page (must await first) */\n async hasNext(): Promise<boolean> {\n const result = await this.data();\n return this._page < result.totalPages;\n }\n\n /** Check if there's a previous page */\n hasPrev(): boolean {\n return this._page > 1;\n }\n\n /** Re-execute the same page */\n override refetch(): TZPaginatedQuery<T> {\n return this._pageFactory(this._page, this._limit);\n }\n}\n","import type { TZConfig, TokenStore, ApiError, PaginatedResponse } from './types';\nimport { TZQuery, TZPaginatedQuery, type RawResponse } from './query';\n\n// ─── Default Token Store (localStorage) ─────────────────────────────────────\n\nconst noopStore: TokenStore = {\n get: () => null,\n set: () => {},\n remove: () => {},\n};\n\nfunction createLocalStorageStore(): TokenStore {\n if (typeof globalThis !== 'undefined' && 'localStorage' in globalThis) {\n return {\n get: (key) => localStorage.getItem(key),\n set: (key, value) => localStorage.setItem(key, value),\n remove: (key) => localStorage.removeItem(key),\n };\n }\n return noopStore;\n}\n\n// ─── Storage Keys ───────────────────────────────────────────────────────────\n\nfunction makeKeys(prefix: string) {\n return {\n access: `${prefix}-access-token`,\n refresh: `${prefix}-refresh-token`,\n staffAccess: `${prefix}-staff-access-token`,\n staffRefresh: `${prefix}-staff-refresh-token`,\n superAdminAccess: `${prefix}-sa-access-token`,\n } as const;\n}\n\n// ─── Auth Scopes ────────────────────────────────────────────────────────────\n\nexport type AuthScope = 'enduser' | 'staff' | 'superadmin' | 'public';\n\n// ─── Query Params Helper ────────────────────────────────────────────────────\n\nexport function toQs(params?: Record<string, unknown>): string {\n if (!params) return '';\n const entries = Object.entries(params)\n .filter(([, v]) => v !== undefined && v !== null && v !== '')\n .map(([k, v]) => [k, String(v)]);\n return entries.length ? '?' + new URLSearchParams(entries).toString() : '';\n}\n\n// ─── TZClient (core — manages tokens, refresh, raw fetch) ──────────────────\n\nexport class TZClient {\n readonly baseUrl: string;\n readonly orgSlug: string;\n readonly orgKey: string | undefined;\n private readonly store: TokenStore;\n private readonly keys: ReturnType<typeof makeKeys>;\n private readonly onAuthExpired?: () => void;\n\n private enduserRefreshPromise: Promise<string | null> | null = null;\n private staffRefreshPromise: Promise<string | null> | null = null;\n\n constructor(config: TZConfig) {\n this.baseUrl = config.baseUrl.replace(/\\/+$/, '');\n this.orgSlug = config.orgSlug;\n this.orgKey = config.orgKey;\n this.store = config.tokenStore ?? createLocalStorageStore();\n this.keys = makeKeys(config.keyPrefix ?? 'tz');\n this.onAuthExpired = config.onAuthExpired;\n }\n\n // ─── Token Accessors ───────────────────────────────────────────────────\n\n getEndUserToken(): string | null { return this.store.get(this.keys.access); }\n getEndUserRefreshToken(): string | null { return this.store.get(this.keys.refresh); }\n saveEndUserTokens(access: string, refresh: string): void {\n this.store.set(this.keys.access, access);\n this.store.set(this.keys.refresh, refresh);\n }\n clearEndUserTokens(): void {\n this.store.remove(this.keys.access);\n this.store.remove(this.keys.refresh);\n }\n\n getStaffToken(): string | null { return this.store.get(this.keys.staffAccess); }\n getStaffRefreshToken(): string | null { return this.store.get(this.keys.staffRefresh); }\n saveStaffTokens(access: string, refresh: string): void {\n this.store.set(this.keys.staffAccess, access);\n this.store.set(this.keys.staffRefresh, refresh);\n }\n clearStaffTokens(): void {\n this.store.remove(this.keys.staffAccess);\n this.store.remove(this.keys.staffRefresh);\n }\n\n getSuperAdminToken(): string | null { return this.store.get(this.keys.superAdminAccess); }\n saveSuperAdminToken(token: string): void { this.store.set(this.keys.superAdminAccess, token); }\n clearSuperAdminToken(): void { this.store.remove(this.keys.superAdminAccess); }\n\n isEndUserAuthenticated(): boolean { return !!this.getEndUserToken(); }\n isStaffAuthenticated(): boolean { return !!this.getStaffToken(); }\n\n // ─── Token Refresh (singleton to prevent stampede) ─────────────────────\n\n private async doRefreshEndUser(): Promise<string | null> {\n const rt = this.getEndUserRefreshToken();\n if (!rt) return null;\n try {\n const res = await fetch(`${this.baseUrl}/api/v1/storefront/auth/refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Org-Slug': this.orgSlug,\n ...(this.orgKey ? { 'X-Org-Key': this.orgKey } : {}),\n },\n body: JSON.stringify({ refreshToken: rt }),\n });\n if (!res.ok) { this.clearEndUserTokens(); this.onAuthExpired?.(); return null; }\n const json = await res.json();\n const access = json.accessToken ?? json.data?.accessToken;\n const refresh = json.refreshToken ?? json.data?.refreshToken;\n if (access) { this.saveEndUserTokens(access, refresh || rt); return access; }\n this.clearEndUserTokens(); this.onAuthExpired?.(); return null;\n } catch { this.clearEndUserTokens(); this.onAuthExpired?.(); return null; }\n }\n\n private async doRefreshStaff(): Promise<string | null> {\n const rt = this.getStaffRefreshToken();\n if (!rt) return null;\n try {\n const res = await fetch(`${this.baseUrl}/api/v1/auth/refresh`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'X-Org-Slug': this.orgSlug },\n body: JSON.stringify({ refreshToken: rt }),\n });\n if (!res.ok) { this.clearStaffTokens(); return null; }\n const json = await res.json();\n const access = json.accessToken ?? json.data?.accessToken;\n const refresh = json.refreshToken ?? json.data?.refreshToken;\n if (access) { this.saveStaffTokens(access, refresh || rt); return access; }\n this.clearStaffTokens(); return null;\n } catch { this.clearStaffTokens(); return null; }\n }\n\n refreshEndUser(): Promise<string | null> {\n if (!this.enduserRefreshPromise) {\n this.enduserRefreshPromise = this.doRefreshEndUser().finally(() => { this.enduserRefreshPromise = null; });\n }\n return this.enduserRefreshPromise;\n }\n\n refreshStaff(): Promise<string | null> {\n if (!this.staffRefreshPromise) {\n this.staffRefreshPromise = this.doRefreshStaff().finally(() => { this.staffRefreshPromise = null; });\n }\n return this.staffRefreshPromise;\n }\n\n // ─── Core Raw Request ──────────────────────────────────────────────────\n\n async rawRequest<T>(\n method: string,\n fullPath: string,\n opts: { body?: unknown; scope: AuthScope; signal?: AbortSignal; sendOrgKey: boolean },\n ): Promise<RawResponse<T>> {\n const { body, scope, signal, sendOrgKey } = opts;\n\n try {\n const token = this.resolveToken(scope);\n\n const headers: Record<string, string> = {\n 'X-Org-Slug': this.orgSlug,\n ...(sendOrgKey && this.orgKey ? { 'X-Org-Key': this.orgKey } : {}),\n ...(body !== undefined && !(body instanceof FormData) ? { 'Content-Type': 'application/json' } : {}),\n ...(token ? { Authorization: `Bearer ${token}` } : {}),\n };\n\n const init: RequestInit = {\n method,\n headers,\n ...(body !== undefined ? { body: body instanceof FormData ? body : JSON.stringify(body) } : {}),\n ...(signal ? { signal } : {}),\n };\n\n let res = await fetch(`${this.baseUrl}/api/v1${fullPath}`, init);\n\n // Auto-refresh on 401 (skip auth endpoints)\n if (res.status === 401 && token && !fullPath.includes('/auth/')) {\n const newToken = await this.tryRefresh(scope);\n if (newToken) {\n (init.headers as Record<string, string>)['Authorization'] = `Bearer ${newToken}`;\n res = await fetch(`${this.baseUrl}/api/v1${fullPath}`, init);\n }\n }\n\n const json = await res.json().catch(() => ({}));\n\n if (!res.ok) {\n const msg =\n res.status === 403 ? 'You do not have permission to perform this action'\n : res.status === 429 ? 'Too many requests — please try again later'\n : json.message || (typeof json.error === 'string' ? json.error : json.error?.message) || `Request failed (${res.status})`;\n const err = new Error(msg) as ApiError;\n err.status = res.status;\n err.data = json;\n throw err;\n }\n\n const data = json && typeof json === 'object' && 'success' in json && 'data' in json\n ? (json.data as T)\n : (json as T);\n\n return { data, raw: json, status: res.status, headers: res.headers };\n } catch (err) {\n if (err && typeof err === 'object' && 'status' in err) throw err;\n const error = new Error(err instanceof Error ? err.message : 'Network error — check your connection') as ApiError;\n error.status = 0;\n throw error;\n }\n }\n\n private resolveToken(scope: AuthScope): string | null {\n switch (scope) {\n case 'enduser': return this.getEndUserToken();\n case 'staff': return this.getStaffToken();\n case 'superadmin': return this.getSuperAdminToken();\n case 'public': return null;\n }\n }\n\n private async tryRefresh(scope: AuthScope): Promise<string | null> {\n switch (scope) {\n case 'enduser': return this.refreshEndUser();\n case 'staff': return this.refreshStaff();\n default: return null;\n }\n }\n\n // ─── Scoped Client Factory ─────────────────────────────────────────────\n\n scoped(pathPrefix: string, defaultScope: AuthScope, sendOrgKey: boolean): ScopedClient {\n return new ScopedClient(this, pathPrefix, defaultScope, sendOrgKey);\n }\n}\n\n// ─── ScopedClient — zero-repetition namespace client ─────────────────────────\n//\n// Each namespace (storefront, admin, superadmin) gets a ScopedClient.\n// All methods auto-prepend the prefix and use the correct auth scope.\n//\n// Example:\n// const sf = client.scoped('/storefront', 'public', true);\n// sf.get('/catalog/items') → GET /api/v1/storefront/catalog/items (PUBLIC, sends X-Org-Key)\n// sf.post('/orders', body, 'enduser') → POST with ENDUSER token\n//\n\nexport class ScopedClient {\n constructor(\n readonly root: TZClient,\n private prefix: string,\n private defaultScope: AuthScope,\n private sendOrgKey: boolean,\n ) {}\n\n private fullPath(path: string): string {\n return `${this.prefix}${path}`;\n }\n\n // ─── TZQuery builders (return rich query objects) ──────────────────────\n\n /** GET → TZQuery<T> with .cancel(), .refetch(), .raw(), .status() */\n get<T>(path: string, scope?: AuthScope): TZQuery<T> {\n const s = scope ?? this.defaultScope;\n const fp = this.fullPath(path);\n return new TZQuery<T>((signal) => this.root.rawRequest<T>('GET', fp, { scope: s, signal, sendOrgKey: this.sendOrgKey }));\n }\n\n /** POST → TZQuery<T> */\n post<T>(path: string, body?: unknown, scope?: AuthScope): TZQuery<T> {\n const s = scope ?? this.defaultScope;\n const fp = this.fullPath(path);\n return new TZQuery<T>((signal) => this.root.rawRequest<T>('POST', fp, { body, scope: s, signal, sendOrgKey: this.sendOrgKey }));\n }\n\n /** PATCH → TZQuery<T> */\n patch<T>(path: string, body?: unknown, scope?: AuthScope): TZQuery<T> {\n const s = scope ?? this.defaultScope;\n const fp = this.fullPath(path);\n return new TZQuery<T>((signal) => this.root.rawRequest<T>('PATCH', fp, { body, scope: s, signal, sendOrgKey: this.sendOrgKey }));\n }\n\n /** PUT → TZQuery<T> */\n put<T>(path: string, body?: unknown, scope?: AuthScope): TZQuery<T> {\n const s = scope ?? this.defaultScope;\n const fp = this.fullPath(path);\n return new TZQuery<T>((signal) => this.root.rawRequest<T>('PUT', fp, { body, scope: s, signal, sendOrgKey: this.sendOrgKey }));\n }\n\n /** DELETE → TZQuery<T> */\n del<T>(path: string, scope?: AuthScope): TZQuery<T> {\n const s = scope ?? this.defaultScope;\n const fp = this.fullPath(path);\n return new TZQuery<T>((signal) => this.root.rawRequest<T>('DELETE', fp, { scope: s, signal, sendOrgKey: this.sendOrgKey }));\n }\n\n /** Upload (multipart/form-data) → TZQuery<T> */\n upload<T>(path: string, formData: FormData, scope?: AuthScope): TZQuery<T> {\n const s = scope ?? this.defaultScope;\n const fp = this.fullPath(path);\n return new TZQuery<T>((signal) => this.root.rawRequest<T>('POST', fp, { body: formData, scope: s, signal, sendOrgKey: this.sendOrgKey }));\n }\n\n /** Paginated GET → TZPaginatedQuery<T> with .next(), .prev(), .goTo() */\n paginated<T>(\n path: string,\n params: { page?: number; limit?: number; [key: string]: unknown } = {},\n ): TZPaginatedQuery<T> {\n const page = params.page ?? 1;\n const limit = params.limit ?? 20;\n const scope = this.defaultScope;\n\n const factory = (p: number, l: number): TZPaginatedQuery<T> => {\n const merged = { ...params, page: p, limit: l };\n const qs = toQs(merged);\n const fp = this.fullPath(`${path}${qs}`);\n return new TZPaginatedQuery<T>(\n (signal) => this.root.rawRequest<PaginatedResponse<T>>('GET', fp, { scope, signal, sendOrgKey: this.sendOrgKey }),\n p, l, factory,\n );\n };\n\n return factory(page, limit);\n }\n\n // ─── Direct await methods (for auth flows that need immediate token save) ─\n\n async postDirect<T>(path: string, body?: unknown, scope?: AuthScope): Promise<T> {\n return (await this.root.rawRequest<T>('POST', this.fullPath(path), {\n body, scope: scope ?? this.defaultScope, sendOrgKey: this.sendOrgKey,\n })).data;\n }\n\n async getDirect<T>(path: string, scope?: AuthScope): Promise<T> {\n return (await this.root.rawRequest<T>('GET', this.fullPath(path), {\n scope: scope ?? this.defaultScope, sendOrgKey: this.sendOrgKey,\n })).data;\n }\n\n async patchDirect<T>(path: string, body?: unknown, scope?: AuthScope): Promise<T> {\n return (await this.root.rawRequest<T>('PATCH', this.fullPath(path), {\n body, scope: scope ?? this.defaultScope, sendOrgKey: this.sendOrgKey,\n })).data;\n }\n\n async delDirect<T>(path: string, scope?: AuthScope): Promise<T> {\n return (await this.root.rawRequest<T>('DELETE', this.fullPath(path), {\n scope: scope ?? this.defaultScope, sendOrgKey: this.sendOrgKey,\n })).data;\n }\n}\n","import type { ScopedClient } from '../client';\nimport type { AuthResponse, EndUserProfile } from '../types';\nimport type {\n RegisterEndUserDto, LoginEndUserDto, EndUserSendOtpDto, EndUserVerifyOtpDto,\n StartSignupDto, VerifySignupOtpDto, EndUserRequestResetDto, EndUserResetPasswordDto,\n CompleteSignupDto, UpdateEndUserProfileDto, ChangeEndUserPasswordDto,\n} from '../dto';\n\nexport function createStorefrontAuth(c: ScopedClient) {\n const orgSlug = c.root.orgSlug;\n\n return {\n // ─── Pre-Login (PUBLIC) ───────────────────────────────────────────\n\n register(data: RegisterEndUserDto) {\n return c.postDirect<AuthResponse>('/auth/register', { ...data, orgSlug }).then((r) => {\n c.root.saveEndUserTokens(r.accessToken, r.refreshToken);\n return r;\n });\n },\n\n login(data: LoginEndUserDto) {\n return c.postDirect<AuthResponse>('/auth/login', { ...data, orgSlug }).then((r) => {\n c.root.saveEndUserTokens(r.accessToken, r.refreshToken);\n return r;\n });\n },\n\n sendOtp(data: EndUserSendOtpDto) {\n return c.post<{ message: string }>('/auth/send-otp', { ...data, orgSlug });\n },\n\n verifyOtp(data: EndUserVerifyOtpDto) {\n return c.postDirect<AuthResponse>('/auth/verify-otp', { ...data, orgSlug }).then((r) => {\n c.root.saveEndUserTokens(r.accessToken, r.refreshToken);\n return r;\n });\n },\n\n startSignup(data: StartSignupDto) {\n return c.post<{ userId: string; step: number; message: string }>('/auth/start-signup', { ...data, orgSlug });\n },\n\n verifySignupOtp(data: VerifySignupOtpDto) {\n return c.postDirect<AuthResponse>('/auth/verify-signup-otp', { ...data, orgSlug }).then((r) => {\n c.root.saveEndUserTokens(r.accessToken, r.refreshToken);\n return r;\n });\n },\n\n requestPasswordReset(data: EndUserRequestResetDto) {\n return c.post<{ message: string }>('/auth/request-reset', { ...data, orgSlug });\n },\n\n forgotPassword(data: EndUserRequestResetDto) {\n return c.post<{ message: string }>('/auth/forgot-password', { ...data, orgSlug });\n },\n\n resetPassword(data: EndUserResetPasswordDto) {\n return c.post<{ message: string }>('/auth/reset-password', data);\n },\n\n getGoogleOAuthUrl() {\n return `${c.root.baseUrl}/api/v1/storefront/auth/google?orgSlug=${orgSlug}`;\n },\n\n getFacebookOAuthUrl() {\n return `${c.root.baseUrl}/api/v1/storefront/auth/facebook?orgSlug=${orgSlug}`;\n },\n\n // ─── Post-Login (ENDUSER) ─────────────────────────────────────────\n\n completeSignup(data: CompleteSignupDto) {\n return c.postDirect<AuthResponse>('/auth/complete-signup', data, 'enduser').then((r) => {\n c.root.saveEndUserTokens(r.accessToken, r.refreshToken);\n return r;\n });\n },\n\n me() {\n return c.get<EndUserProfile>('/auth/me', 'enduser');\n },\n\n updateProfile(data: UpdateEndUserProfileDto) {\n return c.patch<EndUserProfile>('/auth/profile', data, 'enduser');\n },\n\n changePassword(data: ChangeEndUserPasswordDto) {\n return c.post<{ message: string }>('/auth/change-password', data, 'enduser');\n },\n\n logout() {\n const refreshToken = c.root.getEndUserRefreshToken();\n return c.postDirect<void>('/auth/logout', { refreshToken }, 'enduser')\n .finally(() => c.root.clearEndUserTokens());\n },\n\n refresh() {\n const refreshToken = c.root.getEndUserRefreshToken();\n return c.postDirect<AuthResponse>('/auth/refresh', { refreshToken }).then((r) => {\n c.root.saveEndUserTokens(r.accessToken, r.refreshToken);\n return r;\n });\n },\n\n // ─── Helpers ──────────────────────────────────────────────────────\n\n isAuthenticated: () => c.root.isEndUserAuthenticated(),\n getToken: () => c.root.getEndUserToken(),\n clearTokens: () => c.root.clearEndUserTokens(),\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { CatalogCategory, CatalogItem } from '../types';\nimport type { GetCatalogItemsQuery } from '../dto';\n\nexport function createStorefrontCatalog(c: ScopedClient) {\n return {\n getCategories() {\n return c.get<CatalogCategory[]>('/catalog/categories');\n },\n\n getItems(params?: GetCatalogItemsQuery) {\n return c.paginated<CatalogItem>('/catalog/items', params);\n },\n\n getItem(id: string) {\n return c.get<CatalogItem>(`/catalog/items/${id}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Cart, CartLineItem } from '../types';\nimport type { AddCartItemDto, UpdateCartItemDto } from '../dto';\n\nexport function createStorefrontCart(c: ScopedClient) {\n return {\n get() {\n return c.get<Cart>('/cart', 'enduser');\n },\n\n addItem(data: AddCartItemDto) {\n return c.post<CartLineItem>('/cart/items', data, 'enduser');\n },\n\n updateItem(itemId: string, data: UpdateCartItemDto) {\n return c.patch<CartLineItem>(`/cart/items/${itemId}`, data, 'enduser');\n },\n\n removeItem(itemId: string) {\n return c.del<void>(`/cart/items/${itemId}`, 'enduser');\n },\n\n validate() {\n return c.post<Cart>('/cart/validate', undefined, 'enduser');\n },\n\n clear() {\n return c.del<void>('/cart', 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Order } from '../types';\nimport type { CreateOrderDto, ListOrdersQuery, ReorderDto, ReportOrderIssueDto } from '../dto';\n\nexport function createStorefrontOrders(c: ScopedClient) {\n return {\n create(data: CreateOrderDto) {\n return c.post<Order>('/orders', data, 'enduser');\n },\n\n list(params?: ListOrdersQuery) {\n return c.paginated<Order>('/orders', params);\n },\n\n get(id: string) {\n return c.get<Order>(`/orders/${id}`, 'enduser');\n },\n\n reorder(data: ReorderDto) {\n return c.post<Order>('/orders/reorder', data, 'enduser');\n },\n\n reportIssue(orderId: string, data: ReportOrderIssueDto) {\n return c.post<{ ticketId: string }>(`/orders/${orderId}/issue`, data, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { PaymentOrder, PaymentVerification } from '../types';\nimport type { CreatePaymentOrderDto, VerifyPaymentDto } from '../dto';\n\nexport function createStorefrontPayments(c: ScopedClient) {\n return {\n createOrder(data: CreatePaymentOrderDto) {\n return c.post<PaymentOrder>('/payments/create-order', data, 'enduser');\n },\n\n verify(data: VerifyPaymentDto) {\n return c.post<PaymentVerification>('/payments/verify', data, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { DeliveryCalculation, DeliveryTracking } from '../types';\nimport type { CalculateDeliveryDto } from '../dto';\n\nexport function createStorefrontDelivery(c: ScopedClient) {\n return {\n calculate(data: CalculateDeliveryDto) {\n return c.post<DeliveryCalculation>('/delivery/calculate', data);\n },\n\n fee(data: CalculateDeliveryDto) {\n return c.post<DeliveryCalculation>('/delivery/fee', data);\n },\n\n tracking(orderId: string) {\n return c.get<DeliveryTracking>(`/delivery/orders/${orderId}/tracking`, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { StoreLocation } from '../types';\n\nexport function createStorefrontLocations(c: ScopedClient) {\n return {\n list() {\n return c.get<StoreLocation[]>('/locations');\n },\n\n get(id: string) {\n return c.get<StoreLocation>(`/locations/${id}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { LoyaltyAccount, LoyaltyTransaction, LoyaltyReward, LoyaltyRedemption } from '../types';\nimport type { RedeemLoyaltyRewardDto } from '../dto';\n\nexport function createStorefrontLoyalty(c: ScopedClient) {\n return {\n getAccount() {\n return c.get<LoyaltyAccount>('/loyalty', 'enduser');\n },\n\n getTransactions() {\n return c.get<LoyaltyTransaction[]>('/loyalty/transactions', 'enduser');\n },\n\n getRewards() {\n return c.get<LoyaltyReward[]>('/loyalty/rewards', 'enduser');\n },\n\n getRedemptions() {\n return c.get<LoyaltyRedemption[]>('/loyalty/redeem', 'enduser');\n },\n\n redeem(data: RedeemLoyaltyRewardDto) {\n return c.post<LoyaltyRedemption>('/loyalty/redeem', data, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { CouponValidation } from '../types';\nimport type { ValidateCouponDto } from '../dto';\n\nexport function createStorefrontCoupons(c: ScopedClient) {\n return {\n validate(data: ValidateCouponDto) {\n return c.post<CouponValidation>('/coupons/validate', data);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Promotion } from '../types';\n\nexport function createStorefrontPromotions(c: ScopedClient) {\n return {\n list() {\n return c.get<Promotion[]>('/promotions');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { ReferralInfo, ReferralValidation } from '../types';\nimport type { ValidateReferralDto } from '../dto';\n\nexport function createStorefrontReferrals(c: ScopedClient) {\n return {\n getMyCode() {\n return c.get<ReferralInfo>('/referral', 'enduser');\n },\n\n validate(data: ValidateReferralDto) {\n return c.post<ReferralValidation>('/referral/validate', data);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Review } from '../types';\nimport type { ListReviewsQuery, CreateReviewDto } from '../dto';\n\nexport function createStorefrontReviews(c: ScopedClient) {\n return {\n list(params?: ListReviewsQuery) {\n return c.paginated<Review>('/reviews', params);\n },\n\n myReviews() {\n return c.get<Review[]>('/reviews/my', 'enduser');\n },\n\n create(data: CreateReviewDto) {\n return c.post<Review>('/reviews', data, 'enduser');\n },\n\n toggleHelpful(reviewId: string) {\n return c.post<{ helpful: boolean }>(`/reviews/${reviewId}/helpful`, undefined, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { GiftCard } from '../types';\nimport type { PurchaseGiftCardDto, RedeemGiftCardDto } from '../dto';\n\nexport function createStorefrontGiftCards(c: ScopedClient) {\n return {\n purchase(data: PurchaseGiftCardDto) {\n return c.post<GiftCard>('/gift-cards/purchase', data, 'enduser');\n },\n\n redeem(data: RedeemGiftCardDto) {\n return c.post<GiftCard>('/gift-cards/redeem', data, 'enduser');\n },\n\n checkBalance(code: string) {\n return c.get<{ balance: number; status: string }>(`/gift-cards/balance?code=${encodeURIComponent(code)}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { ReservationSlot, Reservation } from '../types';\nimport type { CheckReservationAvailabilityQuery, CreateReservationDto } from '../dto';\nimport type { StatusQuery } from '../dto';\n\nexport function createStorefrontReservations(c: ScopedClient) {\n return {\n checkAvailability(params: CheckReservationAvailabilityQuery) {\n return c.get<ReservationSlot[]>(`/reservations/availability?date=${params.date}${params.partySize ? `&partySize=${params.partySize}` : ''}`);\n },\n\n create(data: CreateReservationDto) {\n return c.post<Reservation>('/reservations', data, 'enduser');\n },\n\n list(params?: StatusQuery) {\n return c.paginated<Reservation>('/reservations', params);\n },\n\n cancel(id: string) {\n return c.post<Reservation>(`/reservations/${id}/cancel`, undefined, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { SupportTicket, SupportReply } from '../types';\nimport type { CreateSupportTicketDto, ReplySupportTicketDto } from '../dto';\nimport type { StatusQuery } from '../dto';\n\nexport function createStorefrontSupport(c: ScopedClient) {\n return {\n create(data: CreateSupportTicketDto) {\n return c.post<SupportTicket>('/support', data, 'enduser');\n },\n\n list(params?: StatusQuery) {\n return c.paginated<SupportTicket>('/support', params);\n },\n\n reply(ticketId: string, data: ReplySupportTicketDto) {\n return c.post<SupportReply>(`/support/${ticketId}/reply`, data, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { ContentPost } from '../types';\nimport type { ListContentQuery } from '../dto';\n\nexport function createStorefrontContent(c: ScopedClient) {\n return {\n list(params?: ListContentQuery) {\n return c.paginated<ContentPost>('/content', params);\n },\n\n getBySlug(slug: string) {\n return c.get<ContentPost>(`/content/${slug}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Notification } from '../types';\nimport type { PaginatedQuery } from '../dto';\n\nexport function createStorefrontNotifications(c: ScopedClient) {\n return {\n list(params?: PaginatedQuery) {\n return c.paginated<Notification>('/notifications', params);\n },\n\n markRead(id: string) {\n return c.post<void>(`/notifications/${id}/read`, undefined, 'enduser');\n },\n\n markAllRead() {\n return c.post<void>('/notifications/read-all', undefined, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Address } from '../types';\nimport type { CreateAddressDto, UpdateAddressDto } from '../dto';\n\nexport function createStorefrontAddresses(c: ScopedClient) {\n return {\n list() {\n return c.get<Address[]>('/addresses', 'enduser');\n },\n\n get(id: string) {\n return c.get<Address>(`/addresses/${id}`, 'enduser');\n },\n\n create(data: CreateAddressDto) {\n return c.post<Address>('/addresses', data, 'enduser');\n },\n\n update(id: string, data: UpdateAddressDto) {\n return c.patch<Address>(`/addresses/${id}`, data, 'enduser');\n },\n\n remove(id: string) {\n return c.del<void>(`/addresses/${id}`, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { UploadResult } from '../types';\n\nexport function createStorefrontUpload(c: ScopedClient) {\n return {\n upload(file: File | Blob, folder?: string) {\n const formData = new FormData();\n formData.append('file', file);\n if (folder) formData.append('folder', folder);\n return c.upload<UploadResult>('/upload', formData, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { SubmitContactDto, SubscribeNewsletterDto } from '../dto';\n\nexport function createStorefrontContact(c: ScopedClient) {\n return {\n submit(data: SubmitContactDto) {\n return c.post<{ message: string }>('/contact', data);\n },\n\n subscribe(data: SubscribeNewsletterDto) {\n return c.post<{ message: string }>('/contact/subscribe', data);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { StorefrontConfig } from '../types';\n\nexport function createStorefrontConfig(c: ScopedClient) {\n return {\n get() {\n return c.get<StorefrontConfig>('/config');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { PropertyType, PropertyBooking, PropertyAvailability, PropertyPriceResolution } from '../types';\nimport type {\n CreatePropertyBookingDto, CancelPropertyBookingDto, CreatePropertyPaymentOrderDto,\n VerifyPaymentDto, CheckPropertyAvailabilityQuery, ResolvePropertyPriceDto,\n} from '../dto';\nimport type { StatusQuery } from '../dto';\n\nexport function createStorefrontProperty(c: ScopedClient) {\n return {\n getTypes() {\n return c.get<PropertyType[]>('/property/types');\n },\n\n getType(id: string) {\n return c.get<PropertyType>(`/property/types/${id}`);\n },\n\n createBooking(data: CreatePropertyBookingDto) {\n return c.post<PropertyBooking>('/property/bookings', data, 'enduser');\n },\n\n listBookings(params?: StatusQuery) {\n return c.paginated<PropertyBooking>('/property/bookings', params);\n },\n\n getBooking(id: string) {\n return c.get<PropertyBooking>(`/property/bookings/${id}`, 'enduser');\n },\n\n cancelBooking(id: string, data?: CancelPropertyBookingDto) {\n return c.post<PropertyBooking>(`/property/bookings/${id}/cancel`, data, 'enduser');\n },\n\n createPaymentOrder(bookingId: string, data: CreatePropertyPaymentOrderDto) {\n return c.post<{ orderId: string; amount: number }>(`/property/bookings/${bookingId}/payment-order`, data, 'enduser');\n },\n\n verifyPayment(data: VerifyPaymentDto) {\n return c.post<PropertyBooking>('/property/bookings/verify-payment', data, 'enduser');\n },\n\n lookupBooking(reference: string) {\n return c.get<PropertyBooking>(`/property/bookings/lookup?reference=${encodeURIComponent(reference)}`);\n },\n\n checkAvailability(params: CheckPropertyAvailabilityQuery) {\n return c.get<PropertyAvailability[]>(`/property/availability?propertyTypeId=${params.propertyTypeId}&checkIn=${params.checkIn}&checkOut=${params.checkOut}`);\n },\n\n resolvePrice(data: ResolvePropertyPriceDto) {\n return c.post<PropertyPriceResolution>('/property/pricing/resolve', data);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Movie, MovieDetail, WatchSessionResponse, WatchSessionStatus, WatchSessionSummary } from '../types';\nimport type { ListMoviesQuery, UpdateMovieProgressDto, StartWatchSessionDto } from '../dto';\n\nexport function createStorefrontMovies(c: ScopedClient) {\n return {\n list(params?: ListMoviesQuery) {\n return c.paginated<Movie>('/movies', params);\n },\n\n heroBanners() {\n return c.get<Movie[]>('/movies/hero-banners');\n },\n\n genres() {\n return c.get<{ id: string; name: string }[]>('/movies/genres');\n },\n\n getBySlug(slug: string) {\n return c.get<MovieDetail>(`/movies/${slug}`);\n },\n\n library() {\n return c.get<Movie[]>('/movies/library', 'enduser');\n },\n\n getStreamUrl(id: string) {\n return c.get<{ url: string }>(`/movies/${id}/stream`, 'enduser');\n },\n\n updateProgress(id: string, data: UpdateMovieProgressDto) {\n return c.post<void>(`/movies/${id}/progress`, data, 'enduser');\n },\n\n rent(id: string) {\n return c.post<{ entitlementId: string }>(`/movies/${id}/rent`, undefined, 'enduser');\n },\n\n buy(id: string) {\n return c.post<{ entitlementId: string }>(`/movies/${id}/buy`, undefined, 'enduser');\n },\n\n // ─── PPM Watch Sessions ──────────────────────────────────────────\n\n startSession(tmdbId: number, data: StartWatchSessionDto) {\n return c.post<WatchSessionResponse>(`/movies/${tmdbId}/start-session`, data, 'enduser');\n },\n\n getSessionStatus(sessionId: string) {\n return c.get<WatchSessionStatus>(`/movies/session/${sessionId}/status`, 'enduser');\n },\n\n pauseSession(sessionId: string) {\n return c.post<WatchSessionStatus>(`/movies/session/${sessionId}/pause`, undefined, 'enduser');\n },\n\n resumeSession(sessionId: string) {\n return c.post<WatchSessionStatus>(`/movies/session/${sessionId}/resume`, undefined, 'enduser');\n },\n\n endSession(sessionId: string) {\n return c.post<WatchSessionSummary>(`/movies/session/${sessionId}/end`, undefined, 'enduser');\n },\n\n // ─── Watchlist ───────────────────────────────────────────────────\n\n getWatchlist() {\n return c.get<Movie[]>('/watchlist', 'enduser');\n },\n\n addToWatchlist(catalogItemId: string) {\n return c.post<void>(`/watchlist/${catalogItemId}`, undefined, 'enduser');\n },\n\n removeFromWatchlist(catalogItemId: string) {\n return c.del<void>(`/watchlist/${catalogItemId}`, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { TmdbMovie, TmdbMovieDetail } from '../types';\n\nexport function createStorefrontTmdb(c: ScopedClient) {\n return {\n popular(page?: number) {\n return c.get<{ results: TmdbMovie[]; total_pages: number }>(`/tmdb/popular${page ? `?page=${page}` : ''}`);\n },\n\n trending() {\n return c.get<{ results: TmdbMovie[] }>('/tmdb/trending');\n },\n\n bollywood(page?: number) {\n return c.get<{ results: TmdbMovie[]; total_pages: number }>(`/tmdb/bollywood${page ? `?page=${page}` : ''}`);\n },\n\n hollywood(page?: number) {\n return c.get<{ results: TmdbMovie[]; total_pages: number }>(`/tmdb/hollywood${page ? `?page=${page}` : ''}`);\n },\n\n tamil(page?: number) {\n return c.get<{ results: TmdbMovie[]; total_pages: number }>(`/tmdb/tamil${page ? `?page=${page}` : ''}`);\n },\n\n telugu(page?: number) {\n return c.get<{ results: TmdbMovie[]; total_pages: number }>(`/tmdb/telugu${page ? `?page=${page}` : ''}`);\n },\n\n search(query: string, page?: number) {\n return c.get<{ results: TmdbMovie[]; total_pages: number }>(`/tmdb/search?query=${encodeURIComponent(query)}${page ? `&page=${page}` : ''}`);\n },\n\n genres() {\n return c.get<{ genres: Array<{ id: number; name: string }> }>('/tmdb/genres');\n },\n\n getStreamUrl(tmdbId: number) {\n return c.get<{ url: string }>(`/tmdb/stream/${tmdbId}`);\n },\n\n getPlayUrl(tmdbId: number) {\n return `${c.root.baseUrl}/api/v1/storefront/tmdb/play/${tmdbId}`;\n },\n\n getDetail(tmdbId: number) {\n return c.get<TmdbMovieDetail>(`/tmdb/${tmdbId}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { WalletPack, WalletBalance, WalletTransaction } from '../types';\nimport type { TopUpWalletDto } from '../dto';\nimport type { PaginatedQuery } from '../dto';\n\nexport function createStorefrontWallet(c: ScopedClient) {\n return {\n getPacks() {\n return c.get<WalletPack[]>('/wallet/packs');\n },\n\n getBalance() {\n return c.get<WalletBalance>('/wallet/balance', 'enduser');\n },\n\n topUp(data: TopUpWalletDto) {\n return c.post<WalletBalance>('/wallet/topup', data, 'enduser');\n },\n\n getTransactions(params?: PaginatedQuery) {\n return c.paginated<WalletTransaction>('/wallet/transactions', params);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { StudentPassStatus, DiscountPreview } from '../types';\nimport type { ApplyStudentPassDto, PreviewStudentDiscountDto } from '../dto';\n\nexport function createStorefrontStudent(c: ScopedClient) {\n return {\n getPassStatus() {\n return c.get<StudentPassStatus>('/student/pass', 'enduser');\n },\n\n applyForPass(data: ApplyStudentPassDto) {\n return c.post<StudentPassStatus>('/student/pass', data, 'enduser');\n },\n\n previewDiscount(data: PreviewStudentDiscountDto) {\n return c.post<DiscountPreview>('/student/discount/preview', data, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { MealPlan, MealSubscription } from '../types';\nimport type { SubscribeMealPlanDto } from '../dto';\n\nexport function createStorefrontMealPlans(c: ScopedClient) {\n return {\n list() {\n return c.get<MealPlan[]>('/meal-plans');\n },\n\n get(id: string) {\n return c.get<MealPlan>(`/meal-plans/${id}`);\n },\n\n subscribe(data: SubscribeMealPlanDto) {\n return c.post<MealSubscription>('/meal-plans/subscribe', data, 'enduser');\n },\n\n mySubscriptions() {\n return c.get<MealSubscription[]>('/meal-plans/subscriptions', 'enduser');\n },\n\n cancelSubscription(id: string) {\n return c.post<MealSubscription>(`/meal-plans/subscriptions/${id}/cancel`, undefined, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { HelpArticle } from '../types';\n\nexport function createStorefrontHelp(c: ScopedClient) {\n return {\n list() {\n return c.get<HelpArticle[]>('/content?type=help');\n },\n\n getBySlug(slug: string) {\n return c.get<HelpArticle>(`/content/${slug}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport { createStorefrontAuth } from './auth';\nimport { createStorefrontCatalog } from './catalog';\nimport { createStorefrontCart } from './cart';\nimport { createStorefrontOrders } from './orders';\nimport { createStorefrontPayments } from './payments';\nimport { createStorefrontDelivery } from './delivery';\nimport { createStorefrontLocations } from './locations';\nimport { createStorefrontLoyalty } from './loyalty';\nimport { createStorefrontCoupons } from './coupons';\nimport { createStorefrontPromotions } from './promotions';\nimport { createStorefrontReferrals } from './referrals';\nimport { createStorefrontReviews } from './reviews';\nimport { createStorefrontGiftCards } from './gift-cards';\nimport { createStorefrontReservations } from './reservations';\nimport { createStorefrontSupport } from './support';\nimport { createStorefrontContent } from './content';\nimport { createStorefrontNotifications } from './notifications';\nimport { createStorefrontAddresses } from './addresses';\nimport { createStorefrontUpload } from './upload';\nimport { createStorefrontContact } from './contact';\nimport { createStorefrontConfig } from './config';\nimport { createStorefrontProperty } from './property';\nimport { createStorefrontMovies } from './movies';\nimport { createStorefrontTmdb } from './tmdb';\nimport { createStorefrontWallet } from './wallet';\nimport { createStorefrontStudent } from './student';\nimport { createStorefrontMealPlans } from './meal-plans';\nimport { createStorefrontHelp } from './help';\n\nexport function createStorefront(c: ScopedClient) {\n return {\n auth: createStorefrontAuth(c),\n catalog: createStorefrontCatalog(c),\n cart: createStorefrontCart(c),\n orders: createStorefrontOrders(c),\n payments: createStorefrontPayments(c),\n delivery: createStorefrontDelivery(c),\n locations: createStorefrontLocations(c),\n loyalty: createStorefrontLoyalty(c),\n coupons: createStorefrontCoupons(c),\n promotions: createStorefrontPromotions(c),\n referrals: createStorefrontReferrals(c),\n reviews: createStorefrontReviews(c),\n giftCards: createStorefrontGiftCards(c),\n reservations: createStorefrontReservations(c),\n support: createStorefrontSupport(c),\n content: createStorefrontContent(c),\n notifications: createStorefrontNotifications(c),\n addresses: createStorefrontAddresses(c),\n upload: createStorefrontUpload(c),\n contact: createStorefrontContact(c),\n config: createStorefrontConfig(c),\n property: createStorefrontProperty(c),\n movies: createStorefrontMovies(c),\n tmdb: createStorefrontTmdb(c),\n wallet: createStorefrontWallet(c),\n student: createStorefrontStudent(c),\n mealPlans: createStorefrontMealPlans(c),\n help: createStorefrontHelp(c),\n };\n}\n","import type { TZClient, ScopedClient } from '../client';\nimport type {\n StaffAuthResponse, StaffUser, Role, AuditLog, ApiKey,\n CatalogCategory, CatalogItem, CatalogItemVariant, CatalogOptionGroup, CatalogOption,\n Order, StoreLocation, ContactMessage, Notification, ContentPost,\n Review, GiftCard, Reservation, SupportTicket, Promotion, LoyaltyAccount, LoyaltyReward,\n UploadResult, StudentPassStatus, StudentDiscount, Institution, MealPlan, HelpArticle,\n Ingredient, StockAlert, WasteLog, Supplier, PurchaseOrder, AdminMealSubscription,\n} from '../types';\nimport type {\n StaffRegisterDto, StaffLoginDto, StaffSendOtpDto, StaffVerifyOtpDto,\n RequestMagicLinkDto, VerifyMagicLinkQuery, StaffChangePasswordDto,\n StaffRequestPasswordResetDto, StaffResetPasswordDto,\n ListStaffUsersQuery, InviteStaffUserDto, UpdateStaffUserDto, AssignStaffRolesDto,\n UpdateOrgDto, CreateRoleDto, UpdateRoleDto,\n CreateCatalogCategoryDto, UpdateCatalogCategoryDto, ListCatalogItemsQuery,\n CreateCatalogVariantDto, UpdateCatalogVariantDto,\n CreateCatalogOptionGroupDto, UpdateCatalogOptionGroupDto,\n CreateCatalogOptionDto, UpdateCatalogOptionDto,\n AdminListOrdersQuery, UpdateOrderStatusDto,\n SetLocationHoursDto, ListEndUsersQuery, BulkUpsertEndUsersDto, EndUserTagsDto,\n CreateApiKeyDto, UpdateApiKeyDto,\n SetSettingDto, BulkUpdateSettingsDto, SubscribeBillingPlanDto,\n PreviewTemplateDto, AddSegmentMembersDto, ScheduleCampaignDto,\n AdjustLoyaltyPointsDto, UpdateReviewStatusDto, UpdateReservationStatusDto,\n SetPropertyTypeAmenitiesDto, UpdateHousekeepingDto, CreatePropertyAmenityDto,\n AssignPropertyUnitsDto, AdminCancelBookingDto, UpdateSupportTicketDto,\n ListStudentPassesQuery, ReviewStudentPassDto, BulkReviewStudentPassesDto,\n CreateStudentDiscountDto, UpdateStudentDiscountDto,\n CreateInstitutionDto, UpdateInstitutionDto,\n CreateMealPlanDto, UpdateMealPlanDto,\n CreateHelpArticleDto, UpdateHelpArticleDto,\n CreateIngredientDto, UpdateIngredientDto, CreateWasteLogDto,\n CreateSupplierDto, UpdateSupplierDto,\n CreatePurchaseOrderDto, UpdatePurchaseOrderDto, QueryPurchaseOrdersParams,\n QueryMealSubscriptionsParams,\n} from '../dto';\nimport type { PaginatedQuery, StatusQuery } from '../dto';\n\nexport function createAdmin(root: TZClient, c: ScopedClient) {\n const orgSlug = root.orgSlug;\n\n return {\n // ─── Auth (Staff) ────────────────────────────────────────────────\n\n auth: {\n register(data: StaffRegisterDto) {\n return root.rawRequest<StaffAuthResponse>('POST', '/auth/register', { body: { ...data, orgSlug }, scope: 'public', sendOrgKey: false })\n .then((r) => { root.saveStaffTokens(r.data.accessToken, r.data.refreshToken); return r.data; });\n },\n\n login(data: StaffLoginDto) {\n return root.rawRequest<StaffAuthResponse>('POST', '/auth/login', { body: { ...data, orgSlug }, scope: 'public', sendOrgKey: false })\n .then((r) => { root.saveStaffTokens(r.data.accessToken, r.data.refreshToken); return r.data; });\n },\n\n logout() {\n const refreshToken = root.getStaffRefreshToken();\n return root.rawRequest<void>('POST', '/auth/logout', { body: { refreshToken }, scope: 'staff', sendOrgKey: false })\n .then((r) => r.data)\n .finally(() => root.clearStaffTokens());\n },\n\n me() { return c.get<StaffUser>('/users/me'); },\n\n sendOtp(data: StaffSendOtpDto) {\n return root.rawRequest<{ message: string }>('POST', '/auth/otp/send', { body: { ...data, orgSlug }, scope: 'public', sendOrgKey: false })\n .then((r) => r.data);\n },\n\n verifyOtp(data: StaffVerifyOtpDto) {\n return root.rawRequest<StaffAuthResponse>('POST', '/auth/otp/verify', { body: { ...data, orgSlug }, scope: 'public', sendOrgKey: false })\n .then((r) => { root.saveStaffTokens(r.data.accessToken, r.data.refreshToken); return r.data; });\n },\n\n refresh() {\n const refreshToken = root.getStaffRefreshToken();\n return root.rawRequest<StaffAuthResponse>('POST', '/auth/refresh', { body: { refreshToken }, scope: 'public', sendOrgKey: false })\n .then((r) => { root.saveStaffTokens(r.data.accessToken, r.data.refreshToken); return r.data; });\n },\n\n requestMagicLink(data: RequestMagicLinkDto) {\n return root.rawRequest<{ message: string }>('POST', '/auth/magic-link', { body: { ...data, orgSlug }, scope: 'public', sendOrgKey: false })\n .then((r) => r.data);\n },\n\n verifyMagicLink(params: VerifyMagicLinkQuery) {\n return root.rawRequest<StaffAuthResponse>('GET', `/auth/magic-link/verify?token=${encodeURIComponent(params.token)}&orgSlug=${orgSlug}`, { scope: 'public', sendOrgKey: false })\n .then((r) => { root.saveStaffTokens(r.data.accessToken, r.data.refreshToken); return r.data; });\n },\n\n changePassword(data: StaffChangePasswordDto) {\n return c.post<{ message: string }>('/auth/password/change', data);\n },\n\n requestPasswordReset(data: StaffRequestPasswordResetDto) {\n return root.rawRequest<{ message: string }>('POST', '/auth/password/reset-request', { body: { ...data, orgSlug }, scope: 'public', sendOrgKey: false })\n .then((r) => r.data);\n },\n\n resetPassword(data: StaffResetPasswordDto) {\n return root.rawRequest<{ message: string }>('POST', '/auth/password/reset', { body: data, scope: 'public', sendOrgKey: false })\n .then((r) => r.data);\n },\n\n isAuthenticated: () => root.isStaffAuthenticated(),\n getToken: () => root.getStaffToken(),\n clearTokens: () => root.clearStaffTokens(),\n },\n\n // ─── Users ───────────────────────────────────────────────────────\n\n users: {\n list(params?: ListStaffUsersQuery) { return c.paginated<StaffUser>('/users', params); },\n get(id: string) { return c.get<StaffUser>(`/users/${id}`); },\n invite(data: InviteStaffUserDto) { return c.post<StaffUser>('/users/invite', data); },\n update(id: string, data: UpdateStaffUserDto) { return c.patch<StaffUser>(`/users/${id}`, data); },\n remove(id: string) { return c.del<void>(`/users/${id}`); },\n suspend(id: string) { return c.post<void>(`/users/${id}/suspend`); },\n reinstate(id: string) { return c.post<void>(`/users/${id}/reinstate`); },\n assignRoles(id: string, data: AssignStaffRolesDto) { return c.post<void>(`/users/${id}/roles`, data); },\n },\n\n // ─── Organization (Self) ─────────────────────────────────────────\n\n org: {\n me() { return c.get<{ id: string; name: string; slug: string; logoUrl: string | null }>('/org/me'); },\n update(data: UpdateOrgDto) { return c.patch<unknown>('/org/me', data); },\n },\n\n // ─── Roles ───────────────────────────────────────────────────────\n\n roles: {\n list() { return c.get<Role[]>('/roles'); },\n permissions() { return c.get<string[]>('/roles/permissions'); },\n get(id: string) { return c.get<Role>(`/roles/${id}`); },\n create(data: CreateRoleDto) { return c.post<Role>('/roles', data); },\n update(id: string, data: UpdateRoleDto) { return c.patch<Role>(`/roles/${id}`, data); },\n remove(id: string) { return c.del<void>(`/roles/${id}`); },\n },\n\n // ─── Catalog ─────────────────────────────────────────────────────\n\n catalog: {\n getCategories(params?: PaginatedQuery) { return c.paginated<CatalogCategory>('/catalog/categories', params); },\n createCategory(data: CreateCatalogCategoryDto) { return c.post<CatalogCategory>('/catalog/categories', data); },\n updateCategory(id: string, data: UpdateCatalogCategoryDto) { return c.patch<CatalogCategory>(`/catalog/categories/${id}`, data); },\n removeCategory(id: string) { return c.del<void>(`/catalog/categories/${id}`); },\n\n getItems(params?: ListCatalogItemsQuery) { return c.paginated<CatalogItem>('/catalog/items', params); },\n getItem(id: string) { return c.get<CatalogItem>(`/catalog/items/${id}`); },\n createItem(data: Record<string, unknown>) { return c.post<CatalogItem>('/catalog/items', data); },\n updateItem(id: string, data: Record<string, unknown>) { return c.patch<CatalogItem>(`/catalog/items/${id}`, data); },\n removeItem(id: string) { return c.del<void>(`/catalog/items/${id}`); },\n\n createVariant(itemId: string, data: CreateCatalogVariantDto) { return c.post<CatalogItemVariant>(`/catalog/items/${itemId}/variants`, data); },\n updateVariant(variantId: string, data: UpdateCatalogVariantDto) { return c.patch<CatalogItemVariant>(`/catalog/variants/${variantId}`, data); },\n removeVariant(variantId: string) { return c.del<void>(`/catalog/variants/${variantId}`); },\n\n createOptionGroup(itemId: string, data: CreateCatalogOptionGroupDto) { return c.post<CatalogOptionGroup>(`/catalog/items/${itemId}/option-groups`, data); },\n updateOptionGroup(groupId: string, data: UpdateCatalogOptionGroupDto) { return c.patch<CatalogOptionGroup>(`/catalog/option-groups/${groupId}`, data); },\n removeOptionGroup(groupId: string) { return c.del<void>(`/catalog/option-groups/${groupId}`); },\n\n createOption(groupId: string, data: CreateCatalogOptionDto) { return c.post<CatalogOption>(`/catalog/option-groups/${groupId}/options`, data); },\n updateOption(optionId: string, data: UpdateCatalogOptionDto) { return c.patch<CatalogOption>(`/catalog/options/${optionId}`, data); },\n removeOption(optionId: string) { return c.del<void>(`/catalog/options/${optionId}`); },\n },\n\n // ─── Commerce Orders ─────────────────────────────────────────────\n\n orders: {\n list(params?: AdminListOrdersQuery) { return c.paginated<Order>('/commerce/orders', params); },\n stats() { return c.get<Record<string, unknown>>('/commerce/orders/stats'); },\n get(id: string) { return c.get<Order>(`/commerce/orders/${id}`); },\n updateStatus(id: string, data: UpdateOrderStatusDto) { return c.patch<Order>(`/commerce/orders/${id}/status`, data); },\n },\n\n // ─── Locations ───────────────────────────────────────────────────\n\n locations: {\n list() { return c.get<StoreLocation[]>('/locations'); },\n get(id: string) { return c.get<StoreLocation>(`/locations/${id}`); },\n create(data: Record<string, unknown>) { return c.post<StoreLocation>('/locations', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<StoreLocation>(`/locations/${id}`, data); },\n remove(id: string) { return c.del<void>(`/locations/${id}`); },\n setHours(id: string, data: SetLocationHoursDto) { return c.put<void>(`/locations/${id}/hours`, data); },\n getDeliveryZones(id: string) { return c.get<unknown[]>(`/locations/${id}/delivery-zones`); },\n createDeliveryZone(id: string, data: Record<string, unknown>) { return c.post<unknown>(`/locations/${id}/delivery-zones`, data); },\n updateDeliveryZone(zoneId: string, data: Record<string, unknown>) { return c.patch<unknown>(`/locations/delivery-zones/${zoneId}`, data); },\n removeDeliveryZone(zoneId: string) { return c.del<void>(`/locations/delivery-zones/${zoneId}`); },\n },\n\n // ─── End Users (Admin) ───────────────────────────────────────────\n\n endUsers: {\n list(params?: ListEndUsersQuery) { return c.paginated<unknown>('/end-users', params); },\n get(id: string) { return c.get<unknown>(`/end-users/${id}`); },\n create(data: Record<string, unknown>) { return c.post<unknown>('/end-users', data); },\n bulkUpsert(data: BulkUpsertEndUsersDto) { return c.post<unknown>('/end-users/bulk', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/end-users/${id}`, data); },\n remove(id: string) { return c.del<void>(`/end-users/${id}`); },\n block(id: string) { return c.post<void>(`/end-users/${id}/block`); },\n unblock(id: string) { return c.post<void>(`/end-users/${id}/unblock`); },\n updateAttributes(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/end-users/${id}/attributes`, data); },\n addTags(id: string, data: EndUserTagsDto) { return c.post<void>(`/end-users/${id}/tags`, data); },\n removeTags(id: string, data: EndUserTagsDto) { return c.del<void>(`/end-users/${id}/tags`); },\n },\n\n // ─── Audit ───────────────────────────────────────────────────────\n\n audit: {\n list(params?: PaginatedQuery & { action?: string; resource?: string }) { return c.paginated<AuditLog>('/audit', params); },\n },\n\n // ─── API Keys ────────────────────────────────────────────────────\n\n apiKeys: {\n list() { return c.get<ApiKey[]>('/api-keys'); },\n get(id: string) { return c.get<ApiKey>(`/api-keys/${id}`); },\n create(data: CreateApiKeyDto) { return c.post<ApiKey & { key: string }>('/api-keys', data); },\n update(id: string, data: UpdateApiKeyDto) { return c.patch<ApiKey>(`/api-keys/${id}`, data); },\n remove(id: string) { return c.del<void>(`/api-keys/${id}`); },\n rotate(id: string) { return c.post<ApiKey & { key: string }>(`/api-keys/${id}/rotate`); },\n },\n\n // ─── Settings ────────────────────────────────────────────────────\n\n settings: {\n getAll() { return c.get<Record<string, unknown>>('/settings'); },\n getGroup(group: string) { return c.get<Record<string, unknown>>(`/settings/${group}`); },\n set(group: string, key: string, data: SetSettingDto) { return c.put<void>(`/settings/${group}/${key}`, data); },\n bulkUpdate(data: BulkUpdateSettingsDto) { return c.put<void>('/settings', data); },\n remove(group: string, key: string) { return c.del<void>(`/settings/${group}/${key}`); },\n },\n\n // ─── Billing ─────────────────────────────────────────────────────\n\n billing: {\n currentPlan() { return c.get<unknown>('/billing/plan'); },\n plans() { return c.get<unknown[]>('/billing/plans'); },\n subscribe(data: SubscribeBillingPlanDto) { return c.post<unknown>('/billing/subscribe', data); },\n cancel() { return c.post<void>('/billing/cancel'); },\n invoices(params?: PaginatedQuery) { return c.paginated<unknown>('/billing/invoices', params); },\n invoice(id: string) { return c.get<unknown>(`/billing/invoices/${id}`); },\n usage() { return c.get<unknown>('/billing/usage'); },\n },\n\n // ─── Usage ───────────────────────────────────────────────────────\n\n usage: {\n current() { return c.get<unknown>('/usage'); },\n history(params?: PaginatedQuery) { return c.paginated<unknown>('/usage/history', params); },\n breakdown(params?: PaginatedQuery) { return c.paginated<unknown>('/usage/breakdown', params); },\n },\n\n // ─── Contact Messages ────────────────────────────────────────────\n\n contactMessages: {\n list(params?: PaginatedQuery) { return c.paginated<ContactMessage>('/contact-messages', params); },\n get(id: string) { return c.get<ContactMessage>(`/contact-messages/${id}`); },\n markRead(id: string) { return c.patch<void>(`/contact-messages/${id}/read`); },\n markUnread(id: string) { return c.patch<void>(`/contact-messages/${id}/unread`); },\n remove(id: string) { return c.del<void>(`/contact-messages/${id}`); },\n },\n\n // ─── Notifications ───────────────────────────────────────────────\n\n notifications: {\n list(params?: PaginatedQuery) { return c.paginated<Notification>('/notifications', params); },\n send(data: Record<string, unknown>) { return c.post<unknown>('/notifications/send', data); },\n sendBulk(data: Record<string, unknown>) { return c.post<unknown>('/notifications/send-bulk', data); },\n inApp(params?: PaginatedQuery) { return c.paginated<Notification>('/notifications/in-app', params); },\n unreadCount() { return c.get<{ count: number }>('/notifications/unread-count'); },\n get(id: string) { return c.get<Notification>(`/notifications/${id}`); },\n resend(id: string) { return c.post<void>(`/notifications/${id}/resend`); },\n markRead(id: string) { return c.patch<void>(`/notifications/${id}/read`); },\n markAllRead() { return c.post<void>('/notifications/read-all'); },\n },\n\n // ─── Templates ───────────────────────────────────────────────────\n\n templates: {\n list(params?: PaginatedQuery) { return c.paginated<unknown>('/templates', params); },\n get(id: string) { return c.get<unknown>(`/templates/${id}`); },\n create(data: Record<string, unknown>) { return c.post<unknown>('/templates', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/templates/${id}`, data); },\n remove(id: string) { return c.del<void>(`/templates/${id}`); },\n preview(id: string, data: PreviewTemplateDto) { return c.post<unknown>(`/templates/${id}/preview`, data); },\n },\n\n // ─── Segments ────────────────────────────────────────────────────\n\n segments: {\n list(params?: PaginatedQuery) { return c.paginated<unknown>('/segments', params); },\n get(id: string) { return c.get<unknown>(`/segments/${id}`); },\n create(data: Record<string, unknown>) { return c.post<unknown>('/segments', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/segments/${id}`, data); },\n remove(id: string) { return c.del<void>(`/segments/${id}`); },\n preview(id: string) { return c.post<unknown>(`/segments/${id}/preview`); },\n members(id: string, params?: PaginatedQuery) { return c.paginated<unknown>(`/segments/${id}/members`, params); },\n addMembers(id: string, data: AddSegmentMembersDto) { return c.post<void>(`/segments/${id}/members`, data); },\n removeMember(segmentId: string, userId: string) { return c.del<void>(`/segments/${segmentId}/members/${userId}`); },\n },\n\n // ─── Campaigns ───────────────────────────────────────────────────\n\n campaigns: {\n list(params?: StatusQuery) { return c.paginated<unknown>('/campaigns', params); },\n get(id: string) { return c.get<unknown>(`/campaigns/${id}`); },\n create(data: Record<string, unknown>) { return c.post<unknown>('/campaigns', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/campaigns/${id}`, data); },\n remove(id: string) { return c.del<void>(`/campaigns/${id}`); },\n launch(id: string) { return c.post<void>(`/campaigns/${id}/launch`); },\n schedule(id: string, data: ScheduleCampaignDto) { return c.post<void>(`/campaigns/${id}/schedule`, data); },\n pause(id: string) { return c.post<void>(`/campaigns/${id}/pause`); },\n resume(id: string) { return c.post<void>(`/campaigns/${id}/resume`); },\n cancel(id: string) { return c.post<void>(`/campaigns/${id}/cancel`); },\n logs(id: string, params?: PaginatedQuery) { return c.paginated<unknown>(`/campaigns/${id}/logs`, params); },\n analytics(id: string) { return c.get<unknown>(`/campaigns/${id}/analytics`); },\n },\n\n // ─── Webhooks ────────────────────────────────────────────────────\n\n webhooks: {\n list() { return c.get<unknown[]>('/webhooks'); },\n get(id: string) { return c.get<unknown>(`/webhooks/${id}`); },\n create(data: Record<string, unknown>) { return c.post<unknown>('/webhooks', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/webhooks/${id}`, data); },\n remove(id: string) { return c.del<void>(`/webhooks/${id}`); },\n test(id: string) { return c.post<unknown>(`/webhooks/${id}/test`); },\n logs(id: string, params?: PaginatedQuery) { return c.paginated<unknown>(`/webhooks/${id}/logs`, params); },\n retryLog(webhookId: string, logId: string) { return c.post<void>(`/webhooks/${webhookId}/retry/${logId}`); },\n },\n\n // ─── Loyalty (Admin) ─────────────────────────────────────────────\n\n loyalty: {\n accounts(params?: PaginatedQuery) { return c.paginated<LoyaltyAccount>('/loyalty/accounts', params); },\n getAccount(id: string) { return c.get<LoyaltyAccount>(`/loyalty/accounts/${id}`); },\n adjustPoints(id: string, data: AdjustLoyaltyPointsDto) { return c.post<void>(`/loyalty/accounts/${id}/adjust`, data); },\n rewards() { return c.get<LoyaltyReward[]>('/loyalty/rewards'); },\n getReward(id: string) { return c.get<LoyaltyReward>(`/loyalty/rewards/${id}`); },\n createReward(data: Record<string, unknown>) { return c.post<LoyaltyReward>('/loyalty/rewards', data); },\n updateReward(id: string, data: Record<string, unknown>) { return c.patch<LoyaltyReward>(`/loyalty/rewards/${id}`, data); },\n removeReward(id: string) { return c.del<void>(`/loyalty/rewards/${id}`); },\n },\n\n // ─── Coupons (Admin) ─────────────────────────────────────────────\n\n coupons: {\n list(params?: StatusQuery) { return c.paginated<unknown>('/coupons', params); },\n get(id: string) { return c.get<unknown>(`/coupons/${id}`); },\n create(data: Record<string, unknown>) { return c.post<unknown>('/coupons', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/coupons/${id}`, data); },\n remove(id: string) { return c.del<void>(`/coupons/${id}`); },\n },\n\n // ─── Promotions (Admin) ──────────────────────────────────────────\n\n promotions: {\n list(params?: PaginatedQuery) { return c.paginated<Promotion>('/promotions', params); },\n get(id: string) { return c.get<Promotion>(`/promotions/${id}`); },\n create(data: Record<string, unknown>) { return c.post<Promotion>('/promotions', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<Promotion>(`/promotions/${id}`, data); },\n remove(id: string) { return c.del<void>(`/promotions/${id}`); },\n },\n\n // ─── Reviews (Admin) ─────────────────────────────────────────────\n\n reviews: {\n list(params?: StatusQuery) { return c.paginated<Review>('/reviews', params); },\n updateStatus(id: string, data: UpdateReviewStatusDto) { return c.patch<Review>(`/reviews/${id}/status`, data); },\n },\n\n // ─── Gift Cards (Admin) ──────────────────────────────────────────\n\n giftCards: {\n list(params?: PaginatedQuery) { return c.paginated<GiftCard>('/gift-cards', params); },\n get(id: string) { return c.get<GiftCard>(`/gift-cards/${id}`); },\n create(data: Record<string, unknown>) { return c.post<GiftCard>('/gift-cards', data); },\n },\n\n // ─── Reservations (Admin) ────────────────────────────────────────\n\n reservations: {\n list(params?: StatusQuery) { return c.paginated<Reservation>('/reservations', params); },\n updateStatus(id: string, data: UpdateReservationStatusDto) { return c.patch<Reservation>(`/reservations/${id}/status`, data); },\n resources() { return c.get<unknown[]>('/reservations/resources'); },\n createResource(data: Record<string, unknown>) { return c.post<unknown>('/reservations/resources', data); },\n updateResource(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/reservations/resources/${id}`, data); },\n removeResource(id: string) { return c.del<void>(`/reservations/resources/${id}`); },\n },\n\n // ─── Support (Admin) ─────────────────────────────────────────────\n\n support: {\n list(params?: StatusQuery) { return c.paginated<SupportTicket>('/support', params); },\n get(id: string) { return c.get<SupportTicket>(`/support/${id}`); },\n update(id: string, data: UpdateSupportTicketDto) { return c.patch<SupportTicket>(`/support/${id}`, data); },\n },\n\n // ─── Content (Admin) ─────────────────────────────────────────────\n\n content: {\n list(params?: StatusQuery) { return c.paginated<ContentPost>('/content', params); },\n get(id: string) { return c.get<ContentPost>(`/content/${id}`); },\n create(data: Record<string, unknown>) { return c.post<ContentPost>('/content', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<ContentPost>(`/content/${id}`, data); },\n remove(id: string) { return c.del<void>(`/content/${id}`); },\n },\n\n // ─── Payments (Admin) ────────────────────────────────────────────\n\n payments: {\n list(params?: PaginatedQuery) { return c.paginated<unknown>('/payments', params); },\n get(id: string) { return c.get<unknown>(`/payments/${id}`); },\n createOrder(data: Record<string, unknown>) { return c.post<unknown>('/payments/orders', data); },\n verifyOrder(orderId: string, data: Record<string, unknown>) { return c.post<unknown>(`/payments/orders/${orderId}/verify`, data); },\n listOrders(params?: PaginatedQuery) { return c.paginated<unknown>('/payments/orders', params); },\n getOrder(id: string) { return c.get<unknown>(`/payments/orders/${id}`); },\n createRefund(paymentId: string, data: Record<string, unknown>) { return c.post<unknown>(`/payments/${paymentId}/refunds`, data); },\n listRefunds(paymentId: string) { return c.get<unknown[]>(`/payments/${paymentId}/refunds`); },\n createSubscription(data: Record<string, unknown>) { return c.post<unknown>('/payments/subscriptions', data); },\n listSubscriptions(params?: PaginatedQuery) { return c.paginated<unknown>('/payments/subscriptions', params); },\n getSubscription(id: string) { return c.get<unknown>(`/payments/subscriptions/${id}`); },\n pauseSubscription(id: string) { return c.post<void>(`/payments/subscriptions/${id}/pause`); },\n resumeSubscription(id: string) { return c.post<void>(`/payments/subscriptions/${id}/resume`); },\n cancelSubscription(id: string) { return c.post<void>(`/payments/subscriptions/${id}/cancel`); },\n createLink(data: Record<string, unknown>) { return c.post<unknown>('/payments/links', data); },\n listLinks(params?: PaginatedQuery) { return c.paginated<unknown>('/payments/links', params); },\n getLink(id: string) { return c.get<unknown>(`/payments/links/${id}`); },\n deactivateLink(id: string) { return c.post<void>(`/payments/links/${id}/deactivate`); },\n removeLink(id: string) { return c.del<void>(`/payments/links/${id}`); },\n createProduct(data: Record<string, unknown>) { return c.post<unknown>('/payments/products', data); },\n listProducts(params?: PaginatedQuery) { return c.paginated<unknown>('/payments/products', params); },\n getProduct(id: string) { return c.get<unknown>(`/payments/products/${id}`); },\n updateProduct(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/payments/products/${id}`, data); },\n removeProduct(id: string) { return c.del<void>(`/payments/products/${id}`); },\n },\n\n // ─── Property (Admin) ────────────────────────────────────────────\n\n property: {\n getTypes() { return c.get<unknown[]>('/property/types'); },\n getType(id: string) { return c.get<unknown>(`/property/types/${id}`); },\n createType(data: Record<string, unknown>) { return c.post<unknown>('/property/types', data); },\n updateType(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/property/types/${id}`, data); },\n removeType(id: string) { return c.del<void>(`/property/types/${id}`); },\n setAmenities(typeId: string, data: SetPropertyTypeAmenitiesDto) { return c.put<void>(`/property/types/${typeId}/amenities`, data); },\n getUnits() { return c.get<unknown[]>('/property/units'); },\n createUnit(data: Record<string, unknown>) { return c.post<unknown>('/property/units', data); },\n updateUnit(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/property/units/${id}`, data); },\n updateHousekeeping(id: string, data: UpdateHousekeepingDto) { return c.patch<unknown>(`/property/units/${id}/housekeeping`, data); },\n getAmenities() { return c.get<unknown[]>('/property/amenities'); },\n createAmenity(data: CreatePropertyAmenityDto) { return c.post<unknown>('/property/amenities', data); },\n listBookings(params?: StatusQuery) { return c.paginated<unknown>('/property/bookings', params); },\n getBooking(id: string) { return c.get<unknown>(`/property/bookings/${id}`); },\n updateBooking(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/property/bookings/${id}`, data); },\n checkIn(id: string) { return c.post<void>(`/property/bookings/${id}/check-in`); },\n checkOut(id: string) { return c.post<void>(`/property/bookings/${id}/check-out`); },\n cancelBooking(id: string, data?: AdminCancelBookingDto) { return c.post<unknown>(`/property/bookings/${id}/cancel`, data); },\n assignUnits(id: string, data: AssignPropertyUnitsDto) { return c.post<void>(`/property/bookings/${id}/assign-units`, data); },\n availability(params: Record<string, unknown>) { return c.get<unknown[]>(`/property/inventory/availability${toQsInline(params)}`); },\n calendar(params: Record<string, unknown>) { return c.get<unknown[]>(`/property/inventory/calendar${toQsInline(params)}`); },\n blockDates(data: Record<string, unknown>) { return c.post<void>('/property/inventory/block', data); },\n createHold(data: Record<string, unknown>) { return c.post<unknown>('/property/inventory/hold', data); },\n listPricingRules() { return c.get<unknown[]>('/property/pricing'); },\n createPricingRule(data: Record<string, unknown>) { return c.post<unknown>('/property/pricing', data); },\n updatePricingRule(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/property/pricing/${id}`, data); },\n removePricingRule(id: string) { return c.del<void>(`/property/pricing/${id}`); },\n resolvePrice(data: Record<string, unknown>) { return c.post<unknown>('/property/pricing/resolve', data); },\n },\n\n // ─── POS ─────────────────────────────────────────────────────────\n\n pos: {\n sync() { return c.post<void>('/pos/sync'); },\n logs(params?: PaginatedQuery) { return c.paginated<unknown>('/pos/logs', params); },\n },\n\n // ─── Upload ──────────────────────────────────────────────────────\n\n upload(file: File | Blob, folder?: string) {\n const formData = new FormData();\n formData.append('file', file);\n if (folder) formData.append('folder', folder);\n return c.upload<UploadResult>('/upload', formData);\n },\n\n // ─── Student Passes (Admin) ──────────────────────────────────────\n\n studentPasses: {\n list(params?: ListStudentPassesQuery) { return c.paginated<StudentPassStatus>('/student-passes', params); },\n get(id: string) { return c.get<StudentPassStatus>(`/student-passes/${id}`); },\n review(id: string, data: ReviewStudentPassDto) { return c.patch<StudentPassStatus>(`/student-passes/${id}`, data); },\n bulkReview(data: BulkReviewStudentPassesDto) { return c.patch<void>('/student-passes', data); },\n stats() { return c.get<Record<string, unknown>>('/student-passes/stats'); },\n },\n\n // ─── Student Discounts (Admin) ───────────────────────────────────\n\n studentDiscounts: {\n list(params?: PaginatedQuery) { return c.paginated<StudentDiscount>('/student-discounts', params); },\n get(id: string) { return c.get<StudentDiscount>(`/student-discounts/${id}`); },\n create(data: CreateStudentDiscountDto) { return c.post<StudentDiscount>('/student-discounts', data); },\n update(id: string, data: UpdateStudentDiscountDto) { return c.patch<StudentDiscount>(`/student-discounts/${id}`, data); },\n remove(id: string) { return c.del<void>(`/student-discounts/${id}`); },\n },\n\n // ─── Institutions (Admin) ────────────────────────────────────────\n\n institutions: {\n list(params?: PaginatedQuery) { return c.paginated<Institution>('/institutions', params); },\n get(id: string) { return c.get<Institution>(`/institutions/${id}`); },\n create(data: CreateInstitutionDto) { return c.post<Institution>('/institutions', data); },\n update(id: string, data: UpdateInstitutionDto) { return c.patch<Institution>(`/institutions/${id}`, data); },\n remove(id: string) { return c.del<void>(`/institutions/${id}`); },\n },\n\n // ─── Inventory (Admin) ───────────────────────────────────────────\n\n inventory: {\n list(params?: PaginatedQuery) { return c.paginated<Ingredient>('/inventory', params); },\n get(id: string) { return c.get<Ingredient>(`/inventory/${id}`); },\n create(data: CreateIngredientDto) { return c.post<Ingredient>('/inventory', data); },\n update(id: string, data: UpdateIngredientDto) { return c.patch<Ingredient>(`/inventory/${id}`, data); },\n remove(id: string) { return c.del<void>(`/inventory/${id}`); },\n alerts: {\n list() { return c.get<StockAlert[]>('/inventory/alerts'); },\n resolve(id: string) { return c.patch<StockAlert>(`/inventory/alerts/${id}`, { isResolved: true }); },\n },\n waste: {\n list() { return c.get<WasteLog[]>('/inventory/waste'); },\n create(data: CreateWasteLogDto) { return c.post<WasteLog>('/inventory/waste', data); },\n },\n },\n\n // ─── Suppliers (Admin) ────────────────────────────────────────────\n\n suppliers: {\n list(params?: PaginatedQuery) { return c.paginated<Supplier>('/suppliers', params); },\n get(id: string) { return c.get<Supplier>(`/suppliers/${id}`); },\n create(data: CreateSupplierDto) { return c.post<Supplier>('/suppliers', data); },\n update(id: string, data: UpdateSupplierDto) { return c.patch<Supplier>(`/suppliers/${id}`, data); },\n remove(id: string) { return c.del<void>(`/suppliers/${id}`); },\n },\n\n // ─── Purchase Orders (Admin) ──────────────────────────────────────\n\n purchaseOrders: {\n list(params?: QueryPurchaseOrdersParams) { return c.paginated<PurchaseOrder>('/purchase-orders', params); },\n get(id: string) { return c.get<PurchaseOrder>(`/purchase-orders/${id}`); },\n create(data: CreatePurchaseOrderDto) { return c.post<PurchaseOrder>('/purchase-orders', data); },\n update(id: string, data: UpdatePurchaseOrderDto) { return c.patch<PurchaseOrder>(`/purchase-orders/${id}`, data); },\n remove(id: string) { return c.del<void>(`/purchase-orders/${id}`); },\n },\n\n // ─── Meal Subscriptions (Admin) ───────────────────────────────────\n\n mealSubscriptions: {\n list(params?: QueryMealSubscriptionsParams) { return c.paginated<AdminMealSubscription>('/subscriptions', params); },\n get(id: string) { return c.get<AdminMealSubscription>(`/subscriptions/${id}`); },\n },\n\n // ─── Meal Plans (Admin) ──────────────────────────────────────────\n\n mealPlans: {\n list(params?: PaginatedQuery) { return c.paginated<MealPlan>('/meal-plans', params); },\n get(id: string) { return c.get<MealPlan>(`/meal-plans/${id}`); },\n create(data: CreateMealPlanDto) { return c.post<MealPlan>('/meal-plans', data); },\n update(id: string, data: UpdateMealPlanDto) { return c.patch<MealPlan>(`/meal-plans/${id}`, data); },\n remove(id: string) { return c.del<void>(`/meal-plans/${id}`); },\n },\n\n // ─── Help Articles (Admin) ───────────────────────────────────────\n\n helpArticles: {\n list(params?: PaginatedQuery) { return c.paginated<HelpArticle>('/help', params); },\n get(id: string) { return c.get<HelpArticle>(`/help/${id}`); },\n create(data: CreateHelpArticleDto) { return c.post<HelpArticle>('/help', data); },\n update(id: string, data: UpdateHelpArticleDto) { return c.patch<HelpArticle>(`/help/${id}`, data); },\n remove(id: string) { return c.del<void>(`/help/${id}`); },\n },\n };\n}\n\nfunction toQsInline(params: Record<string, unknown>): string {\n const entries = Object.entries(params)\n .filter(([, v]) => v !== undefined && v !== null)\n .map(([k, v]) => [k, String(v)]);\n return entries.length ? '?' + new URLSearchParams(entries).toString() : '';\n}\n","import type { TZClient, ScopedClient } from '../client';\nimport type { SuperAdminStats, SuperAdmin, AdminOrganization, PlatformPlan, AuditLog } from '../types';\nimport type { SuperAdminLoginDto, ListSuperAdminsQuery, CreateSuperAdminDto, ListOrganizationsQuery } from '../dto';\nimport type { PaginatedQuery } from '../dto';\n\nexport function createSuperAdmin(root: TZClient, c: ScopedClient) {\n return {\n // ─── Auth ────────────────────────────────────────────────────────\n\n auth: {\n login(data: SuperAdminLoginDto) {\n return root.rawRequest<{ accessToken: string }>('POST', '/admin/login', { body: data, scope: 'public', sendOrgKey: false })\n .then((r) => { root.saveSuperAdminToken(r.data.accessToken); return r.data; });\n },\n getToken: () => root.getSuperAdminToken(),\n clearToken: () => root.clearSuperAdminToken(),\n },\n\n // ─── Dashboard ───────────────────────────────────────────────────\n\n stats() { return c.get<SuperAdminStats>('/admin/stats'); },\n\n // ─── Super Admins ────────────────────────────────────────────────\n\n admins: {\n list(params?: ListSuperAdminsQuery) { return c.paginated<SuperAdmin>('/admin/super-admins', params); },\n create(data: CreateSuperAdminDto) { return c.post<SuperAdmin>('/admin/super-admins', data); },\n },\n\n // ─── Organizations ───────────────────────────────────────────────\n\n orgs: {\n list(params?: ListOrganizationsQuery) { return c.paginated<AdminOrganization>('/admin/orgs', params); },\n get(id: string) { return c.get<AdminOrganization>(`/admin/orgs/${id}`); },\n getBySlug(slug: string) { return c.get<AdminOrganization>(`/admin/orgs/slug/${slug}`); },\n create(data: Record<string, unknown>) { return c.post<AdminOrganization>('/admin/orgs', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<AdminOrganization>(`/admin/orgs/${id}`, data); },\n remove(id: string) { return c.del<void>(`/admin/orgs/${id}`); },\n suspend(id: string) { return c.post<void>(`/admin/orgs/${id}/suspend`); },\n reinstate(id: string) { return c.post<void>(`/admin/orgs/${id}/reinstate`); },\n regenerateKey(id: string) { return c.post<{ orgKey: string }>(`/admin/orgs/${id}/regenerate-key`); },\n impersonate(id: string) { return c.post<{ accessToken: string; refreshToken: string }>(`/admin/orgs/${id}/impersonate`); },\n },\n\n // ─── Org Config ──────────────────────────────────────────────────\n\n orgConfig: {\n get(orgId: string) { return c.get<Record<string, unknown>>(`/admin/orgs/${orgId}/config`); },\n update(orgId: string, data: Record<string, unknown>) { return c.patch<void>(`/admin/orgs/${orgId}/config`, data); },\n test(orgId: string, group: string) { return c.post<unknown>(`/admin/orgs/${orgId}/config/test/${group}`); },\n reset(orgId: string, group: string) { return c.post<void>(`/admin/orgs/${orgId}/config/reset/${group}`); },\n },\n\n // ─── Platform Config ─────────────────────────────────────────────\n\n platformConfig: {\n get() { return c.get<Record<string, unknown>>('/admin/platform-config'); },\n update(data: Record<string, unknown>) { return c.patch<void>('/admin/platform-config', data); },\n test(group: string) { return c.post<unknown>(`/admin/platform-config/test/${group}`); },\n },\n\n // ─── Plans ───────────────────────────────────────────────────────\n\n plans: {\n create(data: Record<string, unknown>) { return c.post<PlatformPlan>('/admin/plans', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<PlatformPlan>(`/admin/plans/${id}`, data); },\n },\n\n // ─── Invoices ────────────────────────────────────────────────────\n\n invoices: {\n list(params?: PaginatedQuery) { return c.paginated<unknown>('/admin/invoices', params); },\n markPaid(id: string) { return c.patch<void>(`/admin/invoices/${id}`); },\n },\n\n // ─── Usage ───────────────────────────────────────────────────────\n\n usage() { return c.get<unknown>('/admin/usage'); },\n\n // ─── Audit ───────────────────────────────────────────────────────\n\n audit(params?: PaginatedQuery) { return c.paginated<AuditLog>('/admin/audit', params); },\n\n // ─── Movies (Super Admin) ────────────────────────────────────────\n\n movies: {\n create(data: Record<string, unknown>) { return c.post<unknown>('/admin/movies', data); },\n listStreamMappings() { return c.get<unknown[]>('/admin/movies/stream-mappings'); },\n upsertStreamMapping(data: Record<string, unknown>) { return c.post<unknown>('/admin/movies/stream-mappings', data); },\n removeStreamMapping(tmdbId: number) { return c.del<void>(`/admin/movies/stream-mappings/${tmdbId}`); },\n },\n };\n}\n","/**\n * @techzunction/sdk\n *\n * Centralized API client for all TechZunction frontend projects.\n * One-time init. Zero prefix repetition. Rich query objects on every call.\n *\n * ─── Quick Start ──────────────────────────────────────────────────────\n *\n * import { TZ } from '@techzunction/sdk';\n *\n * // Auto-reads TZ_ORG_ID, TZ_ORG_KEY from env. Auto-detects prod vs dev URL.\n * TZ.init();\n *\n * // OR explicit:\n * TZ.init({ orgSlug: 'babyburger', orgKey: 'tz_abc123', env: 'dev' });\n *\n * // Pre-login (PUBLIC — no token needed)\n * await TZ.storefront.auth.sendOtp({ identifier: '+91...' });\n * const config = await TZ.storefront.config.get();\n *\n * // Post-login (ENDUSER — token auto-attached after login/verify)\n * const { user } = await TZ.storefront.auth.verifyOtp({ identifier: '+91...', otp: '1234' });\n * const cart = await TZ.storefront.cart.get();\n *\n * // Rich query object\n * const q = TZ.storefront.catalog.getItems({ page: 1, limit: 20 });\n * const items = await q; // await directly\n * q.cancel(); // abort in-flight\n * const q2 = q.refetch(); // re-execute\n * const nextPage = q.next(); // next page\n * const raw = await q.raw(); // raw JSON before unwrap\n * const status = await q.status(); // HTTP status code\n *\n * // Admin (staff JWT)\n * await TZ.admin.auth.login({ email: '...', password: '...' });\n * const users = await TZ.admin.users.list({ page: 1 });\n *\n * // Super Admin\n * await TZ.superAdmin.auth.login({ email: '...', password: '...' });\n * const stats = await TZ.superAdmin.stats();\n */\n\nimport { TZClient, type ScopedClient } from './client';\nimport { createStorefront } from './storefront';\nimport { createAdmin } from './admin';\nimport { createSuperAdmin } from './super-admin';\nimport type { TZConfig, TokenStore } from './types';\n\n// ─── Environment Detection ──────────────────────────────────────────────────\n\nconst PROD_URL = 'https://api.techzunction.com';\nconst DEV_URL = 'https://dev-api.techzunction.com';\n\ntype TZEnv = 'production' | 'dev' | 'custom';\n\nfunction resolveBaseUrl(env?: TZEnv, customUrl?: string): string {\n if (customUrl) return customUrl;\n if (env === 'production') return PROD_URL;\n return DEV_URL;\n}\n\nfunction readEnv(key: string): string | undefined {\n // Works in Node, Next.js, Vite, Expo\n if (typeof process !== 'undefined' && process.env) {\n // Next.js: NEXT_PUBLIC_*, Node: any env\n return (process.env as Record<string, string | undefined>)[key]\n ?? (process.env as Record<string, string | undefined>)[`NEXT_PUBLIC_${key}`]\n ?? (process.env as Record<string, string | undefined>)[`VITE_${key}`]\n ?? (process.env as Record<string, string | undefined>)[`EXPO_PUBLIC_${key}`];\n }\n // Vite client-side\n if (typeof import.meta !== 'undefined' && (import.meta as unknown as { env?: Record<string, string> }).env) {\n const env = (import.meta as unknown as { env: Record<string, string> }).env;\n return env[key] ?? env[`VITE_${key}`];\n }\n return undefined;\n}\n\nfunction detectEnv(): TZEnv {\n const nodeEnv = readEnv('NODE_ENV');\n if (nodeEnv === 'production') return 'production';\n return 'dev';\n}\n\n// ─── Init Options ───────────────────────────────────────────────────────────\n\nexport interface TZInitOptions {\n /** Organization slug. Falls back to TZ_ORG_ID env var. */\n orgSlug?: string;\n /** Storefront publishable key. Falls back to TZ_ORG_KEY env var. */\n orgKey?: string;\n /** Environment: 'production' | 'dev'. Auto-detected from NODE_ENV if omitted. */\n env?: TZEnv;\n /** Custom backend URL (overrides env-based URL). Falls back to TZ_API_URL env var. */\n baseUrl?: string;\n /** Storage key prefix (default: \"tz\"). Useful to avoid collisions between projects. */\n keyPrefix?: string;\n /** Custom token store (defaults to localStorage). */\n tokenStore?: TokenStore;\n /** Called when tokens expire and refresh fails — use for redirect to login. */\n onAuthExpired?: () => void;\n}\n\n// ─── Singleton TZ ───────────────────────────────────────────────────────────\n\nlet _client: TZClient | null = null;\nlet _sf: ScopedClient | null = null;\nlet _admin: ScopedClient | null = null;\nlet _sa: ScopedClient | null = null;\nlet _storefront: ReturnType<typeof createStorefront> | null = null;\nlet _adminNs: ReturnType<typeof createAdmin> | null = null;\nlet _superAdmin: ReturnType<typeof createSuperAdmin> | null = null;\n\nfunction ensureInit() {\n if (!_client) throw new Error('TZ.init() must be called before using the SDK.');\n}\n\n/**\n * TechZunction SDK — Global singleton.\n *\n * Call `TZ.init()` once at app startup. Then use `TZ.storefront.*`, `TZ.admin.*`, `TZ.superAdmin.*`.\n */\nexport const TZ = {\n /**\n * Initialize the SDK. Call once at app startup.\n *\n * Auto-reads env vars:\n * TZ_ORG_ID / NEXT_PUBLIC_TZ_ORG_ID → orgSlug\n * TZ_ORG_KEY / NEXT_PUBLIC_TZ_ORG_KEY → orgKey (storefront publishable key)\n * TZ_API_URL / NEXT_PUBLIC_TZ_API_URL → custom backend URL\n * NODE_ENV → 'production' uses api.techzunction.com, else dev-api\n */\n init(options: TZInitOptions = {}) {\n const orgSlug = options.orgSlug ?? readEnv('TZ_ORG_ID') ?? '';\n const orgKey = options.orgKey ?? readEnv('TZ_ORG_KEY');\n const env = options.env ?? detectEnv();\n const baseUrl = options.baseUrl ?? readEnv('TZ_API_URL') ?? resolveBaseUrl(env);\n\n if (!orgSlug) {\n console.warn('[TZ SDK] No orgSlug provided and TZ_ORG_ID env var not found. Set it in .env or pass to TZ.init().');\n }\n\n const config: TZConfig = {\n baseUrl,\n orgSlug,\n orgKey,\n keyPrefix: options.keyPrefix ?? 'tz',\n tokenStore: options.tokenStore,\n onAuthExpired: options.onAuthExpired,\n };\n\n _client = new TZClient(config);\n\n // Storefront: prefix=/storefront, default scope=public, sends X-Org-Key\n _sf = _client.scoped('/storefront', 'public', true);\n // Admin: no prefix (routes are /users, /roles, etc.), default scope=staff, no X-Org-Key\n _admin = _client.scoped('', 'staff', false);\n // Super Admin: no prefix (routes are /admin/*), default scope=superadmin, no X-Org-Key\n _sa = _client.scoped('', 'superadmin', false);\n\n // Reset cached namespaces\n _storefront = null;\n _adminNs = null;\n _superAdmin = null;\n },\n\n /** The raw TZClient instance (for advanced use) */\n get client(): TZClient {\n ensureInit();\n return _client!;\n },\n\n /** Storefront namespace — all end-user-facing APIs */\n get storefront() {\n ensureInit();\n if (!_storefront) _storefront = createStorefront(_sf!);\n return _storefront;\n },\n\n /** Admin namespace — all staff/org-admin APIs */\n get admin() {\n ensureInit();\n if (!_adminNs) _adminNs = createAdmin(_client!, _admin!);\n return _adminNs;\n },\n\n /** Super Admin namespace — platform-wide management APIs */\n get superAdmin() {\n ensureInit();\n if (!_superAdmin) _superAdmin = createSuperAdmin(_client!, _sa!);\n return _superAdmin;\n },\n\n /** GET /health — Basic health check (PUBLIC) */\n health() {\n ensureInit();\n return _admin!.get<{ status: string }>('/health', 'public');\n },\n\n /** GET /health/detailed — Detailed health check with dependency status (USER) */\n healthDetailed() {\n ensureInit();\n return _admin!.get<{ status: string; database: string; redis: string }>('/health/detailed');\n },\n};\n\n// ─── Also export createTZ for non-singleton usage ────────────────────────────\n\nexport function createTZ(options: TZInitOptions = {}) {\n const orgSlug = options.orgSlug ?? readEnv('TZ_ORG_ID') ?? '';\n const orgKey = options.orgKey ?? readEnv('TZ_ORG_KEY');\n const env = options.env ?? detectEnv();\n const baseUrl = options.baseUrl ?? readEnv('TZ_API_URL') ?? resolveBaseUrl(env);\n\n const client = new TZClient({\n baseUrl,\n orgSlug,\n orgKey,\n keyPrefix: options.keyPrefix ?? 'tz',\n tokenStore: options.tokenStore,\n onAuthExpired: options.onAuthExpired,\n });\n\n const sf = client.scoped('/storefront', 'public', true);\n const admin = client.scoped('', 'staff', false);\n const sa = client.scoped('', 'superadmin', false);\n\n return {\n client,\n storefront: createStorefront(sf),\n admin: createAdmin(client, admin),\n superAdmin: createSuperAdmin(client, sa),\n health: () => admin.get<{ status: string }>('/health', 'public'),\n healthDetailed: () => admin.get<{ status: string; database: string; redis: string }>('/health/detailed'),\n };\n}\n\n// ─── Re-exports ─────────────────────────────────────────────────────────────\n\nexport { TZQuery, TZPaginatedQuery } from './query';\nexport type { RawResponse } from './query';\nexport { TZClient, ScopedClient } from './client';\nexport type { AuthScope } from './client';\n\n// ─── DTO types (request shapes) ─────────────────────────────────────────────\nexport type * from './dto';\nexport type {\n TZConfig,\n TokenStore,\n ApiError,\n PaginationParams,\n PaginatedResponse,\n // Auth\n AuthTokens,\n EndUser,\n EndUserProfile,\n AuthResponse,\n StaffUser,\n StaffAuthResponse,\n // Catalog\n CatalogCategory,\n CatalogItem,\n CatalogItemVariant,\n CatalogOptionGroup,\n CatalogOption,\n // Cart\n Cart,\n CartLineItem,\n CartItemOption,\n // Orders\n Order,\n OrderItem,\n OrderType,\n PaymentMethod,\n OrderStatus,\n // Payments\n PaymentOrder,\n PaymentVerification,\n // Locations\n StoreLocation,\n LocationHours,\n // Delivery\n DeliveryCalculation,\n DeliveryTracking,\n // Loyalty\n LoyaltyAccount,\n LoyaltyTransaction,\n LoyaltyReward,\n LoyaltyRedemption,\n // Coupons\n CouponValidation,\n // Promotions\n Promotion,\n // Referrals\n ReferralInfo,\n ReferralValidation,\n // Reviews\n Review,\n // Gift Cards\n GiftCard,\n // Reservations\n ReservationSlot,\n Reservation,\n // Support\n SupportTicket,\n SupportReply,\n // Content\n ContentPost,\n // Addresses\n Address,\n // Notifications\n Notification,\n // Property\n PropertyType,\n PropertyBooking,\n PropertyAvailability,\n PropertyPriceResolution,\n // Movies\n Movie,\n MovieDetail,\n TmdbMovie,\n TmdbMovieDetail,\n // Wallet\n WalletPack,\n WalletBalance,\n WalletTransaction,\n // Watch Sessions (PPM)\n WatchSessionStatusType,\n WatchSessionResponse,\n WatchSessionStatus,\n WatchSessionSummary,\n // Upload\n UploadResult,\n // Contact\n ContactMessage,\n // Config\n StorefrontConfig,\n // Student\n StudentPassStatus,\n StudentDiscount,\n DiscountPreview,\n Institution,\n // Inventory & Supply Chain\n Ingredient,\n StockAlert,\n WasteLog,\n Supplier,\n PurchaseOrder,\n PurchaseOrderItem,\n AdminMealSubscription,\n // Meal Plans\n MealPlan,\n MealSubscription,\n // Help\n HelpArticle,\n // Admin\n AdminOrganization,\n Role,\n AuditLog,\n ApiKey,\n // Super Admin\n SuperAdminStats,\n SuperAdmin as SuperAdminUser,\n PlatformPlan,\n} from './types';\n"]}
1
+ {"version":3,"sources":["../src/query.ts","../src/client.ts","../src/storefront/auth.ts","../src/storefront/catalog.ts","../src/storefront/cart.ts","../src/storefront/orders.ts","../src/storefront/payments.ts","../src/storefront/delivery.ts","../src/storefront/locations.ts","../src/storefront/loyalty.ts","../src/storefront/coupons.ts","../src/storefront/promotions.ts","../src/storefront/referrals.ts","../src/storefront/reviews.ts","../src/storefront/gift-cards.ts","../src/storefront/reservations.ts","../src/storefront/support.ts","../src/storefront/content.ts","../src/storefront/notifications.ts","../src/storefront/addresses.ts","../src/storefront/upload.ts","../src/storefront/contact.ts","../src/storefront/config.ts","../src/storefront/property.ts","../src/storefront/movies.ts","../src/storefront/tmdb.ts","../src/storefront/wallet.ts","../src/storefront/student.ts","../src/storefront/meal-plans.ts","../src/storefront/help.ts","../src/storefront/rooms.ts","../src/storefront/earnings.ts","../src/storefront/connected-sources.ts","../src/storefront/index.ts","../src/admin/index.ts","../src/super-admin/index.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import type { PaginatedResponse } from './types';\n\n// ─── Raw Response (before envelope unwrap) ──────────────────────────────────\n\nexport interface RawResponse<T> {\n data: T;\n raw: unknown;\n status: number;\n headers: Headers;\n}\n\n// ─── TZQuery — Rich response wrapper for every API call ─────────────────────\n//\n// Usage:\n// const q = tz.storefront.catalog.getItems();\n// const items = await q; // await directly → T\n// const items = await q.data(); // explicit .data()\n// const raw = await q.raw(); // raw JSON before envelope unwrap\n// const code = await q.status(); // HTTP status code\n// q.cancel(); // abort in-flight request\n// const q2 = q.refetch(); // re-execute same request\n//\n\nexport class TZQuery<T> implements PromiseLike<T> {\n private controller: AbortController;\n private _promise: Promise<RawResponse<T>>;\n private _executor: (signal: AbortSignal) => Promise<RawResponse<T>>;\n\n constructor(executor: (signal: AbortSignal) => Promise<RawResponse<T>>) {\n this._executor = executor;\n this.controller = new AbortController();\n this._promise = executor(this.controller.signal);\n }\n\n /** Thenable — `await query` resolves directly to T */\n then<R1 = T, R2 = never>(\n onFulfilled?: ((value: T) => R1 | PromiseLike<R1>) | null,\n onRejected?: ((reason: unknown) => R2 | PromiseLike<R2>) | null,\n ): Promise<R1 | R2> {\n return this._promise.then((r) => r.data).then(onFulfilled, onRejected);\n }\n\n /** Catch errors */\n catch<R = never>(\n onRejected?: ((reason: unknown) => R | PromiseLike<R>) | null,\n ): Promise<T | R> {\n return this.then(undefined, onRejected);\n }\n\n /** Get the unwrapped data */\n async data(): Promise<T> {\n return (await this._promise).data;\n }\n\n /** Get the raw JSON (before envelope unwrap) */\n async raw(): Promise<unknown> {\n return (await this._promise).raw;\n }\n\n /** Get the HTTP status code */\n async status(): Promise<number> {\n return (await this._promise).status;\n }\n\n /** Get the response headers */\n async headers(): Promise<Headers> {\n return (await this._promise).headers;\n }\n\n /** Abort the in-flight request */\n cancel(): void {\n this.controller.abort();\n }\n\n /** Re-execute the same request (returns a new TZQuery) */\n refetch(): TZQuery<T> {\n return new TZQuery<T>(this._executor);\n }\n}\n\n// ─── TZPaginatedQuery — Adds .next() and .prev() for paginated endpoints ────\n//\n// Usage:\n// const q = tz.storefront.catalog.getItems({ page: 1, limit: 20 });\n// const page1 = await q; // PaginatedResponse<CatalogItem>\n// const page2Query = q.next(); // TZPaginatedQuery for page 2\n// const page2 = await page2Query;\n// const backToPage1 = page2Query.prev(); // back to page 1\n//\n\nexport interface PaginationMeta {\n page: number;\n limit: number;\n totalPages: number;\n total: number;\n}\n\nexport class TZPaginatedQuery<T> extends TZQuery<PaginatedResponse<T>> {\n private _page: number;\n private _limit: number;\n private _pageFactory: (page: number, limit: number) => TZPaginatedQuery<T>;\n\n constructor(\n executor: (signal: AbortSignal) => Promise<RawResponse<PaginatedResponse<T>>>,\n page: number,\n limit: number,\n pageFactory: (page: number, limit: number) => TZPaginatedQuery<T>,\n ) {\n super(executor);\n this._page = page;\n this._limit = limit;\n this._pageFactory = pageFactory;\n }\n\n /** Current page number */\n get page(): number {\n return this._page;\n }\n\n /** Current page size */\n get limit(): number {\n return this._limit;\n }\n\n /** Fetch the next page (returns a new TZPaginatedQuery) */\n next(): TZPaginatedQuery<T> {\n return this._pageFactory(this._page + 1, this._limit);\n }\n\n /** Fetch the previous page (returns a new TZPaginatedQuery, clamped to page 1) */\n prev(): TZPaginatedQuery<T> {\n return this._pageFactory(Math.max(1, this._page - 1), this._limit);\n }\n\n /** Jump to a specific page */\n goTo(page: number): TZPaginatedQuery<T> {\n return this._pageFactory(Math.max(1, page), this._limit);\n }\n\n /** Check if there's a next page (must await first) */\n async hasNext(): Promise<boolean> {\n const result = await this.data();\n return this._page < result.totalPages;\n }\n\n /** Check if there's a previous page */\n hasPrev(): boolean {\n return this._page > 1;\n }\n\n /** Re-execute the same page */\n override refetch(): TZPaginatedQuery<T> {\n return this._pageFactory(this._page, this._limit);\n }\n}\n","import type { TZConfig, TokenStore, ApiError, PaginatedResponse } from './types';\nimport { TZQuery, TZPaginatedQuery, type RawResponse } from './query';\n\n// ─── Default Token Store (localStorage) ─────────────────────────────────────\n\nconst noopStore: TokenStore = {\n get: () => null,\n set: () => {},\n remove: () => {},\n};\n\nfunction createLocalStorageStore(): TokenStore {\n if (typeof globalThis !== 'undefined' && 'localStorage' in globalThis) {\n return {\n get: (key) => localStorage.getItem(key),\n set: (key, value) => localStorage.setItem(key, value),\n remove: (key) => localStorage.removeItem(key),\n };\n }\n return noopStore;\n}\n\n// ─── Storage Keys ───────────────────────────────────────────────────────────\n\nfunction makeKeys(prefix: string) {\n return {\n access: `${prefix}-access-token`,\n refresh: `${prefix}-refresh-token`,\n staffAccess: `${prefix}-staff-access-token`,\n staffRefresh: `${prefix}-staff-refresh-token`,\n superAdminAccess: `${prefix}-sa-access-token`,\n } as const;\n}\n\n// ─── Auth Scopes ────────────────────────────────────────────────────────────\n\nexport type AuthScope = 'enduser' | 'staff' | 'superadmin' | 'public';\n\n// ─── Query Params Helper ────────────────────────────────────────────────────\n\nexport function toQs(params?: Record<string, unknown>): string {\n if (!params) return '';\n const entries = Object.entries(params)\n .filter(([, v]) => v !== undefined && v !== null && v !== '')\n .map(([k, v]) => [k, String(v)]);\n return entries.length ? '?' + new URLSearchParams(entries).toString() : '';\n}\n\n// ─── TZClient (core — manages tokens, refresh, raw fetch) ──────────────────\n\nexport class TZClient {\n readonly baseUrl: string;\n readonly orgSlug: string;\n readonly orgKey: string | undefined;\n private readonly store: TokenStore;\n private readonly keys: ReturnType<typeof makeKeys>;\n private readonly onAuthExpired?: () => void;\n\n private enduserRefreshPromise: Promise<string | null> | null = null;\n private staffRefreshPromise: Promise<string | null> | null = null;\n\n constructor(config: TZConfig) {\n this.baseUrl = config.baseUrl.replace(/\\/+$/, '');\n this.orgSlug = config.orgSlug;\n this.orgKey = config.orgKey;\n this.store = config.tokenStore ?? createLocalStorageStore();\n this.keys = makeKeys(config.keyPrefix ?? 'tz');\n this.onAuthExpired = config.onAuthExpired;\n }\n\n // ─── Token Accessors ───────────────────────────────────────────────────\n\n getEndUserToken(): string | null { return this.store.get(this.keys.access); }\n getEndUserRefreshToken(): string | null { return this.store.get(this.keys.refresh); }\n saveEndUserTokens(access: string, refresh: string): void {\n this.store.set(this.keys.access, access);\n this.store.set(this.keys.refresh, refresh);\n }\n clearEndUserTokens(): void {\n this.store.remove(this.keys.access);\n this.store.remove(this.keys.refresh);\n }\n\n getStaffToken(): string | null { return this.store.get(this.keys.staffAccess); }\n getStaffRefreshToken(): string | null { return this.store.get(this.keys.staffRefresh); }\n saveStaffTokens(access: string, refresh: string): void {\n this.store.set(this.keys.staffAccess, access);\n this.store.set(this.keys.staffRefresh, refresh);\n }\n clearStaffTokens(): void {\n this.store.remove(this.keys.staffAccess);\n this.store.remove(this.keys.staffRefresh);\n }\n\n getSuperAdminToken(): string | null { return this.store.get(this.keys.superAdminAccess); }\n saveSuperAdminToken(token: string): void { this.store.set(this.keys.superAdminAccess, token); }\n clearSuperAdminToken(): void { this.store.remove(this.keys.superAdminAccess); }\n\n isEndUserAuthenticated(): boolean { return !!this.getEndUserToken(); }\n isStaffAuthenticated(): boolean { return !!this.getStaffToken(); }\n\n // ─── Token Refresh (singleton to prevent stampede) ─────────────────────\n\n private async doRefreshEndUser(): Promise<string | null> {\n const rt = this.getEndUserRefreshToken();\n if (!rt) return null;\n try {\n const res = await fetch(`${this.baseUrl}/api/v1/storefront/auth/refresh`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Org-Slug': this.orgSlug,\n ...(this.orgKey ? { 'X-Org-Key': this.orgKey } : {}),\n },\n body: JSON.stringify({ refreshToken: rt }),\n });\n if (!res.ok) { this.clearEndUserTokens(); this.onAuthExpired?.(); return null; }\n const json = await res.json();\n const access = json.accessToken ?? json.data?.accessToken;\n const refresh = json.refreshToken ?? json.data?.refreshToken;\n if (access) { this.saveEndUserTokens(access, refresh || rt); return access; }\n this.clearEndUserTokens(); this.onAuthExpired?.(); return null;\n } catch { this.clearEndUserTokens(); this.onAuthExpired?.(); return null; }\n }\n\n private async doRefreshStaff(): Promise<string | null> {\n const rt = this.getStaffRefreshToken();\n if (!rt) return null;\n try {\n const res = await fetch(`${this.baseUrl}/api/v1/auth/refresh`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'X-Org-Slug': this.orgSlug },\n body: JSON.stringify({ refreshToken: rt }),\n });\n if (!res.ok) { this.clearStaffTokens(); return null; }\n const json = await res.json();\n const access = json.accessToken ?? json.data?.accessToken;\n const refresh = json.refreshToken ?? json.data?.refreshToken;\n if (access) { this.saveStaffTokens(access, refresh || rt); return access; }\n this.clearStaffTokens(); return null;\n } catch { this.clearStaffTokens(); return null; }\n }\n\n refreshEndUser(): Promise<string | null> {\n if (!this.enduserRefreshPromise) {\n this.enduserRefreshPromise = this.doRefreshEndUser().finally(() => { this.enduserRefreshPromise = null; });\n }\n return this.enduserRefreshPromise;\n }\n\n refreshStaff(): Promise<string | null> {\n if (!this.staffRefreshPromise) {\n this.staffRefreshPromise = this.doRefreshStaff().finally(() => { this.staffRefreshPromise = null; });\n }\n return this.staffRefreshPromise;\n }\n\n // ─── Core Raw Request ──────────────────────────────────────────────────\n\n async rawRequest<T>(\n method: string,\n fullPath: string,\n opts: { body?: unknown; scope: AuthScope; signal?: AbortSignal; sendOrgKey: boolean },\n ): Promise<RawResponse<T>> {\n const { body, scope, signal, sendOrgKey } = opts;\n\n try {\n const token = this.resolveToken(scope);\n\n const headers: Record<string, string> = {\n 'X-Org-Slug': this.orgSlug,\n ...(sendOrgKey && this.orgKey ? { 'X-Org-Key': this.orgKey } : {}),\n ...(body !== undefined && !(body instanceof FormData) ? { 'Content-Type': 'application/json' } : {}),\n ...(token ? { Authorization: `Bearer ${token}` } : {}),\n };\n\n const init: RequestInit = {\n method,\n headers,\n ...(body !== undefined ? { body: body instanceof FormData ? body : JSON.stringify(body) } : {}),\n ...(signal ? { signal } : {}),\n };\n\n let res = await fetch(`${this.baseUrl}/api/v1${fullPath}`, init);\n\n // Auto-refresh on 401 (skip auth endpoints)\n if (res.status === 401 && token && !fullPath.includes('/auth/')) {\n const newToken = await this.tryRefresh(scope);\n if (newToken) {\n (init.headers as Record<string, string>)['Authorization'] = `Bearer ${newToken}`;\n res = await fetch(`${this.baseUrl}/api/v1${fullPath}`, init);\n }\n }\n\n const json = await res.json().catch(() => ({}));\n\n if (!res.ok) {\n const msg =\n res.status === 403 ? 'You do not have permission to perform this action'\n : res.status === 429 ? 'Too many requests — please try again later'\n : json.message || (typeof json.error === 'string' ? json.error : json.error?.message) || `Request failed (${res.status})`;\n const err = new Error(msg) as ApiError;\n err.status = res.status;\n err.data = json;\n throw err;\n }\n\n const data = json && typeof json === 'object' && 'success' in json && 'data' in json\n ? (json.data as T)\n : (json as T);\n\n return { data, raw: json, status: res.status, headers: res.headers };\n } catch (err) {\n if (err && typeof err === 'object' && 'status' in err) throw err;\n const error = new Error(err instanceof Error ? err.message : 'Network error — check your connection') as ApiError;\n error.status = 0;\n throw error;\n }\n }\n\n private resolveToken(scope: AuthScope): string | null {\n switch (scope) {\n case 'enduser': return this.getEndUserToken();\n case 'staff': return this.getStaffToken();\n case 'superadmin': return this.getSuperAdminToken();\n case 'public': return null;\n }\n }\n\n private async tryRefresh(scope: AuthScope): Promise<string | null> {\n switch (scope) {\n case 'enduser': return this.refreshEndUser();\n case 'staff': return this.refreshStaff();\n default: return null;\n }\n }\n\n // ─── Scoped Client Factory ─────────────────────────────────────────────\n\n scoped(pathPrefix: string, defaultScope: AuthScope, sendOrgKey: boolean): ScopedClient {\n return new ScopedClient(this, pathPrefix, defaultScope, sendOrgKey);\n }\n}\n\n// ─── ScopedClient — zero-repetition namespace client ─────────────────────────\n//\n// Each namespace (storefront, admin, superadmin) gets a ScopedClient.\n// All methods auto-prepend the prefix and use the correct auth scope.\n//\n// Example:\n// const sf = client.scoped('/storefront', 'public', true);\n// sf.get('/catalog/items') → GET /api/v1/storefront/catalog/items (PUBLIC, sends X-Org-Key)\n// sf.post('/orders', body, 'enduser') → POST with ENDUSER token\n//\n\nexport class ScopedClient {\n constructor(\n readonly root: TZClient,\n private prefix: string,\n private defaultScope: AuthScope,\n private sendOrgKey: boolean,\n ) {}\n\n private fullPath(path: string): string {\n return `${this.prefix}${path}`;\n }\n\n // ─── TZQuery builders (return rich query objects) ──────────────────────\n\n /** GET → TZQuery<T> with .cancel(), .refetch(), .raw(), .status() */\n get<T>(path: string, scope?: AuthScope): TZQuery<T> {\n const s = scope ?? this.defaultScope;\n const fp = this.fullPath(path);\n return new TZQuery<T>((signal) => this.root.rawRequest<T>('GET', fp, { scope: s, signal, sendOrgKey: this.sendOrgKey }));\n }\n\n /** POST → TZQuery<T> */\n post<T>(path: string, body?: unknown, scope?: AuthScope): TZQuery<T> {\n const s = scope ?? this.defaultScope;\n const fp = this.fullPath(path);\n return new TZQuery<T>((signal) => this.root.rawRequest<T>('POST', fp, { body, scope: s, signal, sendOrgKey: this.sendOrgKey }));\n }\n\n /** PATCH → TZQuery<T> */\n patch<T>(path: string, body?: unknown, scope?: AuthScope): TZQuery<T> {\n const s = scope ?? this.defaultScope;\n const fp = this.fullPath(path);\n return new TZQuery<T>((signal) => this.root.rawRequest<T>('PATCH', fp, { body, scope: s, signal, sendOrgKey: this.sendOrgKey }));\n }\n\n /** PUT → TZQuery<T> */\n put<T>(path: string, body?: unknown, scope?: AuthScope): TZQuery<T> {\n const s = scope ?? this.defaultScope;\n const fp = this.fullPath(path);\n return new TZQuery<T>((signal) => this.root.rawRequest<T>('PUT', fp, { body, scope: s, signal, sendOrgKey: this.sendOrgKey }));\n }\n\n /** DELETE → TZQuery<T> */\n del<T>(path: string, scope?: AuthScope): TZQuery<T> {\n const s = scope ?? this.defaultScope;\n const fp = this.fullPath(path);\n return new TZQuery<T>((signal) => this.root.rawRequest<T>('DELETE', fp, { scope: s, signal, sendOrgKey: this.sendOrgKey }));\n }\n\n /** Upload (multipart/form-data) → TZQuery<T> */\n upload<T>(path: string, formData: FormData, scope?: AuthScope): TZQuery<T> {\n const s = scope ?? this.defaultScope;\n const fp = this.fullPath(path);\n return new TZQuery<T>((signal) => this.root.rawRequest<T>('POST', fp, { body: formData, scope: s, signal, sendOrgKey: this.sendOrgKey }));\n }\n\n /** Paginated GET → TZPaginatedQuery<T> with .next(), .prev(), .goTo() */\n paginated<T>(\n path: string,\n params: { page?: number; limit?: number; [key: string]: unknown } = {},\n ): TZPaginatedQuery<T> {\n const page = params.page ?? 1;\n const limit = params.limit ?? 20;\n const scope = this.defaultScope;\n\n const factory = (p: number, l: number): TZPaginatedQuery<T> => {\n const merged = { ...params, page: p, limit: l };\n const qs = toQs(merged);\n const fp = this.fullPath(`${path}${qs}`);\n return new TZPaginatedQuery<T>(\n (signal) => this.root.rawRequest<PaginatedResponse<T>>('GET', fp, { scope, signal, sendOrgKey: this.sendOrgKey }),\n p, l, factory,\n );\n };\n\n return factory(page, limit);\n }\n\n // ─── Direct await methods (for auth flows that need immediate token save) ─\n\n async postDirect<T>(path: string, body?: unknown, scope?: AuthScope): Promise<T> {\n return (await this.root.rawRequest<T>('POST', this.fullPath(path), {\n body, scope: scope ?? this.defaultScope, sendOrgKey: this.sendOrgKey,\n })).data;\n }\n\n async getDirect<T>(path: string, scope?: AuthScope): Promise<T> {\n return (await this.root.rawRequest<T>('GET', this.fullPath(path), {\n scope: scope ?? this.defaultScope, sendOrgKey: this.sendOrgKey,\n })).data;\n }\n\n async patchDirect<T>(path: string, body?: unknown, scope?: AuthScope): Promise<T> {\n return (await this.root.rawRequest<T>('PATCH', this.fullPath(path), {\n body, scope: scope ?? this.defaultScope, sendOrgKey: this.sendOrgKey,\n })).data;\n }\n\n async delDirect<T>(path: string, scope?: AuthScope): Promise<T> {\n return (await this.root.rawRequest<T>('DELETE', this.fullPath(path), {\n scope: scope ?? this.defaultScope, sendOrgKey: this.sendOrgKey,\n })).data;\n }\n}\n","import type { ScopedClient } from '../client';\nimport type { AuthResponse, EndUserProfile } from '../types';\nimport type {\n RegisterEndUserDto, LoginEndUserDto, EndUserSendOtpDto, EndUserVerifyOtpDto,\n StartSignupDto, VerifySignupOtpDto, EndUserRequestResetDto, EndUserResetPasswordDto,\n CompleteSignupDto, UpdateEndUserProfileDto, ChangeEndUserPasswordDto,\n} from '../dto';\n\nexport function createStorefrontAuth(c: ScopedClient) {\n const orgSlug = c.root.orgSlug;\n\n return {\n // ─── Pre-Login (PUBLIC) ───────────────────────────────────────────\n\n register(data: RegisterEndUserDto) {\n return c.postDirect<AuthResponse>('/auth/register', { ...data, orgSlug }).then((r) => {\n c.root.saveEndUserTokens(r.accessToken, r.refreshToken);\n return r;\n });\n },\n\n login(data: LoginEndUserDto) {\n return c.postDirect<AuthResponse>('/auth/login', { ...data, orgSlug }).then((r) => {\n c.root.saveEndUserTokens(r.accessToken, r.refreshToken);\n return r;\n });\n },\n\n sendOtp(data: EndUserSendOtpDto) {\n return c.post<{ message: string }>('/auth/send-otp', { ...data, orgSlug });\n },\n\n verifyOtp(data: EndUserVerifyOtpDto) {\n return c.postDirect<AuthResponse>('/auth/verify-otp', { ...data, orgSlug }).then((r) => {\n c.root.saveEndUserTokens(r.accessToken, r.refreshToken);\n return r;\n });\n },\n\n startSignup(data: StartSignupDto) {\n return c.post<{ userId: string; step: number; message: string }>('/auth/start-signup', { ...data, orgSlug });\n },\n\n verifySignupOtp(data: VerifySignupOtpDto) {\n return c.postDirect<AuthResponse>('/auth/verify-signup-otp', { ...data, orgSlug }).then((r) => {\n c.root.saveEndUserTokens(r.accessToken, r.refreshToken);\n return r;\n });\n },\n\n requestPasswordReset(data: EndUserRequestResetDto) {\n return c.post<{ message: string }>('/auth/request-reset', { ...data, orgSlug });\n },\n\n forgotPassword(data: EndUserRequestResetDto) {\n return c.post<{ message: string }>('/auth/forgot-password', { ...data, orgSlug });\n },\n\n resetPassword(data: EndUserResetPasswordDto) {\n return c.post<{ message: string }>('/auth/reset-password', data);\n },\n\n getGoogleOAuthUrl() {\n return `${c.root.baseUrl}/api/v1/storefront/auth/google?orgSlug=${orgSlug}`;\n },\n\n getFacebookOAuthUrl() {\n return `${c.root.baseUrl}/api/v1/storefront/auth/facebook?orgSlug=${orgSlug}`;\n },\n\n // ─── Post-Login (ENDUSER) ─────────────────────────────────────────\n\n completeSignup(data: CompleteSignupDto) {\n return c.postDirect<AuthResponse>('/auth/complete-signup', data, 'enduser').then((r) => {\n c.root.saveEndUserTokens(r.accessToken, r.refreshToken);\n return r;\n });\n },\n\n me() {\n return c.get<EndUserProfile>('/auth/me', 'enduser');\n },\n\n updateProfile(data: UpdateEndUserProfileDto) {\n return c.patch<EndUserProfile>('/auth/profile', data, 'enduser');\n },\n\n changePassword(data: ChangeEndUserPasswordDto) {\n return c.post<{ message: string }>('/auth/change-password', data, 'enduser');\n },\n\n logout() {\n const refreshToken = c.root.getEndUserRefreshToken();\n return c.postDirect<void>('/auth/logout', { refreshToken }, 'enduser')\n .finally(() => c.root.clearEndUserTokens());\n },\n\n refresh() {\n const refreshToken = c.root.getEndUserRefreshToken();\n return c.postDirect<AuthResponse>('/auth/refresh', { refreshToken }).then((r) => {\n c.root.saveEndUserTokens(r.accessToken, r.refreshToken);\n return r;\n });\n },\n\n // ─── Helpers ──────────────────────────────────────────────────────\n\n isAuthenticated: () => c.root.isEndUserAuthenticated(),\n getToken: () => c.root.getEndUserToken(),\n clearTokens: () => c.root.clearEndUserTokens(),\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { CatalogCategory, CatalogItem } from '../types';\nimport type { GetCatalogItemsQuery } from '../dto';\n\nexport function createStorefrontCatalog(c: ScopedClient) {\n return {\n getCategories() {\n return c.get<CatalogCategory[]>('/catalog/categories');\n },\n\n getItems(params?: GetCatalogItemsQuery) {\n return c.paginated<CatalogItem>('/catalog/items', params);\n },\n\n getItem(id: string) {\n return c.get<CatalogItem>(`/catalog/items/${id}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Cart, CartLineItem } from '../types';\nimport type { AddCartItemDto, UpdateCartItemDto } from '../dto';\n\nexport function createStorefrontCart(c: ScopedClient) {\n return {\n get() {\n return c.get<Cart>('/cart', 'enduser');\n },\n\n addItem(data: AddCartItemDto) {\n return c.post<CartLineItem>('/cart/items', data, 'enduser');\n },\n\n updateItem(itemId: string, data: UpdateCartItemDto) {\n return c.patch<CartLineItem>(`/cart/items/${itemId}`, data, 'enduser');\n },\n\n removeItem(itemId: string) {\n return c.del<void>(`/cart/items/${itemId}`, 'enduser');\n },\n\n validate() {\n return c.post<Cart>('/cart/validate', undefined, 'enduser');\n },\n\n clear() {\n return c.del<void>('/cart', 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Order } from '../types';\nimport type { CreateOrderDto, ListOrdersQuery, ReorderDto, ReportOrderIssueDto } from '../dto';\n\nexport function createStorefrontOrders(c: ScopedClient) {\n return {\n create(data: CreateOrderDto) {\n return c.post<Order>('/orders', data, 'enduser');\n },\n\n list(params?: ListOrdersQuery) {\n return c.paginated<Order>('/orders', params);\n },\n\n get(id: string) {\n return c.get<Order>(`/orders/${id}`, 'enduser');\n },\n\n reorder(data: ReorderDto) {\n return c.post<Order>('/orders/reorder', data, 'enduser');\n },\n\n reportIssue(orderId: string, data: ReportOrderIssueDto) {\n return c.post<{ ticketId: string }>(`/orders/${orderId}/issue`, data, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { PaymentOrder, PaymentVerification } from '../types';\nimport type { CreatePaymentOrderDto, VerifyPaymentDto } from '../dto';\n\nexport function createStorefrontPayments(c: ScopedClient) {\n return {\n createOrder(data: CreatePaymentOrderDto) {\n return c.post<PaymentOrder>('/payments/create-order', data, 'enduser');\n },\n\n verify(data: VerifyPaymentDto) {\n return c.post<PaymentVerification>('/payments/verify', data, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { DeliveryCalculation, DeliveryTracking } from '../types';\nimport type { CalculateDeliveryDto } from '../dto';\n\nexport function createStorefrontDelivery(c: ScopedClient) {\n return {\n calculate(data: CalculateDeliveryDto) {\n return c.post<DeliveryCalculation>('/delivery/calculate', data);\n },\n\n fee(data: CalculateDeliveryDto) {\n return c.post<DeliveryCalculation>('/delivery/fee', data);\n },\n\n tracking(orderId: string) {\n return c.get<DeliveryTracking>(`/delivery/orders/${orderId}/tracking`, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { StoreLocation } from '../types';\n\nexport function createStorefrontLocations(c: ScopedClient) {\n return {\n list() {\n return c.get<StoreLocation[]>('/locations');\n },\n\n get(id: string) {\n return c.get<StoreLocation>(`/locations/${id}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { LoyaltyAccount, LoyaltyTransaction, LoyaltyReward, LoyaltyRedemption } from '../types';\nimport type { RedeemLoyaltyRewardDto } from '../dto';\n\nexport function createStorefrontLoyalty(c: ScopedClient) {\n return {\n getAccount() {\n return c.get<LoyaltyAccount>('/loyalty', 'enduser');\n },\n\n getTransactions() {\n return c.get<LoyaltyTransaction[]>('/loyalty/transactions', 'enduser');\n },\n\n getRewards() {\n return c.get<LoyaltyReward[]>('/loyalty/rewards', 'enduser');\n },\n\n getRedemptions() {\n return c.get<LoyaltyRedemption[]>('/loyalty/redeem', 'enduser');\n },\n\n redeem(data: RedeemLoyaltyRewardDto) {\n return c.post<LoyaltyRedemption>('/loyalty/redeem', data, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { CouponValidation } from '../types';\nimport type { ValidateCouponDto } from '../dto';\n\nexport function createStorefrontCoupons(c: ScopedClient) {\n return {\n validate(data: ValidateCouponDto) {\n return c.post<CouponValidation>('/coupons/validate', data);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Promotion } from '../types';\n\nexport function createStorefrontPromotions(c: ScopedClient) {\n return {\n list() {\n return c.get<Promotion[]>('/promotions');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { ReferralInfo, ReferralValidation } from '../types';\nimport type { ValidateReferralDto } from '../dto';\n\nexport function createStorefrontReferrals(c: ScopedClient) {\n return {\n getMyCode() {\n return c.get<ReferralInfo>('/referral', 'enduser');\n },\n\n validate(data: ValidateReferralDto) {\n return c.post<ReferralValidation>('/referral/validate', data);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Review } from '../types';\nimport type { ListReviewsQuery, CreateReviewDto } from '../dto';\n\nexport function createStorefrontReviews(c: ScopedClient) {\n return {\n list(params?: ListReviewsQuery) {\n return c.paginated<Review>('/reviews', params);\n },\n\n myReviews() {\n return c.get<Review[]>('/reviews/my', 'enduser');\n },\n\n create(data: CreateReviewDto) {\n return c.post<Review>('/reviews', data, 'enduser');\n },\n\n toggleHelpful(reviewId: string) {\n return c.post<{ helpful: boolean }>(`/reviews/${reviewId}/helpful`, undefined, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { GiftCard } from '../types';\nimport type { PurchaseGiftCardDto, RedeemGiftCardDto } from '../dto';\n\nexport function createStorefrontGiftCards(c: ScopedClient) {\n return {\n purchase(data: PurchaseGiftCardDto) {\n return c.post<GiftCard>('/gift-cards/purchase', data, 'enduser');\n },\n\n redeem(data: RedeemGiftCardDto) {\n return c.post<GiftCard>('/gift-cards/redeem', data, 'enduser');\n },\n\n checkBalance(code: string) {\n return c.get<{ balance: number; status: string }>(`/gift-cards/balance?code=${encodeURIComponent(code)}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { ReservationSlot, Reservation } from '../types';\nimport type { CheckReservationAvailabilityQuery, CreateReservationDto } from '../dto';\nimport type { StatusQuery } from '../dto';\n\nexport function createStorefrontReservations(c: ScopedClient) {\n return {\n checkAvailability(params: CheckReservationAvailabilityQuery) {\n return c.get<ReservationSlot[]>(`/reservations/availability?date=${params.date}${params.partySize ? `&partySize=${params.partySize}` : ''}`);\n },\n\n create(data: CreateReservationDto) {\n return c.post<Reservation>('/reservations', data, 'enduser');\n },\n\n list(params?: StatusQuery) {\n return c.paginated<Reservation>('/reservations', params);\n },\n\n cancel(id: string) {\n return c.post<Reservation>(`/reservations/${id}/cancel`, undefined, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { SupportTicket, SupportReply } from '../types';\nimport type { CreateSupportTicketDto, ReplySupportTicketDto } from '../dto';\nimport type { StatusQuery } from '../dto';\n\nexport function createStorefrontSupport(c: ScopedClient) {\n return {\n create(data: CreateSupportTicketDto) {\n return c.post<SupportTicket>('/support', data, 'enduser');\n },\n\n list(params?: StatusQuery) {\n return c.paginated<SupportTicket>('/support', params);\n },\n\n reply(ticketId: string, data: ReplySupportTicketDto) {\n return c.post<SupportReply>(`/support/${ticketId}/reply`, data, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { ContentPost } from '../types';\nimport type { ListContentQuery } from '../dto';\n\nexport function createStorefrontContent(c: ScopedClient) {\n return {\n list(params?: ListContentQuery) {\n return c.paginated<ContentPost>('/content', params);\n },\n\n getBySlug(slug: string) {\n return c.get<ContentPost>(`/content/${slug}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Notification } from '../types';\nimport type { PaginatedQuery } from '../dto';\n\nexport function createStorefrontNotifications(c: ScopedClient) {\n return {\n list(params?: PaginatedQuery) {\n return c.paginated<Notification>('/notifications', params);\n },\n\n markRead(id: string) {\n return c.post<void>(`/notifications/${id}/read`, undefined, 'enduser');\n },\n\n markAllRead() {\n return c.post<void>('/notifications/read-all', undefined, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Address } from '../types';\nimport type { CreateAddressDto, UpdateAddressDto } from '../dto';\n\nexport function createStorefrontAddresses(c: ScopedClient) {\n return {\n list() {\n return c.get<Address[]>('/addresses', 'enduser');\n },\n\n get(id: string) {\n return c.get<Address>(`/addresses/${id}`, 'enduser');\n },\n\n create(data: CreateAddressDto) {\n return c.post<Address>('/addresses', data, 'enduser');\n },\n\n update(id: string, data: UpdateAddressDto) {\n return c.patch<Address>(`/addresses/${id}`, data, 'enduser');\n },\n\n remove(id: string) {\n return c.del<void>(`/addresses/${id}`, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { UploadResult } from '../types';\n\nexport function createStorefrontUpload(c: ScopedClient) {\n return {\n upload(file: File | Blob, folder?: string) {\n const formData = new FormData();\n formData.append('file', file);\n if (folder) formData.append('folder', folder);\n return c.upload<UploadResult>('/upload', formData, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { SubmitContactDto, SubscribeNewsletterDto } from '../dto';\n\nexport function createStorefrontContact(c: ScopedClient) {\n return {\n submit(data: SubmitContactDto) {\n return c.post<{ message: string }>('/contact', data);\n },\n\n subscribe(data: SubscribeNewsletterDto) {\n return c.post<{ message: string }>('/contact/subscribe', data);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { StorefrontConfig } from '../types';\n\nexport function createStorefrontConfig(c: ScopedClient) {\n return {\n get() {\n return c.get<StorefrontConfig>('/config');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { PropertyType, PropertyBooking, PropertyAvailability, PropertyPriceResolution } from '../types';\nimport type {\n CreatePropertyBookingDto, CancelPropertyBookingDto, CreatePropertyPaymentOrderDto,\n VerifyPaymentDto, CheckPropertyAvailabilityQuery, ResolvePropertyPriceDto,\n} from '../dto';\nimport type { StatusQuery } from '../dto';\n\nexport function createStorefrontProperty(c: ScopedClient) {\n return {\n getTypes() {\n return c.get<PropertyType[]>('/property/types');\n },\n\n getType(id: string) {\n return c.get<PropertyType>(`/property/types/${id}`);\n },\n\n createBooking(data: CreatePropertyBookingDto) {\n return c.post<PropertyBooking>('/property/bookings', data, 'enduser');\n },\n\n listBookings(params?: StatusQuery) {\n return c.paginated<PropertyBooking>('/property/bookings', params);\n },\n\n getBooking(id: string) {\n return c.get<PropertyBooking>(`/property/bookings/${id}`, 'enduser');\n },\n\n cancelBooking(id: string, data?: CancelPropertyBookingDto) {\n return c.post<PropertyBooking>(`/property/bookings/${id}/cancel`, data, 'enduser');\n },\n\n createPaymentOrder(bookingId: string, data: CreatePropertyPaymentOrderDto) {\n return c.post<{ orderId: string; amount: number }>(`/property/bookings/${bookingId}/payment-order`, data, 'enduser');\n },\n\n verifyPayment(data: VerifyPaymentDto) {\n return c.post<PropertyBooking>('/property/bookings/verify-payment', data, 'enduser');\n },\n\n lookupBooking(reference: string) {\n return c.get<PropertyBooking>(`/property/bookings/lookup?reference=${encodeURIComponent(reference)}`);\n },\n\n checkAvailability(params: CheckPropertyAvailabilityQuery) {\n return c.get<PropertyAvailability[]>(`/property/availability?propertyTypeId=${params.propertyTypeId}&checkIn=${params.checkIn}&checkOut=${params.checkOut}`);\n },\n\n resolvePrice(data: ResolvePropertyPriceDto) {\n return c.post<PropertyPriceResolution>('/property/pricing/resolve', data);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { Movie, MovieDetail, WatchSessionResponse, WatchSessionStatus, WatchSessionSummary } from '../types';\nimport type { ListMoviesQuery, UpdateMovieProgressDto, StartWatchSessionDto } from '../dto';\n\nexport function createStorefrontMovies(c: ScopedClient) {\n return {\n list(params?: ListMoviesQuery) {\n return c.paginated<Movie>('/movies', params);\n },\n\n heroBanners() {\n return c.get<Movie[]>('/movies/hero-banners');\n },\n\n genres() {\n return c.get<{ id: string; name: string }[]>('/movies/genres');\n },\n\n getBySlug(slug: string) {\n return c.get<MovieDetail>(`/movies/${slug}`);\n },\n\n library() {\n return c.get<Movie[]>('/movies/library', 'enduser');\n },\n\n getStreamUrl(id: string) {\n return c.get<{ url: string }>(`/movies/${id}/stream`, 'enduser');\n },\n\n updateProgress(id: string, data: UpdateMovieProgressDto) {\n return c.post<void>(`/movies/${id}/progress`, data, 'enduser');\n },\n\n rent(id: string) {\n return c.post<{ entitlementId: string }>(`/movies/${id}/rent`, undefined, 'enduser');\n },\n\n buy(id: string) {\n return c.post<{ entitlementId: string }>(`/movies/${id}/buy`, undefined, 'enduser');\n },\n\n // ─── PPM Watch Sessions ──────────────────────────────────────────\n\n startSession(tmdbId: number, data: StartWatchSessionDto) {\n return c.post<WatchSessionResponse>(`/movies/${tmdbId}/start-session`, data, 'enduser');\n },\n\n getSessionStatus(sessionId: string) {\n return c.get<WatchSessionStatus>(`/movies/session/${sessionId}/status`, 'enduser');\n },\n\n pauseSession(sessionId: string) {\n return c.post<WatchSessionStatus>(`/movies/session/${sessionId}/pause`, undefined, 'enduser');\n },\n\n resumeSession(sessionId: string) {\n return c.post<WatchSessionStatus>(`/movies/session/${sessionId}/resume`, undefined, 'enduser');\n },\n\n endSession(sessionId: string) {\n return c.post<WatchSessionSummary>(`/movies/session/${sessionId}/end`, undefined, 'enduser');\n },\n\n // ─── Watchlist ───────────────────────────────────────────────────\n\n getWatchlist() {\n return c.get<Movie[]>('/watchlist', 'enduser');\n },\n\n addToWatchlist(catalogItemId: string) {\n return c.post<void>(`/watchlist/${catalogItemId}`, undefined, 'enduser');\n },\n\n removeFromWatchlist(catalogItemId: string) {\n return c.del<void>(`/watchlist/${catalogItemId}`, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { TmdbMovie, TmdbMovieDetail } from '../types';\n\nexport function createStorefrontTmdb(c: ScopedClient) {\n return {\n popular(page?: number) {\n return c.get<{ results: TmdbMovie[]; total_pages: number }>(`/tmdb/popular${page ? `?page=${page}` : ''}`);\n },\n\n trending() {\n return c.get<{ results: TmdbMovie[] }>('/tmdb/trending');\n },\n\n bollywood(page?: number) {\n return c.get<{ results: TmdbMovie[]; total_pages: number }>(`/tmdb/bollywood${page ? `?page=${page}` : ''}`);\n },\n\n hollywood(page?: number) {\n return c.get<{ results: TmdbMovie[]; total_pages: number }>(`/tmdb/hollywood${page ? `?page=${page}` : ''}`);\n },\n\n tamil(page?: number) {\n return c.get<{ results: TmdbMovie[]; total_pages: number }>(`/tmdb/tamil${page ? `?page=${page}` : ''}`);\n },\n\n telugu(page?: number) {\n return c.get<{ results: TmdbMovie[]; total_pages: number }>(`/tmdb/telugu${page ? `?page=${page}` : ''}`);\n },\n\n search(query: string, page?: number) {\n return c.get<{ results: TmdbMovie[]; total_pages: number }>(`/tmdb/search?query=${encodeURIComponent(query)}${page ? `&page=${page}` : ''}`);\n },\n\n genres() {\n return c.get<{ genres: Array<{ id: number; name: string }> }>('/tmdb/genres');\n },\n\n getStreamUrl(tmdbId: number) {\n return c.get<{ url: string }>(`/tmdb/stream/${tmdbId}`);\n },\n\n getPlayUrl(tmdbId: number) {\n return `${c.root.baseUrl}/api/v1/storefront/tmdb/play/${tmdbId}`;\n },\n\n getDetail(tmdbId: number) {\n return c.get<TmdbMovieDetail>(`/tmdb/${tmdbId}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { WalletPack, WalletBalance, WalletTransaction } from '../types';\nimport type { TopUpWalletDto } from '../dto';\nimport type { PaginatedQuery } from '../dto';\n\nexport function createStorefrontWallet(c: ScopedClient) {\n return {\n getPacks() {\n return c.get<WalletPack[]>('/wallet/packs');\n },\n\n getBalance() {\n return c.get<WalletBalance>('/wallet/balance', 'enduser');\n },\n\n topUp(data: TopUpWalletDto) {\n return c.post<WalletBalance>('/wallet/topup', data, 'enduser');\n },\n\n getTransactions(params?: PaginatedQuery) {\n return c.paginated<WalletTransaction>('/wallet/transactions', params);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { StudentPassStatus, DiscountPreview } from '../types';\nimport type { ApplyStudentPassDto, PreviewStudentDiscountDto } from '../dto';\n\nexport function createStorefrontStudent(c: ScopedClient) {\n return {\n getPassStatus() {\n return c.get<StudentPassStatus>('/student/pass', 'enduser');\n },\n\n applyForPass(data: ApplyStudentPassDto) {\n return c.post<StudentPassStatus>('/student/pass', data, 'enduser');\n },\n\n previewDiscount(data: PreviewStudentDiscountDto) {\n return c.post<DiscountPreview>('/student/discount/preview', data, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { MealPlan, MealSubscription } from '../types';\nimport type { SubscribeMealPlanDto } from '../dto';\n\nexport function createStorefrontMealPlans(c: ScopedClient) {\n return {\n list() {\n return c.get<MealPlan[]>('/meal-plans');\n },\n\n get(id: string) {\n return c.get<MealPlan>(`/meal-plans/${id}`);\n },\n\n subscribe(data: SubscribeMealPlanDto) {\n return c.post<MealSubscription>('/meal-plans/subscribe', data, 'enduser');\n },\n\n mySubscriptions() {\n return c.get<MealSubscription[]>('/meal-plans/subscriptions', 'enduser');\n },\n\n cancelSubscription(id: string) {\n return c.post<MealSubscription>(`/meal-plans/subscriptions/${id}/cancel`, undefined, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { HelpArticle } from '../types';\n\nexport function createStorefrontHelp(c: ScopedClient) {\n return {\n list() {\n return c.get<HelpArticle[]>('/content?type=help');\n },\n\n getBySlug(slug: string) {\n return c.get<HelpArticle>(`/content/${slug}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { WatchRoom, WatchRoomJoinResponse } from '../types';\nimport type { CreateWatchRoomDto, JoinWatchRoomDto, SwitchWatchRoomModeDto, ListWatchRoomsQuery } from '../dto';\n\nexport function createStorefrontRooms(c: ScopedClient) {\n return {\n create(data: CreateWatchRoomDto) {\n return c.post<WatchRoom>('/rooms', data, 'enduser');\n },\n\n get(roomId: string) {\n return c.get<WatchRoom>(`/rooms/${roomId}`);\n },\n\n join(roomId: string, data: JoinWatchRoomDto) {\n return c.post<WatchRoomJoinResponse>(`/rooms/${roomId}/join`, data, 'enduser');\n },\n\n leave(roomId: string) {\n return c.post<void>(`/rooms/${roomId}/leave`, undefined, 'enduser');\n },\n\n switchMode(roomId: string, data: SwitchWatchRoomModeDto) {\n return c.post<void>(`/rooms/${roomId}/switch-mode`, data, 'enduser');\n },\n\n end(roomId: string) {\n return c.post<void>(`/rooms/${roomId}/end`, undefined, 'enduser');\n },\n\n listLive(params?: ListWatchRoomsQuery) {\n return c.paginated<WatchRoom>('/rooms/live', params);\n },\n\n listForMovie(tmdbId: number) {\n return c.get<WatchRoom[]>(`/rooms/movie/${tmdbId}`);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { EarningsSummary, HostEarning } from '../types';\nimport type { ListEarningsQuery } from '../dto';\n\nexport function createStorefrontEarnings(c: ScopedClient) {\n return {\n getSummary() {\n return c.get<EarningsSummary>('/earnings/summary', 'enduser');\n },\n\n getHistory(params?: ListEarningsQuery) {\n return c.paginated<HostEarning>('/earnings/history', params);\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport type { ConnectedSource, GoogleDriveConnectUrl } from '../types';\nimport type { GoogleDriveCallbackDto } from '../dto';\n\nexport function createStorefrontConnectedSources(c: ScopedClient) {\n return {\n list() {\n return c.get<ConnectedSource[]>('/connected-sources', 'enduser');\n },\n\n getGoogleDriveConnectUrl() {\n return c.get<GoogleDriveConnectUrl>('/connected-sources/google-drive/connect', 'enduser');\n },\n\n connectGoogleDrive(data: GoogleDriveCallbackDto) {\n return c.post<ConnectedSource>('/connected-sources/google-drive/callback', data, 'enduser');\n },\n\n disconnect(provider: string) {\n return c.del<void>(`/connected-sources/${provider}`, 'enduser');\n },\n };\n}\n","import type { ScopedClient } from '../client';\nimport { createStorefrontAuth } from './auth';\nimport { createStorefrontCatalog } from './catalog';\nimport { createStorefrontCart } from './cart';\nimport { createStorefrontOrders } from './orders';\nimport { createStorefrontPayments } from './payments';\nimport { createStorefrontDelivery } from './delivery';\nimport { createStorefrontLocations } from './locations';\nimport { createStorefrontLoyalty } from './loyalty';\nimport { createStorefrontCoupons } from './coupons';\nimport { createStorefrontPromotions } from './promotions';\nimport { createStorefrontReferrals } from './referrals';\nimport { createStorefrontReviews } from './reviews';\nimport { createStorefrontGiftCards } from './gift-cards';\nimport { createStorefrontReservations } from './reservations';\nimport { createStorefrontSupport } from './support';\nimport { createStorefrontContent } from './content';\nimport { createStorefrontNotifications } from './notifications';\nimport { createStorefrontAddresses } from './addresses';\nimport { createStorefrontUpload } from './upload';\nimport { createStorefrontContact } from './contact';\nimport { createStorefrontConfig } from './config';\nimport { createStorefrontProperty } from './property';\nimport { createStorefrontMovies } from './movies';\nimport { createStorefrontTmdb } from './tmdb';\nimport { createStorefrontWallet } from './wallet';\nimport { createStorefrontStudent } from './student';\nimport { createStorefrontMealPlans } from './meal-plans';\nimport { createStorefrontHelp } from './help';\nimport { createStorefrontRooms } from './rooms';\nimport { createStorefrontEarnings } from './earnings';\nimport { createStorefrontConnectedSources } from './connected-sources';\n\nexport function createStorefront(c: ScopedClient) {\n return {\n auth: createStorefrontAuth(c),\n catalog: createStorefrontCatalog(c),\n cart: createStorefrontCart(c),\n orders: createStorefrontOrders(c),\n payments: createStorefrontPayments(c),\n delivery: createStorefrontDelivery(c),\n locations: createStorefrontLocations(c),\n loyalty: createStorefrontLoyalty(c),\n coupons: createStorefrontCoupons(c),\n promotions: createStorefrontPromotions(c),\n referrals: createStorefrontReferrals(c),\n reviews: createStorefrontReviews(c),\n giftCards: createStorefrontGiftCards(c),\n reservations: createStorefrontReservations(c),\n support: createStorefrontSupport(c),\n content: createStorefrontContent(c),\n notifications: createStorefrontNotifications(c),\n addresses: createStorefrontAddresses(c),\n upload: createStorefrontUpload(c),\n contact: createStorefrontContact(c),\n config: createStorefrontConfig(c),\n property: createStorefrontProperty(c),\n movies: createStorefrontMovies(c),\n tmdb: createStorefrontTmdb(c),\n wallet: createStorefrontWallet(c),\n student: createStorefrontStudent(c),\n mealPlans: createStorefrontMealPlans(c),\n help: createStorefrontHelp(c),\n rooms: createStorefrontRooms(c),\n earnings: createStorefrontEarnings(c),\n connectedSources: createStorefrontConnectedSources(c),\n };\n}\n","import type { TZClient, ScopedClient } from '../client';\nimport type {\n StaffAuthResponse, StaffUser, Role, AuditLog, ApiKey,\n CatalogCategory, CatalogItem, CatalogItemVariant, CatalogOptionGroup, CatalogOption,\n Order, StoreLocation, ContactMessage, Notification, ContentPost,\n Review, GiftCard, Reservation, SupportTicket, Promotion, LoyaltyAccount, LoyaltyReward,\n UploadResult, StudentPassStatus, StudentDiscount, Institution, MealPlan, HelpArticle,\n Ingredient, StockAlert, WasteLog, Supplier, PurchaseOrder, AdminMealSubscription,\n} from '../types';\nimport type {\n StaffRegisterDto, StaffLoginDto, StaffSendOtpDto, StaffVerifyOtpDto,\n RequestMagicLinkDto, VerifyMagicLinkQuery, StaffChangePasswordDto,\n StaffRequestPasswordResetDto, StaffResetPasswordDto,\n ListStaffUsersQuery, InviteStaffUserDto, UpdateStaffUserDto, AssignStaffRolesDto,\n UpdateOrgDto, CreateRoleDto, UpdateRoleDto,\n CreateCatalogCategoryDto, UpdateCatalogCategoryDto, ListCatalogItemsQuery,\n CreateCatalogVariantDto, UpdateCatalogVariantDto,\n CreateCatalogOptionGroupDto, UpdateCatalogOptionGroupDto,\n CreateCatalogOptionDto, UpdateCatalogOptionDto,\n AdminListOrdersQuery, UpdateOrderStatusDto,\n SetLocationHoursDto, ListEndUsersQuery, BulkUpsertEndUsersDto, EndUserTagsDto,\n CreateApiKeyDto, UpdateApiKeyDto,\n SetSettingDto, BulkUpdateSettingsDto, SubscribeBillingPlanDto,\n PreviewTemplateDto, AddSegmentMembersDto, ScheduleCampaignDto,\n AdjustLoyaltyPointsDto, UpdateReviewStatusDto, UpdateReservationStatusDto,\n SetPropertyTypeAmenitiesDto, UpdateHousekeepingDto, CreatePropertyAmenityDto,\n AssignPropertyUnitsDto, AdminCancelBookingDto, UpdateSupportTicketDto,\n ListStudentPassesQuery, ReviewStudentPassDto, BulkReviewStudentPassesDto,\n CreateStudentDiscountDto, UpdateStudentDiscountDto,\n CreateInstitutionDto, UpdateInstitutionDto,\n CreateMealPlanDto, UpdateMealPlanDto,\n CreateHelpArticleDto, UpdateHelpArticleDto,\n CreateIngredientDto, UpdateIngredientDto, CreateWasteLogDto,\n CreateSupplierDto, UpdateSupplierDto,\n CreatePurchaseOrderDto, UpdatePurchaseOrderDto, QueryPurchaseOrdersParams,\n QueryMealSubscriptionsParams,\n} from '../dto';\nimport type { PaginatedQuery, StatusQuery } from '../dto';\n\nexport function createAdmin(root: TZClient, c: ScopedClient) {\n const orgSlug = root.orgSlug;\n\n return {\n // ─── Auth (Staff) ────────────────────────────────────────────────\n\n auth: {\n register(data: StaffRegisterDto) {\n return root.rawRequest<StaffAuthResponse>('POST', '/auth/register', { body: { ...data, orgSlug }, scope: 'public', sendOrgKey: false })\n .then((r) => { root.saveStaffTokens(r.data.accessToken, r.data.refreshToken); return r.data; });\n },\n\n login(data: StaffLoginDto) {\n return root.rawRequest<StaffAuthResponse>('POST', '/auth/login', { body: { ...data, orgSlug }, scope: 'public', sendOrgKey: false })\n .then((r) => { root.saveStaffTokens(r.data.accessToken, r.data.refreshToken); return r.data; });\n },\n\n logout() {\n const refreshToken = root.getStaffRefreshToken();\n return root.rawRequest<void>('POST', '/auth/logout', { body: { refreshToken }, scope: 'staff', sendOrgKey: false })\n .then((r) => r.data)\n .finally(() => root.clearStaffTokens());\n },\n\n me() { return c.get<StaffUser>('/users/me'); },\n\n sendOtp(data: StaffSendOtpDto) {\n return root.rawRequest<{ message: string }>('POST', '/auth/otp/send', { body: { ...data, orgSlug }, scope: 'public', sendOrgKey: false })\n .then((r) => r.data);\n },\n\n verifyOtp(data: StaffVerifyOtpDto) {\n return root.rawRequest<StaffAuthResponse>('POST', '/auth/otp/verify', { body: { ...data, orgSlug }, scope: 'public', sendOrgKey: false })\n .then((r) => { root.saveStaffTokens(r.data.accessToken, r.data.refreshToken); return r.data; });\n },\n\n refresh() {\n const refreshToken = root.getStaffRefreshToken();\n return root.rawRequest<StaffAuthResponse>('POST', '/auth/refresh', { body: { refreshToken }, scope: 'public', sendOrgKey: false })\n .then((r) => { root.saveStaffTokens(r.data.accessToken, r.data.refreshToken); return r.data; });\n },\n\n requestMagicLink(data: RequestMagicLinkDto) {\n return root.rawRequest<{ message: string }>('POST', '/auth/magic-link', { body: { ...data, orgSlug }, scope: 'public', sendOrgKey: false })\n .then((r) => r.data);\n },\n\n verifyMagicLink(params: VerifyMagicLinkQuery) {\n return root.rawRequest<StaffAuthResponse>('GET', `/auth/magic-link/verify?token=${encodeURIComponent(params.token)}&orgSlug=${orgSlug}`, { scope: 'public', sendOrgKey: false })\n .then((r) => { root.saveStaffTokens(r.data.accessToken, r.data.refreshToken); return r.data; });\n },\n\n changePassword(data: StaffChangePasswordDto) {\n return c.post<{ message: string }>('/auth/password/change', data);\n },\n\n requestPasswordReset(data: StaffRequestPasswordResetDto) {\n return root.rawRequest<{ message: string }>('POST', '/auth/password/reset-request', { body: { ...data, orgSlug }, scope: 'public', sendOrgKey: false })\n .then((r) => r.data);\n },\n\n resetPassword(data: StaffResetPasswordDto) {\n return root.rawRequest<{ message: string }>('POST', '/auth/password/reset', { body: data, scope: 'public', sendOrgKey: false })\n .then((r) => r.data);\n },\n\n isAuthenticated: () => root.isStaffAuthenticated(),\n getToken: () => root.getStaffToken(),\n clearTokens: () => root.clearStaffTokens(),\n },\n\n // ─── Users ───────────────────────────────────────────────────────\n\n users: {\n list(params?: ListStaffUsersQuery) { return c.paginated<StaffUser>('/users', params); },\n get(id: string) { return c.get<StaffUser>(`/users/${id}`); },\n invite(data: InviteStaffUserDto) { return c.post<StaffUser>('/users/invite', data); },\n update(id: string, data: UpdateStaffUserDto) { return c.patch<StaffUser>(`/users/${id}`, data); },\n remove(id: string) { return c.del<void>(`/users/${id}`); },\n suspend(id: string) { return c.post<void>(`/users/${id}/suspend`); },\n reinstate(id: string) { return c.post<void>(`/users/${id}/reinstate`); },\n assignRoles(id: string, data: AssignStaffRolesDto) { return c.post<void>(`/users/${id}/roles`, data); },\n },\n\n // ─── Organization (Self) ─────────────────────────────────────────\n\n org: {\n me() { return c.get<{ id: string; name: string; slug: string; logoUrl: string | null }>('/org/me'); },\n update(data: UpdateOrgDto) { return c.patch<unknown>('/org/me', data); },\n },\n\n // ─── Roles ───────────────────────────────────────────────────────\n\n roles: {\n list() { return c.get<Role[]>('/roles'); },\n permissions() { return c.get<string[]>('/roles/permissions'); },\n get(id: string) { return c.get<Role>(`/roles/${id}`); },\n create(data: CreateRoleDto) { return c.post<Role>('/roles', data); },\n update(id: string, data: UpdateRoleDto) { return c.patch<Role>(`/roles/${id}`, data); },\n remove(id: string) { return c.del<void>(`/roles/${id}`); },\n },\n\n // ─── Catalog ─────────────────────────────────────────────────────\n\n catalog: {\n getCategories(params?: PaginatedQuery) { return c.paginated<CatalogCategory>('/catalog/categories', params); },\n createCategory(data: CreateCatalogCategoryDto) { return c.post<CatalogCategory>('/catalog/categories', data); },\n updateCategory(id: string, data: UpdateCatalogCategoryDto) { return c.patch<CatalogCategory>(`/catalog/categories/${id}`, data); },\n removeCategory(id: string) { return c.del<void>(`/catalog/categories/${id}`); },\n\n getItems(params?: ListCatalogItemsQuery) { return c.paginated<CatalogItem>('/catalog/items', params); },\n getItem(id: string) { return c.get<CatalogItem>(`/catalog/items/${id}`); },\n createItem(data: Record<string, unknown>) { return c.post<CatalogItem>('/catalog/items', data); },\n updateItem(id: string, data: Record<string, unknown>) { return c.patch<CatalogItem>(`/catalog/items/${id}`, data); },\n removeItem(id: string) { return c.del<void>(`/catalog/items/${id}`); },\n\n createVariant(itemId: string, data: CreateCatalogVariantDto) { return c.post<CatalogItemVariant>(`/catalog/items/${itemId}/variants`, data); },\n updateVariant(variantId: string, data: UpdateCatalogVariantDto) { return c.patch<CatalogItemVariant>(`/catalog/variants/${variantId}`, data); },\n removeVariant(variantId: string) { return c.del<void>(`/catalog/variants/${variantId}`); },\n\n createOptionGroup(itemId: string, data: CreateCatalogOptionGroupDto) { return c.post<CatalogOptionGroup>(`/catalog/items/${itemId}/option-groups`, data); },\n updateOptionGroup(groupId: string, data: UpdateCatalogOptionGroupDto) { return c.patch<CatalogOptionGroup>(`/catalog/option-groups/${groupId}`, data); },\n removeOptionGroup(groupId: string) { return c.del<void>(`/catalog/option-groups/${groupId}`); },\n\n createOption(groupId: string, data: CreateCatalogOptionDto) { return c.post<CatalogOption>(`/catalog/option-groups/${groupId}/options`, data); },\n updateOption(optionId: string, data: UpdateCatalogOptionDto) { return c.patch<CatalogOption>(`/catalog/options/${optionId}`, data); },\n removeOption(optionId: string) { return c.del<void>(`/catalog/options/${optionId}`); },\n },\n\n // ─── Commerce Orders ─────────────────────────────────────────────\n\n orders: {\n list(params?: AdminListOrdersQuery) { return c.paginated<Order>('/commerce/orders', params); },\n stats() { return c.get<Record<string, unknown>>('/commerce/orders/stats'); },\n get(id: string) { return c.get<Order>(`/commerce/orders/${id}`); },\n updateStatus(id: string, data: UpdateOrderStatusDto) { return c.patch<Order>(`/commerce/orders/${id}/status`, data); },\n },\n\n // ─── Locations ───────────────────────────────────────────────────\n\n locations: {\n list() { return c.get<StoreLocation[]>('/locations'); },\n get(id: string) { return c.get<StoreLocation>(`/locations/${id}`); },\n create(data: Record<string, unknown>) { return c.post<StoreLocation>('/locations', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<StoreLocation>(`/locations/${id}`, data); },\n remove(id: string) { return c.del<void>(`/locations/${id}`); },\n setHours(id: string, data: SetLocationHoursDto) { return c.put<void>(`/locations/${id}/hours`, data); },\n getDeliveryZones(id: string) { return c.get<unknown[]>(`/locations/${id}/delivery-zones`); },\n createDeliveryZone(id: string, data: Record<string, unknown>) { return c.post<unknown>(`/locations/${id}/delivery-zones`, data); },\n updateDeliveryZone(zoneId: string, data: Record<string, unknown>) { return c.patch<unknown>(`/locations/delivery-zones/${zoneId}`, data); },\n removeDeliveryZone(zoneId: string) { return c.del<void>(`/locations/delivery-zones/${zoneId}`); },\n },\n\n // ─── End Users (Admin) ───────────────────────────────────────────\n\n endUsers: {\n list(params?: ListEndUsersQuery) { return c.paginated<unknown>('/end-users', params); },\n get(id: string) { return c.get<unknown>(`/end-users/${id}`); },\n create(data: Record<string, unknown>) { return c.post<unknown>('/end-users', data); },\n bulkUpsert(data: BulkUpsertEndUsersDto) { return c.post<unknown>('/end-users/bulk', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/end-users/${id}`, data); },\n remove(id: string) { return c.del<void>(`/end-users/${id}`); },\n block(id: string) { return c.post<void>(`/end-users/${id}/block`); },\n unblock(id: string) { return c.post<void>(`/end-users/${id}/unblock`); },\n updateAttributes(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/end-users/${id}/attributes`, data); },\n addTags(id: string, data: EndUserTagsDto) { return c.post<void>(`/end-users/${id}/tags`, data); },\n removeTags(id: string, data: EndUserTagsDto) { return c.del<void>(`/end-users/${id}/tags`); },\n },\n\n // ─── Audit ───────────────────────────────────────────────────────\n\n audit: {\n list(params?: PaginatedQuery & { action?: string; resource?: string }) { return c.paginated<AuditLog>('/audit', params); },\n },\n\n // ─── API Keys ────────────────────────────────────────────────────\n\n apiKeys: {\n list() { return c.get<ApiKey[]>('/api-keys'); },\n get(id: string) { return c.get<ApiKey>(`/api-keys/${id}`); },\n create(data: CreateApiKeyDto) { return c.post<ApiKey & { key: string }>('/api-keys', data); },\n update(id: string, data: UpdateApiKeyDto) { return c.patch<ApiKey>(`/api-keys/${id}`, data); },\n remove(id: string) { return c.del<void>(`/api-keys/${id}`); },\n rotate(id: string) { return c.post<ApiKey & { key: string }>(`/api-keys/${id}/rotate`); },\n },\n\n // ─── Settings ────────────────────────────────────────────────────\n\n settings: {\n getAll() { return c.get<Record<string, unknown>>('/settings'); },\n getGroup(group: string) { return c.get<Record<string, unknown>>(`/settings/${group}`); },\n set(group: string, key: string, data: SetSettingDto) { return c.put<void>(`/settings/${group}/${key}`, data); },\n bulkUpdate(data: BulkUpdateSettingsDto) { return c.put<void>('/settings', data); },\n remove(group: string, key: string) { return c.del<void>(`/settings/${group}/${key}`); },\n },\n\n // ─── Billing ─────────────────────────────────────────────────────\n\n billing: {\n currentPlan() { return c.get<unknown>('/billing/plan'); },\n plans() { return c.get<unknown[]>('/billing/plans'); },\n subscribe(data: SubscribeBillingPlanDto) { return c.post<unknown>('/billing/subscribe', data); },\n cancel() { return c.post<void>('/billing/cancel'); },\n invoices(params?: PaginatedQuery) { return c.paginated<unknown>('/billing/invoices', params); },\n invoice(id: string) { return c.get<unknown>(`/billing/invoices/${id}`); },\n usage() { return c.get<unknown>('/billing/usage'); },\n },\n\n // ─── Usage ───────────────────────────────────────────────────────\n\n usage: {\n current() { return c.get<unknown>('/usage'); },\n history(params?: PaginatedQuery) { return c.paginated<unknown>('/usage/history', params); },\n breakdown(params?: PaginatedQuery) { return c.paginated<unknown>('/usage/breakdown', params); },\n },\n\n // ─── Contact Messages ────────────────────────────────────────────\n\n contactMessages: {\n list(params?: PaginatedQuery) { return c.paginated<ContactMessage>('/contact-messages', params); },\n get(id: string) { return c.get<ContactMessage>(`/contact-messages/${id}`); },\n markRead(id: string) { return c.patch<void>(`/contact-messages/${id}/read`); },\n markUnread(id: string) { return c.patch<void>(`/contact-messages/${id}/unread`); },\n remove(id: string) { return c.del<void>(`/contact-messages/${id}`); },\n },\n\n // ─── Notifications ───────────────────────────────────────────────\n\n notifications: {\n list(params?: PaginatedQuery) { return c.paginated<Notification>('/notifications', params); },\n send(data: Record<string, unknown>) { return c.post<unknown>('/notifications/send', data); },\n sendBulk(data: Record<string, unknown>) { return c.post<unknown>('/notifications/send-bulk', data); },\n inApp(params?: PaginatedQuery) { return c.paginated<Notification>('/notifications/in-app', params); },\n unreadCount() { return c.get<{ count: number }>('/notifications/unread-count'); },\n get(id: string) { return c.get<Notification>(`/notifications/${id}`); },\n resend(id: string) { return c.post<void>(`/notifications/${id}/resend`); },\n markRead(id: string) { return c.patch<void>(`/notifications/${id}/read`); },\n markAllRead() { return c.post<void>('/notifications/read-all'); },\n },\n\n // ─── Templates ───────────────────────────────────────────────────\n\n templates: {\n list(params?: PaginatedQuery) { return c.paginated<unknown>('/templates', params); },\n get(id: string) { return c.get<unknown>(`/templates/${id}`); },\n create(data: Record<string, unknown>) { return c.post<unknown>('/templates', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/templates/${id}`, data); },\n remove(id: string) { return c.del<void>(`/templates/${id}`); },\n preview(id: string, data: PreviewTemplateDto) { return c.post<unknown>(`/templates/${id}/preview`, data); },\n },\n\n // ─── Segments ────────────────────────────────────────────────────\n\n segments: {\n list(params?: PaginatedQuery) { return c.paginated<unknown>('/segments', params); },\n get(id: string) { return c.get<unknown>(`/segments/${id}`); },\n create(data: Record<string, unknown>) { return c.post<unknown>('/segments', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/segments/${id}`, data); },\n remove(id: string) { return c.del<void>(`/segments/${id}`); },\n preview(id: string) { return c.post<unknown>(`/segments/${id}/preview`); },\n members(id: string, params?: PaginatedQuery) { return c.paginated<unknown>(`/segments/${id}/members`, params); },\n addMembers(id: string, data: AddSegmentMembersDto) { return c.post<void>(`/segments/${id}/members`, data); },\n removeMember(segmentId: string, userId: string) { return c.del<void>(`/segments/${segmentId}/members/${userId}`); },\n },\n\n // ─── Campaigns ───────────────────────────────────────────────────\n\n campaigns: {\n list(params?: StatusQuery) { return c.paginated<unknown>('/campaigns', params); },\n get(id: string) { return c.get<unknown>(`/campaigns/${id}`); },\n create(data: Record<string, unknown>) { return c.post<unknown>('/campaigns', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/campaigns/${id}`, data); },\n remove(id: string) { return c.del<void>(`/campaigns/${id}`); },\n launch(id: string) { return c.post<void>(`/campaigns/${id}/launch`); },\n schedule(id: string, data: ScheduleCampaignDto) { return c.post<void>(`/campaigns/${id}/schedule`, data); },\n pause(id: string) { return c.post<void>(`/campaigns/${id}/pause`); },\n resume(id: string) { return c.post<void>(`/campaigns/${id}/resume`); },\n cancel(id: string) { return c.post<void>(`/campaigns/${id}/cancel`); },\n logs(id: string, params?: PaginatedQuery) { return c.paginated<unknown>(`/campaigns/${id}/logs`, params); },\n analytics(id: string) { return c.get<unknown>(`/campaigns/${id}/analytics`); },\n },\n\n // ─── Webhooks ────────────────────────────────────────────────────\n\n webhooks: {\n list() { return c.get<unknown[]>('/webhooks'); },\n get(id: string) { return c.get<unknown>(`/webhooks/${id}`); },\n create(data: Record<string, unknown>) { return c.post<unknown>('/webhooks', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/webhooks/${id}`, data); },\n remove(id: string) { return c.del<void>(`/webhooks/${id}`); },\n test(id: string) { return c.post<unknown>(`/webhooks/${id}/test`); },\n logs(id: string, params?: PaginatedQuery) { return c.paginated<unknown>(`/webhooks/${id}/logs`, params); },\n retryLog(webhookId: string, logId: string) { return c.post<void>(`/webhooks/${webhookId}/retry/${logId}`); },\n },\n\n // ─── Loyalty (Admin) ─────────────────────────────────────────────\n\n loyalty: {\n accounts(params?: PaginatedQuery) { return c.paginated<LoyaltyAccount>('/loyalty/accounts', params); },\n getAccount(id: string) { return c.get<LoyaltyAccount>(`/loyalty/accounts/${id}`); },\n adjustPoints(id: string, data: AdjustLoyaltyPointsDto) { return c.post<void>(`/loyalty/accounts/${id}/adjust`, data); },\n rewards() { return c.get<LoyaltyReward[]>('/loyalty/rewards'); },\n getReward(id: string) { return c.get<LoyaltyReward>(`/loyalty/rewards/${id}`); },\n createReward(data: Record<string, unknown>) { return c.post<LoyaltyReward>('/loyalty/rewards', data); },\n updateReward(id: string, data: Record<string, unknown>) { return c.patch<LoyaltyReward>(`/loyalty/rewards/${id}`, data); },\n removeReward(id: string) { return c.del<void>(`/loyalty/rewards/${id}`); },\n },\n\n // ─── Coupons (Admin) ─────────────────────────────────────────────\n\n coupons: {\n list(params?: StatusQuery) { return c.paginated<unknown>('/coupons', params); },\n get(id: string) { return c.get<unknown>(`/coupons/${id}`); },\n create(data: Record<string, unknown>) { return c.post<unknown>('/coupons', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/coupons/${id}`, data); },\n remove(id: string) { return c.del<void>(`/coupons/${id}`); },\n },\n\n // ─── Promotions (Admin) ──────────────────────────────────────────\n\n promotions: {\n list(params?: PaginatedQuery) { return c.paginated<Promotion>('/promotions', params); },\n get(id: string) { return c.get<Promotion>(`/promotions/${id}`); },\n create(data: Record<string, unknown>) { return c.post<Promotion>('/promotions', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<Promotion>(`/promotions/${id}`, data); },\n remove(id: string) { return c.del<void>(`/promotions/${id}`); },\n },\n\n // ─── Reviews (Admin) ─────────────────────────────────────────────\n\n reviews: {\n list(params?: StatusQuery) { return c.paginated<Review>('/reviews', params); },\n updateStatus(id: string, data: UpdateReviewStatusDto) { return c.patch<Review>(`/reviews/${id}/status`, data); },\n },\n\n // ─── Gift Cards (Admin) ──────────────────────────────────────────\n\n giftCards: {\n list(params?: PaginatedQuery) { return c.paginated<GiftCard>('/gift-cards', params); },\n get(id: string) { return c.get<GiftCard>(`/gift-cards/${id}`); },\n create(data: Record<string, unknown>) { return c.post<GiftCard>('/gift-cards', data); },\n },\n\n // ─── Reservations (Admin) ────────────────────────────────────────\n\n reservations: {\n list(params?: StatusQuery) { return c.paginated<Reservation>('/reservations', params); },\n updateStatus(id: string, data: UpdateReservationStatusDto) { return c.patch<Reservation>(`/reservations/${id}/status`, data); },\n resources() { return c.get<unknown[]>('/reservations/resources'); },\n createResource(data: Record<string, unknown>) { return c.post<unknown>('/reservations/resources', data); },\n updateResource(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/reservations/resources/${id}`, data); },\n removeResource(id: string) { return c.del<void>(`/reservations/resources/${id}`); },\n },\n\n // ─── Support (Admin) ─────────────────────────────────────────────\n\n support: {\n list(params?: StatusQuery) { return c.paginated<SupportTicket>('/support', params); },\n get(id: string) { return c.get<SupportTicket>(`/support/${id}`); },\n update(id: string, data: UpdateSupportTicketDto) { return c.patch<SupportTicket>(`/support/${id}`, data); },\n },\n\n // ─── Content (Admin) ─────────────────────────────────────────────\n\n content: {\n list(params?: StatusQuery) { return c.paginated<ContentPost>('/content', params); },\n get(id: string) { return c.get<ContentPost>(`/content/${id}`); },\n create(data: Record<string, unknown>) { return c.post<ContentPost>('/content', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<ContentPost>(`/content/${id}`, data); },\n remove(id: string) { return c.del<void>(`/content/${id}`); },\n },\n\n // ─── Payments (Admin) ────────────────────────────────────────────\n\n payments: {\n list(params?: PaginatedQuery) { return c.paginated<unknown>('/payments', params); },\n get(id: string) { return c.get<unknown>(`/payments/${id}`); },\n createOrder(data: Record<string, unknown>) { return c.post<unknown>('/payments/orders', data); },\n verifyOrder(orderId: string, data: Record<string, unknown>) { return c.post<unknown>(`/payments/orders/${orderId}/verify`, data); },\n listOrders(params?: PaginatedQuery) { return c.paginated<unknown>('/payments/orders', params); },\n getOrder(id: string) { return c.get<unknown>(`/payments/orders/${id}`); },\n createRefund(paymentId: string, data: Record<string, unknown>) { return c.post<unknown>(`/payments/${paymentId}/refunds`, data); },\n listRefunds(paymentId: string) { return c.get<unknown[]>(`/payments/${paymentId}/refunds`); },\n createSubscription(data: Record<string, unknown>) { return c.post<unknown>('/payments/subscriptions', data); },\n listSubscriptions(params?: PaginatedQuery) { return c.paginated<unknown>('/payments/subscriptions', params); },\n getSubscription(id: string) { return c.get<unknown>(`/payments/subscriptions/${id}`); },\n pauseSubscription(id: string) { return c.post<void>(`/payments/subscriptions/${id}/pause`); },\n resumeSubscription(id: string) { return c.post<void>(`/payments/subscriptions/${id}/resume`); },\n cancelSubscription(id: string) { return c.post<void>(`/payments/subscriptions/${id}/cancel`); },\n createLink(data: Record<string, unknown>) { return c.post<unknown>('/payments/links', data); },\n listLinks(params?: PaginatedQuery) { return c.paginated<unknown>('/payments/links', params); },\n getLink(id: string) { return c.get<unknown>(`/payments/links/${id}`); },\n deactivateLink(id: string) { return c.post<void>(`/payments/links/${id}/deactivate`); },\n removeLink(id: string) { return c.del<void>(`/payments/links/${id}`); },\n createProduct(data: Record<string, unknown>) { return c.post<unknown>('/payments/products', data); },\n listProducts(params?: PaginatedQuery) { return c.paginated<unknown>('/payments/products', params); },\n getProduct(id: string) { return c.get<unknown>(`/payments/products/${id}`); },\n updateProduct(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/payments/products/${id}`, data); },\n removeProduct(id: string) { return c.del<void>(`/payments/products/${id}`); },\n },\n\n // ─── Property (Admin) ────────────────────────────────────────────\n\n property: {\n getTypes() { return c.get<unknown[]>('/property/types'); },\n getType(id: string) { return c.get<unknown>(`/property/types/${id}`); },\n createType(data: Record<string, unknown>) { return c.post<unknown>('/property/types', data); },\n updateType(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/property/types/${id}`, data); },\n removeType(id: string) { return c.del<void>(`/property/types/${id}`); },\n setAmenities(typeId: string, data: SetPropertyTypeAmenitiesDto) { return c.put<void>(`/property/types/${typeId}/amenities`, data); },\n getUnits() { return c.get<unknown[]>('/property/units'); },\n createUnit(data: Record<string, unknown>) { return c.post<unknown>('/property/units', data); },\n updateUnit(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/property/units/${id}`, data); },\n updateHousekeeping(id: string, data: UpdateHousekeepingDto) { return c.patch<unknown>(`/property/units/${id}/housekeeping`, data); },\n getAmenities() { return c.get<unknown[]>('/property/amenities'); },\n createAmenity(data: CreatePropertyAmenityDto) { return c.post<unknown>('/property/amenities', data); },\n listBookings(params?: StatusQuery) { return c.paginated<unknown>('/property/bookings', params); },\n getBooking(id: string) { return c.get<unknown>(`/property/bookings/${id}`); },\n updateBooking(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/property/bookings/${id}`, data); },\n checkIn(id: string) { return c.post<void>(`/property/bookings/${id}/check-in`); },\n checkOut(id: string) { return c.post<void>(`/property/bookings/${id}/check-out`); },\n cancelBooking(id: string, data?: AdminCancelBookingDto) { return c.post<unknown>(`/property/bookings/${id}/cancel`, data); },\n assignUnits(id: string, data: AssignPropertyUnitsDto) { return c.post<void>(`/property/bookings/${id}/assign-units`, data); },\n availability(params: Record<string, unknown>) { return c.get<unknown[]>(`/property/inventory/availability${toQsInline(params)}`); },\n calendar(params: Record<string, unknown>) { return c.get<unknown[]>(`/property/inventory/calendar${toQsInline(params)}`); },\n blockDates(data: Record<string, unknown>) { return c.post<void>('/property/inventory/block', data); },\n createHold(data: Record<string, unknown>) { return c.post<unknown>('/property/inventory/hold', data); },\n listPricingRules() { return c.get<unknown[]>('/property/pricing'); },\n createPricingRule(data: Record<string, unknown>) { return c.post<unknown>('/property/pricing', data); },\n updatePricingRule(id: string, data: Record<string, unknown>) { return c.patch<unknown>(`/property/pricing/${id}`, data); },\n removePricingRule(id: string) { return c.del<void>(`/property/pricing/${id}`); },\n resolvePrice(data: Record<string, unknown>) { return c.post<unknown>('/property/pricing/resolve', data); },\n },\n\n // ─── POS ─────────────────────────────────────────────────────────\n\n pos: {\n sync() { return c.post<void>('/pos/sync'); },\n logs(params?: PaginatedQuery) { return c.paginated<unknown>('/pos/logs', params); },\n },\n\n // ─── Upload ──────────────────────────────────────────────────────\n\n upload(file: File | Blob, folder?: string) {\n const formData = new FormData();\n formData.append('file', file);\n if (folder) formData.append('folder', folder);\n return c.upload<UploadResult>('/upload', formData);\n },\n\n // ─── Student Passes (Admin) ──────────────────────────────────────\n\n studentPasses: {\n list(params?: ListStudentPassesQuery) { return c.paginated<StudentPassStatus>('/student-passes', params); },\n get(id: string) { return c.get<StudentPassStatus>(`/student-passes/${id}`); },\n review(id: string, data: ReviewStudentPassDto) { return c.patch<StudentPassStatus>(`/student-passes/${id}`, data); },\n bulkReview(data: BulkReviewStudentPassesDto) { return c.patch<void>('/student-passes', data); },\n stats() { return c.get<Record<string, unknown>>('/student-passes/stats'); },\n },\n\n // ─── Student Discounts (Admin) ───────────────────────────────────\n\n studentDiscounts: {\n list(params?: PaginatedQuery) { return c.paginated<StudentDiscount>('/student-discounts', params); },\n get(id: string) { return c.get<StudentDiscount>(`/student-discounts/${id}`); },\n create(data: CreateStudentDiscountDto) { return c.post<StudentDiscount>('/student-discounts', data); },\n update(id: string, data: UpdateStudentDiscountDto) { return c.patch<StudentDiscount>(`/student-discounts/${id}`, data); },\n remove(id: string) { return c.del<void>(`/student-discounts/${id}`); },\n },\n\n // ─── Institutions (Admin) ────────────────────────────────────────\n\n institutions: {\n list(params?: PaginatedQuery) { return c.paginated<Institution>('/institutions', params); },\n get(id: string) { return c.get<Institution>(`/institutions/${id}`); },\n create(data: CreateInstitutionDto) { return c.post<Institution>('/institutions', data); },\n update(id: string, data: UpdateInstitutionDto) { return c.patch<Institution>(`/institutions/${id}`, data); },\n remove(id: string) { return c.del<void>(`/institutions/${id}`); },\n },\n\n // ─── Inventory (Admin) ───────────────────────────────────────────\n\n inventory: {\n list(params?: PaginatedQuery) { return c.paginated<Ingredient>('/inventory', params); },\n get(id: string) { return c.get<Ingredient>(`/inventory/${id}`); },\n create(data: CreateIngredientDto) { return c.post<Ingredient>('/inventory', data); },\n update(id: string, data: UpdateIngredientDto) { return c.patch<Ingredient>(`/inventory/${id}`, data); },\n remove(id: string) { return c.del<void>(`/inventory/${id}`); },\n alerts: {\n list() { return c.get<StockAlert[]>('/inventory/alerts'); },\n resolve(id: string) { return c.patch<StockAlert>(`/inventory/alerts/${id}`, { isResolved: true }); },\n },\n waste: {\n list() { return c.get<WasteLog[]>('/inventory/waste'); },\n create(data: CreateWasteLogDto) { return c.post<WasteLog>('/inventory/waste', data); },\n },\n },\n\n // ─── Suppliers (Admin) ────────────────────────────────────────────\n\n suppliers: {\n list(params?: PaginatedQuery) { return c.paginated<Supplier>('/suppliers', params); },\n get(id: string) { return c.get<Supplier>(`/suppliers/${id}`); },\n create(data: CreateSupplierDto) { return c.post<Supplier>('/suppliers', data); },\n update(id: string, data: UpdateSupplierDto) { return c.patch<Supplier>(`/suppliers/${id}`, data); },\n remove(id: string) { return c.del<void>(`/suppliers/${id}`); },\n },\n\n // ─── Purchase Orders (Admin) ──────────────────────────────────────\n\n purchaseOrders: {\n list(params?: QueryPurchaseOrdersParams) { return c.paginated<PurchaseOrder>('/purchase-orders', params); },\n get(id: string) { return c.get<PurchaseOrder>(`/purchase-orders/${id}`); },\n create(data: CreatePurchaseOrderDto) { return c.post<PurchaseOrder>('/purchase-orders', data); },\n update(id: string, data: UpdatePurchaseOrderDto) { return c.patch<PurchaseOrder>(`/purchase-orders/${id}`, data); },\n remove(id: string) { return c.del<void>(`/purchase-orders/${id}`); },\n },\n\n // ─── Meal Subscriptions (Admin) ───────────────────────────────────\n\n mealSubscriptions: {\n list(params?: QueryMealSubscriptionsParams) { return c.paginated<AdminMealSubscription>('/subscriptions', params); },\n get(id: string) { return c.get<AdminMealSubscription>(`/subscriptions/${id}`); },\n },\n\n // ─── Meal Plans (Admin) ──────────────────────────────────────────\n\n mealPlans: {\n list(params?: PaginatedQuery) { return c.paginated<MealPlan>('/meal-plans', params); },\n get(id: string) { return c.get<MealPlan>(`/meal-plans/${id}`); },\n create(data: CreateMealPlanDto) { return c.post<MealPlan>('/meal-plans', data); },\n update(id: string, data: UpdateMealPlanDto) { return c.patch<MealPlan>(`/meal-plans/${id}`, data); },\n remove(id: string) { return c.del<void>(`/meal-plans/${id}`); },\n },\n\n // ─── Help Articles (Admin) ───────────────────────────────────────\n\n helpArticles: {\n list(params?: PaginatedQuery) { return c.paginated<HelpArticle>('/help', params); },\n get(id: string) { return c.get<HelpArticle>(`/help/${id}`); },\n create(data: CreateHelpArticleDto) { return c.post<HelpArticle>('/help', data); },\n update(id: string, data: UpdateHelpArticleDto) { return c.patch<HelpArticle>(`/help/${id}`, data); },\n remove(id: string) { return c.del<void>(`/help/${id}`); },\n },\n };\n}\n\nfunction toQsInline(params: Record<string, unknown>): string {\n const entries = Object.entries(params)\n .filter(([, v]) => v !== undefined && v !== null)\n .map(([k, v]) => [k, String(v)]);\n return entries.length ? '?' + new URLSearchParams(entries).toString() : '';\n}\n","import type { TZClient, ScopedClient } from '../client';\nimport type { SuperAdminStats, SuperAdmin, AdminOrganization, PlatformPlan, AuditLog } from '../types';\nimport type { SuperAdminLoginDto, ListSuperAdminsQuery, CreateSuperAdminDto, ListOrganizationsQuery } from '../dto';\nimport type { PaginatedQuery } from '../dto';\n\nexport function createSuperAdmin(root: TZClient, c: ScopedClient) {\n return {\n // ─── Auth ────────────────────────────────────────────────────────\n\n auth: {\n login(data: SuperAdminLoginDto) {\n return root.rawRequest<{ accessToken: string }>('POST', '/admin/login', { body: data, scope: 'public', sendOrgKey: false })\n .then((r) => { root.saveSuperAdminToken(r.data.accessToken); return r.data; });\n },\n getToken: () => root.getSuperAdminToken(),\n clearToken: () => root.clearSuperAdminToken(),\n },\n\n // ─── Dashboard ───────────────────────────────────────────────────\n\n stats() { return c.get<SuperAdminStats>('/admin/stats'); },\n\n // ─── Super Admins ────────────────────────────────────────────────\n\n admins: {\n list(params?: ListSuperAdminsQuery) { return c.paginated<SuperAdmin>('/admin/super-admins', params); },\n create(data: CreateSuperAdminDto) { return c.post<SuperAdmin>('/admin/super-admins', data); },\n },\n\n // ─── Organizations ───────────────────────────────────────────────\n\n orgs: {\n list(params?: ListOrganizationsQuery) { return c.paginated<AdminOrganization>('/admin/orgs', params); },\n get(id: string) { return c.get<AdminOrganization>(`/admin/orgs/${id}`); },\n getBySlug(slug: string) { return c.get<AdminOrganization>(`/admin/orgs/slug/${slug}`); },\n create(data: Record<string, unknown>) { return c.post<AdminOrganization>('/admin/orgs', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<AdminOrganization>(`/admin/orgs/${id}`, data); },\n remove(id: string) { return c.del<void>(`/admin/orgs/${id}`); },\n suspend(id: string) { return c.post<void>(`/admin/orgs/${id}/suspend`); },\n reinstate(id: string) { return c.post<void>(`/admin/orgs/${id}/reinstate`); },\n regenerateKey(id: string) { return c.post<{ orgKey: string }>(`/admin/orgs/${id}/regenerate-key`); },\n impersonate(id: string) { return c.post<{ accessToken: string; refreshToken: string }>(`/admin/orgs/${id}/impersonate`); },\n },\n\n // ─── Org Config ──────────────────────────────────────────────────\n\n orgConfig: {\n get(orgId: string) { return c.get<Record<string, unknown>>(`/admin/orgs/${orgId}/config`); },\n update(orgId: string, data: Record<string, unknown>) { return c.patch<void>(`/admin/orgs/${orgId}/config`, data); },\n test(orgId: string, group: string) { return c.post<unknown>(`/admin/orgs/${orgId}/config/test/${group}`); },\n reset(orgId: string, group: string) { return c.post<void>(`/admin/orgs/${orgId}/config/reset/${group}`); },\n },\n\n // ─── Platform Config ─────────────────────────────────────────────\n\n platformConfig: {\n get() { return c.get<Record<string, unknown>>('/admin/platform-config'); },\n update(data: Record<string, unknown>) { return c.patch<void>('/admin/platform-config', data); },\n test(group: string) { return c.post<unknown>(`/admin/platform-config/test/${group}`); },\n },\n\n // ─── Plans ───────────────────────────────────────────────────────\n\n plans: {\n create(data: Record<string, unknown>) { return c.post<PlatformPlan>('/admin/plans', data); },\n update(id: string, data: Record<string, unknown>) { return c.patch<PlatformPlan>(`/admin/plans/${id}`, data); },\n },\n\n // ─── Invoices ────────────────────────────────────────────────────\n\n invoices: {\n list(params?: PaginatedQuery) { return c.paginated<unknown>('/admin/invoices', params); },\n markPaid(id: string) { return c.patch<void>(`/admin/invoices/${id}`); },\n },\n\n // ─── Usage ───────────────────────────────────────────────────────\n\n usage() { return c.get<unknown>('/admin/usage'); },\n\n // ─── Audit ───────────────────────────────────────────────────────\n\n audit(params?: PaginatedQuery) { return c.paginated<AuditLog>('/admin/audit', params); },\n\n // ─── Movies (Super Admin) ────────────────────────────────────────\n\n movies: {\n create(data: Record<string, unknown>) { return c.post<unknown>('/admin/movies', data); },\n listStreamMappings() { return c.get<unknown[]>('/admin/movies/stream-mappings'); },\n upsertStreamMapping(data: Record<string, unknown>) { return c.post<unknown>('/admin/movies/stream-mappings', data); },\n removeStreamMapping(tmdbId: number) { return c.del<void>(`/admin/movies/stream-mappings/${tmdbId}`); },\n },\n };\n}\n","/**\n * @techzunction/sdk\n *\n * Centralized API client for all TechZunction frontend projects.\n * One-time init. Zero prefix repetition. Rich query objects on every call.\n *\n * ─── Quick Start ──────────────────────────────────────────────────────\n *\n * import { TZ } from '@techzunction/sdk';\n *\n * // Auto-reads TZ_ORG_ID, TZ_ORG_KEY from env. Auto-detects prod vs dev URL.\n * TZ.init();\n *\n * // OR explicit:\n * TZ.init({ orgSlug: 'babyburger', orgKey: 'tz_abc123', env: 'dev' });\n *\n * // Pre-login (PUBLIC — no token needed)\n * await TZ.storefront.auth.sendOtp({ identifier: '+91...' });\n * const config = await TZ.storefront.config.get();\n *\n * // Post-login (ENDUSER — token auto-attached after login/verify)\n * const { user } = await TZ.storefront.auth.verifyOtp({ identifier: '+91...', otp: '1234' });\n * const cart = await TZ.storefront.cart.get();\n *\n * // Rich query object\n * const q = TZ.storefront.catalog.getItems({ page: 1, limit: 20 });\n * const items = await q; // await directly\n * q.cancel(); // abort in-flight\n * const q2 = q.refetch(); // re-execute\n * const nextPage = q.next(); // next page\n * const raw = await q.raw(); // raw JSON before unwrap\n * const status = await q.status(); // HTTP status code\n *\n * // Admin (staff JWT)\n * await TZ.admin.auth.login({ email: '...', password: '...' });\n * const users = await TZ.admin.users.list({ page: 1 });\n *\n * // Super Admin\n * await TZ.superAdmin.auth.login({ email: '...', password: '...' });\n * const stats = await TZ.superAdmin.stats();\n */\n\nimport { TZClient, type ScopedClient } from './client';\nimport { createStorefront } from './storefront';\nimport { createAdmin } from './admin';\nimport { createSuperAdmin } from './super-admin';\nimport type { TZConfig, TokenStore } from './types';\n\n// ─── Environment Detection ──────────────────────────────────────────────────\n\nconst PROD_URL = 'https://api.techzunction.com';\nconst DEV_URL = 'https://dev-api.techzunction.com';\n\ntype TZEnv = 'production' | 'dev' | 'custom';\n\nfunction resolveBaseUrl(env?: TZEnv, customUrl?: string): string {\n if (customUrl) return customUrl;\n if (env === 'production') return PROD_URL;\n return DEV_URL;\n}\n\nfunction readEnv(key: string): string | undefined {\n // Works in Node, Next.js, Vite, Expo\n if (typeof process !== 'undefined' && process.env) {\n // Next.js: NEXT_PUBLIC_*, Node: any env\n return (process.env as Record<string, string | undefined>)[key]\n ?? (process.env as Record<string, string | undefined>)[`NEXT_PUBLIC_${key}`]\n ?? (process.env as Record<string, string | undefined>)[`VITE_${key}`]\n ?? (process.env as Record<string, string | undefined>)[`EXPO_PUBLIC_${key}`];\n }\n // Vite client-side\n if (typeof import.meta !== 'undefined' && (import.meta as unknown as { env?: Record<string, string> }).env) {\n const env = (import.meta as unknown as { env: Record<string, string> }).env;\n return env[key] ?? env[`VITE_${key}`];\n }\n return undefined;\n}\n\nfunction detectEnv(): TZEnv {\n const nodeEnv = readEnv('NODE_ENV');\n if (nodeEnv === 'production') return 'production';\n return 'dev';\n}\n\n// ─── Init Options ───────────────────────────────────────────────────────────\n\nexport interface TZInitOptions {\n /** Organization slug. Falls back to TZ_ORG_ID env var. */\n orgSlug?: string;\n /** Storefront publishable key. Falls back to TZ_ORG_KEY env var. */\n orgKey?: string;\n /** Environment: 'production' | 'dev'. Auto-detected from NODE_ENV if omitted. */\n env?: TZEnv;\n /** Custom backend URL (overrides env-based URL). Falls back to TZ_API_URL env var. */\n baseUrl?: string;\n /** Storage key prefix (default: \"tz\"). Useful to avoid collisions between projects. */\n keyPrefix?: string;\n /** Custom token store (defaults to localStorage). */\n tokenStore?: TokenStore;\n /** Called when tokens expire and refresh fails — use for redirect to login. */\n onAuthExpired?: () => void;\n}\n\n// ─── Singleton TZ ───────────────────────────────────────────────────────────\n\nlet _client: TZClient | null = null;\nlet _sf: ScopedClient | null = null;\nlet _admin: ScopedClient | null = null;\nlet _sa: ScopedClient | null = null;\nlet _storefront: ReturnType<typeof createStorefront> | null = null;\nlet _adminNs: ReturnType<typeof createAdmin> | null = null;\nlet _superAdmin: ReturnType<typeof createSuperAdmin> | null = null;\n\nfunction ensureInit() {\n if (!_client) throw new Error('TZ.init() must be called before using the SDK.');\n}\n\n/**\n * TechZunction SDK — Global singleton.\n *\n * Call `TZ.init()` once at app startup. Then use `TZ.storefront.*`, `TZ.admin.*`, `TZ.superAdmin.*`.\n */\nexport const TZ = {\n /**\n * Initialize the SDK. Call once at app startup.\n *\n * Auto-reads env vars:\n * TZ_ORG_ID / NEXT_PUBLIC_TZ_ORG_ID → orgSlug\n * TZ_ORG_KEY / NEXT_PUBLIC_TZ_ORG_KEY → orgKey (storefront publishable key)\n * TZ_API_URL / NEXT_PUBLIC_TZ_API_URL → custom backend URL\n * NODE_ENV → 'production' uses api.techzunction.com, else dev-api\n */\n init(options: TZInitOptions = {}) {\n const orgSlug = options.orgSlug ?? readEnv('TZ_ORG_ID') ?? '';\n const orgKey = options.orgKey ?? readEnv('TZ_ORG_KEY');\n const env = options.env ?? detectEnv();\n const baseUrl = options.baseUrl ?? readEnv('TZ_API_URL') ?? resolveBaseUrl(env);\n\n if (!orgSlug) {\n console.warn('[TZ SDK] No orgSlug provided and TZ_ORG_ID env var not found. Set it in .env or pass to TZ.init().');\n }\n\n const config: TZConfig = {\n baseUrl,\n orgSlug,\n orgKey,\n keyPrefix: options.keyPrefix ?? 'tz',\n tokenStore: options.tokenStore,\n onAuthExpired: options.onAuthExpired,\n };\n\n _client = new TZClient(config);\n\n // Storefront: prefix=/storefront, default scope=public, sends X-Org-Key\n _sf = _client.scoped('/storefront', 'public', true);\n // Admin: no prefix (routes are /users, /roles, etc.), default scope=staff, no X-Org-Key\n _admin = _client.scoped('', 'staff', false);\n // Super Admin: no prefix (routes are /admin/*), default scope=superadmin, no X-Org-Key\n _sa = _client.scoped('', 'superadmin', false);\n\n // Reset cached namespaces\n _storefront = null;\n _adminNs = null;\n _superAdmin = null;\n },\n\n /** The raw TZClient instance (for advanced use) */\n get client(): TZClient {\n ensureInit();\n return _client!;\n },\n\n /** Storefront namespace — all end-user-facing APIs */\n get storefront() {\n ensureInit();\n if (!_storefront) _storefront = createStorefront(_sf!);\n return _storefront;\n },\n\n /** Admin namespace — all staff/org-admin APIs */\n get admin() {\n ensureInit();\n if (!_adminNs) _adminNs = createAdmin(_client!, _admin!);\n return _adminNs;\n },\n\n /** Super Admin namespace — platform-wide management APIs */\n get superAdmin() {\n ensureInit();\n if (!_superAdmin) _superAdmin = createSuperAdmin(_client!, _sa!);\n return _superAdmin;\n },\n\n /** GET /health — Basic health check (PUBLIC) */\n health() {\n ensureInit();\n return _admin!.get<{ status: string }>('/health', 'public');\n },\n\n /** GET /health/detailed — Detailed health check with dependency status (USER) */\n healthDetailed() {\n ensureInit();\n return _admin!.get<{ status: string; database: string; redis: string }>('/health/detailed');\n },\n};\n\n// ─── Also export createTZ for non-singleton usage ────────────────────────────\n\nexport function createTZ(options: TZInitOptions = {}) {\n const orgSlug = options.orgSlug ?? readEnv('TZ_ORG_ID') ?? '';\n const orgKey = options.orgKey ?? readEnv('TZ_ORG_KEY');\n const env = options.env ?? detectEnv();\n const baseUrl = options.baseUrl ?? readEnv('TZ_API_URL') ?? resolveBaseUrl(env);\n\n const client = new TZClient({\n baseUrl,\n orgSlug,\n orgKey,\n keyPrefix: options.keyPrefix ?? 'tz',\n tokenStore: options.tokenStore,\n onAuthExpired: options.onAuthExpired,\n });\n\n const sf = client.scoped('/storefront', 'public', true);\n const admin = client.scoped('', 'staff', false);\n const sa = client.scoped('', 'superadmin', false);\n\n return {\n client,\n storefront: createStorefront(sf),\n admin: createAdmin(client, admin),\n superAdmin: createSuperAdmin(client, sa),\n health: () => admin.get<{ status: string }>('/health', 'public'),\n healthDetailed: () => admin.get<{ status: string; database: string; redis: string }>('/health/detailed'),\n };\n}\n\n// ─── Re-exports ─────────────────────────────────────────────────────────────\n\nexport { TZQuery, TZPaginatedQuery } from './query';\nexport type { RawResponse } from './query';\nexport { TZClient, ScopedClient } from './client';\nexport type { AuthScope } from './client';\n\n// ─── DTO types (request shapes) ─────────────────────────────────────────────\nexport type * from './dto';\nexport type {\n TZConfig,\n TokenStore,\n ApiError,\n PaginationParams,\n PaginatedResponse,\n // Auth\n AuthTokens,\n EndUser,\n EndUserProfile,\n AuthResponse,\n StaffUser,\n StaffAuthResponse,\n // Catalog\n CatalogCategory,\n CatalogItem,\n CatalogItemVariant,\n CatalogOptionGroup,\n CatalogOption,\n // Cart\n Cart,\n CartLineItem,\n CartItemOption,\n // Orders\n Order,\n OrderItem,\n OrderType,\n PaymentMethod,\n OrderStatus,\n // Payments\n PaymentOrder,\n PaymentVerification,\n // Locations\n StoreLocation,\n LocationHours,\n // Delivery\n DeliveryCalculation,\n DeliveryTracking,\n // Loyalty\n LoyaltyAccount,\n LoyaltyTransaction,\n LoyaltyReward,\n LoyaltyRedemption,\n // Coupons\n CouponValidation,\n // Promotions\n Promotion,\n // Referrals\n ReferralInfo,\n ReferralValidation,\n // Reviews\n Review,\n // Gift Cards\n GiftCard,\n // Reservations\n ReservationSlot,\n Reservation,\n // Support\n SupportTicket,\n SupportReply,\n // Content\n ContentPost,\n // Addresses\n Address,\n // Notifications\n Notification,\n // Property\n PropertyType,\n PropertyBooking,\n PropertyAvailability,\n PropertyPriceResolution,\n // Movies\n Movie,\n MovieDetail,\n TmdbMovie,\n TmdbMovieDetail,\n // Wallet\n WalletPack,\n WalletBalance,\n WalletTransaction,\n // Watch Sessions (PPM)\n WatchSessionStatusType,\n WatchSessionResponse,\n WatchSessionStatus,\n WatchSessionSummary,\n // Upload\n UploadResult,\n // Contact\n ContactMessage,\n // Config\n StorefrontConfig,\n // Student\n StudentPassStatus,\n StudentDiscount,\n DiscountPreview,\n Institution,\n // Inventory & Supply Chain\n Ingredient,\n StockAlert,\n WasteLog,\n Supplier,\n PurchaseOrder,\n PurchaseOrderItem,\n AdminMealSubscription,\n // Meal Plans\n MealPlan,\n MealSubscription,\n // Help\n HelpArticle,\n // WatchRoom\n WatchRoomStatus,\n WatchRoomPrivacy,\n WatchRoomVibe,\n WatchRoomViewerMode,\n WatchRoom,\n WatchRoomViewer,\n WatchRoomMessage,\n WatchRoomPlaybackState,\n WatchRoomJoinResponse,\n // Host Earnings\n HostEarning,\n EarningsSummary,\n // Connected Sources\n ConnectedSource,\n GoogleDriveConnectUrl,\n // Admin\n AdminOrganization,\n Role,\n AuditLog,\n ApiKey,\n // Super Admin\n SuperAdminStats,\n SuperAdmin as SuperAdminUser,\n PlatformPlan,\n} from './types';\n"]}