@cronvello/shop-sdk 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generated/api/base/routes.api.ts","../src/generated/api/base/routes.app_info.ts","../src/generated/api/features/routes.assigned_entitlements.ts","../src/generated/api/features/routes.attribute_assignments.ts","../src/generated/api/features/routes.attribute_categories.ts","../src/generated/api/features/routes.attribute_options.ts","../src/generated/api/features/routes.attributes.ts","../src/generated/api/features/routes.b2b.ts","../src/generated/api/features/routes.brands.ts","../src/generated/api/features/routes.credits.ts","../src/generated/api/features/routes.customers.ts","../src/generated/api/features/routes.data_exchange.ts","../src/generated/api/features/routes.designs.ts","../src/generated/api/features/routes.discount_codes.ts","../src/generated/api/features/routes.entitlement_limits.ts","../src/generated/api/base/routes.entitlements.ts","../src/generated/api/features/routes.events.ts","../src/generated/api/features/routes.external_apps.ts","../src/generated/api/features/routes.fulfillment.ts","../src/generated/api/features/routes.iap.ts","../src/generated/api/features/routes.invoices.ts","../src/generated/api/features/routes.item_variants.ts","../src/generated/api/features/routes.lager_inventory.ts","../src/generated/api/features/routes.logs.ts","../src/generated/api/features/routes.media_sets.ts","../src/generated/api/features/routes.oauth2.ts","../src/generated/api/features/routes.orders.ts","../src/generated/api/features/routes.payments.ts","../src/generated/api/features/routes.paypal.ts","../src/generated/api/base/routes.permissions.ts","../src/generated/api/features/routes.product_categories.ts","../src/generated/api/features/routes.product_items.ts","../src/generated/api/features/routes.products.ts","../src/generated/api/base/routes.roles.ts","../src/generated/api/features/routes.sender_brands.ts","../src/generated/api/base/routes.settings.ts","../src/generated/api/features/routes.status_changes.ts","../src/generated/api/features/routes.stripe.ts","../src/generated/api/features/routes.subscriptions.ts","../src/generated/api/features/routes.suppliers.ts","../src/generated/api/features/routes.tickets.ts","../src/generated/api/features/routes.translations.ts","../src/generated/api/features/routes.usage_reports.ts","../src/generated/api/base/routes.user_activity.ts","../src/generated/api/base/routes.users.ts","../src/generated/api/features/routes.variant_entitlements.ts","../src/generated/api/base/routes.webhooks.ts","../src/generated/api/index.ts","../src/constants.ts","../src/client/error.ts","../src/client/url.ts","../src/client/client.ts","../src/browser.ts"],"names":[],"mappings":"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","file":"browser.cjs","sourcesContent":["// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nexport type GETApiAmpProxyDiscoverParams = undefined;\nexport type GETApiAmpProxyDiscoverQuery = import(\"../types\").ContractNotReady<\"Query not typed yet. Add DTO + validate({ query }) to the route (or explicitly declare none).\">;\nexport type GETApiAmpProxyDiscoverBody = undefined;\nexport type GETApiAmpProxyDiscoverResponseData = import(\"../types\").ContractNotReady<\"Response type not ready. Use typeRef(\\\"...\\\") (preferred) or a concrete Zod schema for responses[].data.\">;\nexport type GETApiAmpProxyDiscoverResponse = import(\"../types\").ApiEnvelope<GETApiAmpProxyDiscoverResponseData>;\n\nexport type GETApiAmpProxyKeyParams = import(\"../types\").ContractNotReady<\"Params not typed yet. Add DTO + validate({ params }) to the route.\">;\nexport type GETApiAmpProxyKeyQuery = import(\"../types\").ContractNotReady<\"Query not typed yet. Add DTO + validate({ query }) to the route (or explicitly declare none).\">;\nexport type GETApiAmpProxyKeyBody = undefined;\nexport type GETApiAmpProxyKeyResponseData = import(\"../types\").ContractNotReady<\"Response type not ready. Use typeRef(\\\"...\\\") (preferred) or a concrete Zod schema for responses[].data.\">;\nexport type GETApiAmpProxyKeyResponse = import(\"../types\").ApiEnvelope<GETApiAmpProxyKeyResponseData>;\n\nexport type POSTApiAmpProxyKeyParams = import(\"../types\").ContractNotReady<\"Params not typed yet. Add DTO + validate({ params }) to the route.\">;\nexport type POSTApiAmpProxyKeyQuery = import(\"../types\").ContractNotReady<\"Query not typed yet. Add DTO + validate({ query }) to the route (or explicitly declare none).\">;\nexport type POSTApiAmpProxyKeyBody = import(\"../types\").ContractNotReady<\"Body not typed yet. Add DTO + validate({ body }) or contract({ request: ... }) to the route.\">;\nexport type POSTApiAmpProxyKeyResponseData = import(\"../types\").ContractNotReady<\"Response type not ready. Use typeRef(\\\"...\\\") (preferred) or a concrete Zod schema for responses[].data.\">;\nexport type POSTApiAmpProxyKeyResponse = import(\"../types\").ApiEnvelope<POSTApiAmpProxyKeyResponseData>;\n\nexport type PUTApiAmpProxyKeyParams = import(\"../types\").ContractNotReady<\"Params not typed yet. Add DTO + validate({ params }) to the route.\">;\nexport type PUTApiAmpProxyKeyQuery = import(\"../types\").ContractNotReady<\"Query not typed yet. Add DTO + validate({ query }) to the route (or explicitly declare none).\">;\nexport type PUTApiAmpProxyKeyBody = import(\"../types\").ContractNotReady<\"Body not typed yet. Add DTO + validate({ body }) or contract({ request: ... }) to the route.\">;\nexport type PUTApiAmpProxyKeyResponseData = import(\"../types\").ContractNotReady<\"Response type not ready. Use typeRef(\\\"...\\\") (preferred) or a concrete Zod schema for responses[].data.\">;\nexport type PUTApiAmpProxyKeyResponse = import(\"../types\").ApiEnvelope<PUTApiAmpProxyKeyResponseData>;\n\nexport type DELETEApiAmpProxyKeyParams = import(\"../types\").ContractNotReady<\"Params not typed yet. Add DTO + validate({ params }) to the route.\">;\nexport type DELETEApiAmpProxyKeyQuery = import(\"../types\").ContractNotReady<\"Query not typed yet. Add DTO + validate({ query }) to the route (or explicitly declare none).\">;\nexport type DELETEApiAmpProxyKeyBody = undefined;\nexport type DELETEApiAmpProxyKeyResponseData = import(\"../types\").ContractNotReady<\"Response type not ready. Use typeRef(\\\"...\\\") (preferred) or a concrete Zod schema for responses[].data.\">;\nexport type DELETEApiAmpProxyKeyResponse = import(\"../types\").ApiEnvelope<DELETEApiAmpProxyKeyResponseData>;\n\nexport const apiRoutes_api = {\n \"GET__api_amp_proxy__discover\": {\n method: \"GET\",\n path: \"/api/amp-proxy/_discover\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"api\"],\n },\n types: null as unknown as {\n params: GETApiAmpProxyDiscoverParams;\n query: GETApiAmpProxyDiscoverQuery;\n body: GETApiAmpProxyDiscoverBody;\n response: GETApiAmpProxyDiscoverResponse;\n responseData: GETApiAmpProxyDiscoverResponseData;\n },\n },\n \"GET__api_amp_proxy_key\": {\n method: \"GET\",\n path: \"/api/amp-proxy/:key\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"api\"],\n },\n types: null as unknown as {\n params: GETApiAmpProxyKeyParams;\n query: GETApiAmpProxyKeyQuery;\n body: GETApiAmpProxyKeyBody;\n response: GETApiAmpProxyKeyResponse;\n responseData: GETApiAmpProxyKeyResponseData;\n },\n },\n \"POST__api_amp_proxy_key\": {\n method: \"POST\",\n path: \"/api/amp-proxy/:key\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"api\"],\n },\n types: null as unknown as {\n params: POSTApiAmpProxyKeyParams;\n query: POSTApiAmpProxyKeyQuery;\n body: POSTApiAmpProxyKeyBody;\n response: POSTApiAmpProxyKeyResponse;\n responseData: POSTApiAmpProxyKeyResponseData;\n },\n },\n \"PUT__api_amp_proxy_key\": {\n method: \"PUT\",\n path: \"/api/amp-proxy/:key\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"api\"],\n },\n types: null as unknown as {\n params: PUTApiAmpProxyKeyParams;\n query: PUTApiAmpProxyKeyQuery;\n body: PUTApiAmpProxyKeyBody;\n response: PUTApiAmpProxyKeyResponse;\n responseData: PUTApiAmpProxyKeyResponseData;\n },\n },\n \"DELETE__api_amp_proxy_key\": {\n method: \"DELETE\",\n path: \"/api/amp-proxy/:key\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"api\"],\n },\n types: null as unknown as {\n params: DELETEApiAmpProxyKeyParams;\n query: DELETEApiAmpProxyKeyQuery;\n body: DELETEApiAmpProxyKeyBody;\n response: DELETEApiAmpProxyKeyResponse;\n responseData: DELETEApiAmpProxyKeyResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nexport type AppInfoHealthParams = undefined;\nexport type AppInfoHealthQuery = undefined;\nexport type AppInfoHealthBody = undefined;\nexport type AppInfoHealthResponseData = {\n status: string;\n timestamp: string;\n uptime: number;\n};\nexport type AppInfoHealthResponse = import(\"../types\").ApiEnvelope<AppInfoHealthResponseData>;\n\nexport type AppInfoManifestParams = undefined;\nexport type AppInfoManifestQuery = undefined;\nexport type AppInfoManifestBody = undefined;\nexport type AppInfoManifestResponseData = import(\"../types\").ContractNotReady<\"Response type not ready. Use typeRef(\\\"...\\\") (preferred) or a concrete Zod schema for responses[].data.\">;\nexport type AppInfoManifestResponse = import(\"../types\").ApiEnvelope<AppInfoManifestResponseData>;\n\nexport type AppInfoGetParams = undefined;\nexport type AppInfoGetQuery = {\n\n};\nexport type AppInfoGetBody = undefined;\nexport type AppInfoGetResponseData = {\n plannerUser: any;\n plannerUsers?: Array<any>;\n userRoles: Array<any>;\n appId: string;\n};\nexport type AppInfoGetResponse = AppInfoGetResponseData;\n\nexport type AppInfoOwnPermissionsGetParams = undefined;\nexport type AppInfoOwnPermissionsGetQuery = {\n\n};\nexport type AppInfoOwnPermissionsGetBody = undefined;\nexport type AppInfoOwnPermissionsGetResponseData = Array<any>;\nexport type AppInfoOwnPermissionsGetResponse = AppInfoOwnPermissionsGetResponseData;\n\nexport type AppInfoFiltersGetParams = undefined;\nexport type AppInfoFiltersGetQuery = {\n\n};\nexport type AppInfoFiltersGetBody = undefined;\nexport type AppInfoFiltersGetResponseData = Array<any>;\nexport type AppInfoFiltersGetResponse = AppInfoFiltersGetResponseData;\n\nexport const apiRoutes_app_info = {\n \"app_info_health\": {\n method: \"GET\",\n path: \"/app-info/health\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"app-info\"],\n summary: \"Health check\",\n validated: {\"params\":false,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: AppInfoHealthParams;\n query: AppInfoHealthQuery;\n body: AppInfoHealthBody;\n response: AppInfoHealthResponse;\n responseData: AppInfoHealthResponseData;\n },\n },\n \"app_info_manifest\": {\n method: \"GET\",\n path: \"/app-info/manifest\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"app-info\"],\n summary: \"AMP App Manifest\",\n validated: {\"params\":false,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: AppInfoManifestParams;\n query: AppInfoManifestQuery;\n body: AppInfoManifestBody;\n response: AppInfoManifestResponse;\n responseData: AppInfoManifestResponseData;\n },\n },\n \"app_info_get\": {\n method: \"GET\",\n path: \"/app-info\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"app-info\"],\n summary: \"Get app info for current user\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AppInfoGetParams;\n query: AppInfoGetQuery;\n body: AppInfoGetBody;\n response: AppInfoGetResponse;\n responseData: AppInfoGetResponseData;\n },\n },\n \"app_info_own_permissions_get\": {\n method: \"GET\",\n path: \"/app-info/ownPermissions\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"app-info\"],\n summary: \"Get own permissions\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AppInfoOwnPermissionsGetParams;\n query: AppInfoOwnPermissionsGetQuery;\n body: AppInfoOwnPermissionsGetBody;\n response: AppInfoOwnPermissionsGetResponse;\n responseData: AppInfoOwnPermissionsGetResponseData;\n },\n },\n \"app_info_filters_get\": {\n method: \"GET\",\n path: \"/app-info/filters\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"app-info\"],\n summary: \"Get translated attribute filters\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AppInfoFiltersGetParams;\n query: AppInfoFiltersGetQuery;\n body: AppInfoFiltersGetBody;\n response: AppInfoFiltersGetResponse;\n responseData: AppInfoFiltersGetResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { AssignedEntitlement } from \"../../frontend-types\";\n\nexport type AssignedEntitlementsCreateParams = undefined;\nexport type AssignedEntitlementsCreateQuery = {\n\n};\nexport type AssignedEntitlementsCreateBody = {\n entitlementId: number;\n customerId: number;\n externalUserId?: string | null;\n orderId?: string | null;\n orderItemId?: string | null;\n validFrom?: string | null;\n expiresAt?: string | null;\n};\nexport type AssignedEntitlementsCreateResponseData = AssignedEntitlement;\nexport type AssignedEntitlementsCreateResponse = import(\"../types\").ApiEnvelope<AssignedEntitlementsCreateResponseData>;\n\nexport type AssignedEntitlementsRevokeParams = {\n assignmentId: number;\n};\nexport type AssignedEntitlementsRevokeQuery = {\n\n};\nexport type AssignedEntitlementsRevokeBody = undefined;\nexport type AssignedEntitlementsRevokeResponseData = AssignedEntitlement;\nexport type AssignedEntitlementsRevokeResponse = import(\"../types\").ApiEnvelope<AssignedEntitlementsRevokeResponseData>;\n\nexport type AssignedEntitlementsListByCustomerParams = {\n customerId: number;\n};\nexport type AssignedEntitlementsListByCustomerQuery = {\n\n};\nexport type AssignedEntitlementsListByCustomerBody = undefined;\nexport type AssignedEntitlementsListByCustomerResponseData = { assignments: AssignedEntitlement[] };\nexport type AssignedEntitlementsListByCustomerResponse = import(\"../types\").ApiEnvelope<AssignedEntitlementsListByCustomerResponseData>;\n\nexport type AssignedEntitlementsListByEntitlementParams = {\n entitlementId: number;\n};\nexport type AssignedEntitlementsListByEntitlementQuery = {\n\n};\nexport type AssignedEntitlementsListByEntitlementBody = undefined;\nexport type AssignedEntitlementsListByEntitlementResponseData = { assignments: AssignedEntitlement[] };\nexport type AssignedEntitlementsListByEntitlementResponse = import(\"../types\").ApiEnvelope<AssignedEntitlementsListByEntitlementResponseData>;\n\nexport type AssignedEntitlementsUpdateValidityParams = {\n assignmentId: number;\n};\nexport type AssignedEntitlementsUpdateValidityQuery = {\n\n};\nexport type AssignedEntitlementsUpdateValidityBody = {\n validFrom?: string | null;\n expiresAt?: string | null;\n};\nexport type AssignedEntitlementsUpdateValidityResponseData = AssignedEntitlement;\nexport type AssignedEntitlementsUpdateValidityResponse = import(\"../types\").ApiEnvelope<AssignedEntitlementsUpdateValidityResponseData>;\n\nexport const apiRoutes_assigned_entitlements = {\n \"assigned_entitlements_create\": {\n method: \"POST\",\n path: \"/assigned-entitlements/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"assigned-entitlements\"],\n summary: \"Create entitlement assignment\",\n description: \"Creates one assignment linking entitlement and customer with optional order context and validity window.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: AssignedEntitlementsCreateParams;\n query: AssignedEntitlementsCreateQuery;\n body: AssignedEntitlementsCreateBody;\n response: AssignedEntitlementsCreateResponse;\n responseData: AssignedEntitlementsCreateResponseData;\n },\n },\n \"assigned_entitlements_revoke\": {\n method: \"PUT\",\n path: \"/assigned-entitlements/revoke/:assignmentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"assigned-entitlements\"],\n summary: \"Revoke assigned entitlement\",\n description: \"Marks one existing assignment as revoked. External-app revocation sync is handled asynchronously by jobs.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AssignedEntitlementsRevokeParams;\n query: AssignedEntitlementsRevokeQuery;\n body: AssignedEntitlementsRevokeBody;\n response: AssignedEntitlementsRevokeResponse;\n responseData: AssignedEntitlementsRevokeResponseData;\n },\n },\n \"assigned_entitlements_list_by_customer\": {\n method: \"GET\",\n path: \"/assigned-entitlements/customer/:customerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"assigned-entitlements\"],\n summary: \"List assignments by customer\",\n description: \"Returns all entitlement assignments for one customer id.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AssignedEntitlementsListByCustomerParams;\n query: AssignedEntitlementsListByCustomerQuery;\n body: AssignedEntitlementsListByCustomerBody;\n response: AssignedEntitlementsListByCustomerResponse;\n responseData: AssignedEntitlementsListByCustomerResponseData;\n },\n },\n \"assigned_entitlements_list_by_entitlement\": {\n method: \"GET\",\n path: \"/assigned-entitlements/entitlement/:entitlementId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"assigned-entitlements\"],\n summary: \"List assignments by entitlement\",\n description: \"Returns all customer assignments for one entitlement id.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AssignedEntitlementsListByEntitlementParams;\n query: AssignedEntitlementsListByEntitlementQuery;\n body: AssignedEntitlementsListByEntitlementBody;\n response: AssignedEntitlementsListByEntitlementResponse;\n responseData: AssignedEntitlementsListByEntitlementResponseData;\n },\n },\n \"assigned_entitlements_update_validity\": {\n method: \"PUT\",\n path: \"/assigned-entitlements/update-validity/:assignmentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"assigned-entitlements\"],\n summary: \"Update assignment validity window\",\n description: \"Updates `validFrom`/`expiresAt` of an assignment and marks it for re-sync against the external entitlement target.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: AssignedEntitlementsUpdateValidityParams;\n query: AssignedEntitlementsUpdateValidityQuery;\n body: AssignedEntitlementsUpdateValidityBody;\n response: AssignedEntitlementsUpdateValidityResponse;\n responseData: AssignedEntitlementsUpdateValidityResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { ProductAttribute, ProductItemAttribute, VariantAttribute } from \"../../frontend-types\";\n\nexport type AttributeAssignmentsAssignProductParams = {\n attributeId: number;\n productId: number;\n};\nexport type AttributeAssignmentsAssignProductQuery = undefined;\nexport type AttributeAssignmentsAssignProductBody = {\n attributeValue?: string;\n attributeValueId?: number;\n};\nexport type AttributeAssignmentsAssignProductResponseData = ProductAttribute;\nexport type AttributeAssignmentsAssignProductResponse = import(\"../types\").ApiEnvelope<AttributeAssignmentsAssignProductResponseData>;\n\nexport type AttributeAssignmentsAssignItemParams = {\n attributeId: number;\n productItemId: number;\n};\nexport type AttributeAssignmentsAssignItemQuery = undefined;\nexport type AttributeAssignmentsAssignItemBody = {\n attributeValue?: string;\n attributeValueId?: number;\n};\nexport type AttributeAssignmentsAssignItemResponseData = ProductItemAttribute;\nexport type AttributeAssignmentsAssignItemResponse = import(\"../types\").ApiEnvelope<AttributeAssignmentsAssignItemResponseData>;\n\nexport type AttributeAssignmentsAssignVariantParams = {\n attributeId: number;\n variantId: number;\n};\nexport type AttributeAssignmentsAssignVariantQuery = undefined;\nexport type AttributeAssignmentsAssignVariantBody = {\n attributeValue?: string;\n attributeValueId?: number;\n};\nexport type AttributeAssignmentsAssignVariantResponseData = VariantAttribute;\nexport type AttributeAssignmentsAssignVariantResponse = import(\"../types\").ApiEnvelope<AttributeAssignmentsAssignVariantResponseData>;\n\nexport type AttributeAssignmentsRemoveProductParams = {\n attributeId: number;\n productId: number;\n};\nexport type AttributeAssignmentsRemoveProductQuery = {\n\n};\nexport type AttributeAssignmentsRemoveProductBody = undefined;\nexport type AttributeAssignmentsRemoveProductResponseData = null;\nexport type AttributeAssignmentsRemoveProductResponse = AttributeAssignmentsRemoveProductResponseData;\n\nexport type AttributeAssignmentsRemoveItemParams = {\n attributeId: number;\n productItemId: number;\n};\nexport type AttributeAssignmentsRemoveItemQuery = {\n\n};\nexport type AttributeAssignmentsRemoveItemBody = undefined;\nexport type AttributeAssignmentsRemoveItemResponseData = null;\nexport type AttributeAssignmentsRemoveItemResponse = AttributeAssignmentsRemoveItemResponseData;\n\nexport type AttributeAssignmentsRemoveVariantParams = {\n attributeId: number;\n variantId: number;\n};\nexport type AttributeAssignmentsRemoveVariantQuery = {\n\n};\nexport type AttributeAssignmentsRemoveVariantBody = undefined;\nexport type AttributeAssignmentsRemoveVariantResponseData = null;\nexport type AttributeAssignmentsRemoveVariantResponse = AttributeAssignmentsRemoveVariantResponseData;\n\nexport type AttributeAssignmentsEditProductParams = {\n attributeId: number;\n productId: number;\n};\nexport type AttributeAssignmentsEditProductQuery = undefined;\nexport type AttributeAssignmentsEditProductBody = {\n attributeValue?: string;\n attributeValueId?: number;\n};\nexport type AttributeAssignmentsEditProductResponseData = ProductAttribute;\nexport type AttributeAssignmentsEditProductResponse = import(\"../types\").ApiEnvelope<AttributeAssignmentsEditProductResponseData>;\n\nexport type AttributeAssignmentsEditItemParams = {\n attributeId: number;\n productItemId: number;\n};\nexport type AttributeAssignmentsEditItemQuery = undefined;\nexport type AttributeAssignmentsEditItemBody = {\n attributeValue?: string;\n attributeValueId?: number;\n};\nexport type AttributeAssignmentsEditItemResponseData = ProductItemAttribute;\nexport type AttributeAssignmentsEditItemResponse = import(\"../types\").ApiEnvelope<AttributeAssignmentsEditItemResponseData>;\n\nexport type AttributeAssignmentsEditVariantParams = {\n attributeId: number;\n variantId: number;\n};\nexport type AttributeAssignmentsEditVariantQuery = undefined;\nexport type AttributeAssignmentsEditVariantBody = {\n attributeValue?: string;\n attributeValueId?: number;\n};\nexport type AttributeAssignmentsEditVariantResponseData = VariantAttribute;\nexport type AttributeAssignmentsEditVariantResponse = import(\"../types\").ApiEnvelope<AttributeAssignmentsEditVariantResponseData>;\n\nexport const apiRoutes_attribute_assignments = {\n \"attribute_assignments_assign_product\": {\n method: \"POST\",\n path: \"/products/attributes/assignments/assignToProduct/:attributeId/:productId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-assignments\"],\n summary: \"Assign attribute to product\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributeAssignmentsAssignProductParams;\n query: AttributeAssignmentsAssignProductQuery;\n body: AttributeAssignmentsAssignProductBody;\n response: AttributeAssignmentsAssignProductResponse;\n responseData: AttributeAssignmentsAssignProductResponseData;\n },\n },\n \"attribute_assignments_assign_item\": {\n method: \"POST\",\n path: \"/products/attributes/assignments/assignToProductItem/:attributeId/:productItemId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-assignments\"],\n summary: \"Assign attribute to product item\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributeAssignmentsAssignItemParams;\n query: AttributeAssignmentsAssignItemQuery;\n body: AttributeAssignmentsAssignItemBody;\n response: AttributeAssignmentsAssignItemResponse;\n responseData: AttributeAssignmentsAssignItemResponseData;\n },\n },\n \"attribute_assignments_assign_variant\": {\n method: \"POST\",\n path: \"/products/attributes/assignments/assignToVariant/:attributeId/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-assignments\"],\n summary: \"Assign attribute to variant\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributeAssignmentsAssignVariantParams;\n query: AttributeAssignmentsAssignVariantQuery;\n body: AttributeAssignmentsAssignVariantBody;\n response: AttributeAssignmentsAssignVariantResponse;\n responseData: AttributeAssignmentsAssignVariantResponseData;\n },\n },\n \"attribute_assignments_remove_product\": {\n method: \"DELETE\",\n path: \"/products/attributes/assignments/removeFromProduct/:attributeId/:productId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-assignments\"],\n summary: \"Remove attribute from product\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AttributeAssignmentsRemoveProductParams;\n query: AttributeAssignmentsRemoveProductQuery;\n body: AttributeAssignmentsRemoveProductBody;\n response: AttributeAssignmentsRemoveProductResponse;\n responseData: AttributeAssignmentsRemoveProductResponseData;\n },\n },\n \"attribute_assignments_remove_item\": {\n method: \"DELETE\",\n path: \"/products/attributes/assignments/removeFromProductItem/:attributeId/:productItemId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-assignments\"],\n summary: \"Remove attribute from product item\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AttributeAssignmentsRemoveItemParams;\n query: AttributeAssignmentsRemoveItemQuery;\n body: AttributeAssignmentsRemoveItemBody;\n response: AttributeAssignmentsRemoveItemResponse;\n responseData: AttributeAssignmentsRemoveItemResponseData;\n },\n },\n \"attribute_assignments_remove_variant\": {\n method: \"DELETE\",\n path: \"/products/attributes/assignments/removeFromVariant/:attributeId/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-assignments\"],\n summary: \"Remove attribute from variant\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AttributeAssignmentsRemoveVariantParams;\n query: AttributeAssignmentsRemoveVariantQuery;\n body: AttributeAssignmentsRemoveVariantBody;\n response: AttributeAssignmentsRemoveVariantResponse;\n responseData: AttributeAssignmentsRemoveVariantResponseData;\n },\n },\n \"attribute_assignments_edit_product\": {\n method: \"PUT\",\n path: \"/products/attributes/assignments/editForProduct/:attributeId/:productId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-assignments\"],\n summary: \"Edit product attribute assignment\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributeAssignmentsEditProductParams;\n query: AttributeAssignmentsEditProductQuery;\n body: AttributeAssignmentsEditProductBody;\n response: AttributeAssignmentsEditProductResponse;\n responseData: AttributeAssignmentsEditProductResponseData;\n },\n },\n \"attribute_assignments_edit_item\": {\n method: \"PUT\",\n path: \"/products/attributes/assignments/editForItem/:attributeId/:productItemId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-assignments\"],\n summary: \"Edit product item attribute assignment\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributeAssignmentsEditItemParams;\n query: AttributeAssignmentsEditItemQuery;\n body: AttributeAssignmentsEditItemBody;\n response: AttributeAssignmentsEditItemResponse;\n responseData: AttributeAssignmentsEditItemResponseData;\n },\n },\n \"attribute_assignments_edit_variant\": {\n method: \"PUT\",\n path: \"/products/attributes/assignments/editForVariant/:attributeId/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-assignments\"],\n summary: \"Edit variant attribute assignment\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributeAssignmentsEditVariantParams;\n query: AttributeAssignmentsEditVariantQuery;\n body: AttributeAssignmentsEditVariantBody;\n response: AttributeAssignmentsEditVariantResponse;\n responseData: AttributeAssignmentsEditVariantResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { AttributeCategory } from \"../../frontend-types\";\n\nexport type AttributeCategoriesCreateParams = undefined;\nexport type AttributeCategoriesCreateQuery = undefined;\nexport type AttributeCategoriesCreateBody = {\n attributeId: number;\n categoryId: number;\n isVariantAxis?: boolean;\n isFilterable?: boolean;\n groupLabel?: string;\n};\nexport type AttributeCategoriesCreateResponseData = AttributeCategory;\nexport type AttributeCategoriesCreateResponse = import(\"../types\").ApiEnvelope<AttributeCategoriesCreateResponseData>;\n\nexport type AttributeCategoriesListParams = undefined;\nexport type AttributeCategoriesListQuery = {\n\n};\nexport type AttributeCategoriesListBody = undefined;\nexport type AttributeCategoriesListResponseData = AttributeCategory[];\nexport type AttributeCategoriesListResponse = import(\"../types\").ApiEnvelope<AttributeCategoriesListResponseData>;\n\nexport type AttributeCategoriesDeleteParams = undefined;\nexport type AttributeCategoriesDeleteQuery = undefined;\nexport type AttributeCategoriesDeleteBody = {\n attributeId: number;\n categoryId: number;\n};\nexport type AttributeCategoriesDeleteResponseData = null;\nexport type AttributeCategoriesDeleteResponse = AttributeCategoriesDeleteResponseData;\n\nexport type AttributeCategoriesUpdateParams = {\n id: number;\n};\nexport type AttributeCategoriesUpdateQuery = undefined;\nexport type AttributeCategoriesUpdateBody = {\n id: number;\n isVariantAxis: boolean;\n isFilterable: boolean;\n};\nexport type AttributeCategoriesUpdateResponseData = AttributeCategory;\nexport type AttributeCategoriesUpdateResponse = import(\"../types\").ApiEnvelope<AttributeCategoriesUpdateResponseData>;\n\nexport const apiRoutes_attribute_categories = {\n \"attribute_categories_create\": {\n method: \"POST\",\n path: \"/products/attributes/categories/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-categories\"],\n summary: \"Create attribute-category assignment\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributeCategoriesCreateParams;\n query: AttributeCategoriesCreateQuery;\n body: AttributeCategoriesCreateBody;\n response: AttributeCategoriesCreateResponse;\n responseData: AttributeCategoriesCreateResponseData;\n },\n },\n \"attribute_categories_list\": {\n method: \"GET\",\n path: \"/products/attributes/categories/getAll\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-categories\"],\n summary: \"List attribute-category assignments\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AttributeCategoriesListParams;\n query: AttributeCategoriesListQuery;\n body: AttributeCategoriesListBody;\n response: AttributeCategoriesListResponse;\n responseData: AttributeCategoriesListResponseData;\n },\n },\n \"attribute_categories_delete\": {\n method: \"DELETE\",\n path: \"/products/attributes/categories/delete\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-categories\"],\n summary: \"Delete attribute-category assignment\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributeCategoriesDeleteParams;\n query: AttributeCategoriesDeleteQuery;\n body: AttributeCategoriesDeleteBody;\n response: AttributeCategoriesDeleteResponse;\n responseData: AttributeCategoriesDeleteResponseData;\n },\n },\n \"attribute_categories_update\": {\n method: \"PUT\",\n path: \"/products/attributes/categories/update/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-categories\"],\n summary: \"Update attribute-category assignment\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributeCategoriesUpdateParams;\n query: AttributeCategoriesUpdateQuery;\n body: AttributeCategoriesUpdateBody;\n response: AttributeCategoriesUpdateResponse;\n responseData: AttributeCategoriesUpdateResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { AttributeOption } from \"../../frontend-types\";\n\nexport type AttributeOptionsCreateParams = {\n attributeId: number;\n};\nexport type AttributeOptionsCreateQuery = undefined;\nexport type AttributeOptionsCreateBody = {\n value: string;\n featureValue?: string;\n};\nexport type AttributeOptionsCreateResponseData = AttributeOption;\nexport type AttributeOptionsCreateResponse = import(\"../types\").ApiEnvelope<AttributeOptionsCreateResponseData>;\n\nexport type AttributeOptionsUpdateParams = {\n attributeOptionId: number;\n};\nexport type AttributeOptionsUpdateQuery = undefined;\nexport type AttributeOptionsUpdateBody = {\n featureValue?: string;\n};\nexport type AttributeOptionsUpdateResponseData = AttributeOption;\nexport type AttributeOptionsUpdateResponse = import(\"../types\").ApiEnvelope<AttributeOptionsUpdateResponseData>;\n\nexport type AttributeOptionsDeleteParams = {\n attributeOptionId: number;\n};\nexport type AttributeOptionsDeleteQuery = undefined;\nexport type AttributeOptionsDeleteBody = undefined;\nexport type AttributeOptionsDeleteResponseData = null;\nexport type AttributeOptionsDeleteResponse = AttributeOptionsDeleteResponseData;\n\nexport type AttributeOptionsListByAttributeParams = {\n attributeId: number;\n};\nexport type AttributeOptionsListByAttributeQuery = {\n\n};\nexport type AttributeOptionsListByAttributeBody = undefined;\nexport type AttributeOptionsListByAttributeResponseData = AttributeOption[];\nexport type AttributeOptionsListByAttributeResponse = import(\"../types\").ApiEnvelope<AttributeOptionsListByAttributeResponseData>;\n\nexport const apiRoutes_attribute_options = {\n \"attribute_options_create\": {\n method: \"POST\",\n path: \"/products/attributes/options/create/:attributeId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-options\"],\n summary: \"Create attribute option\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributeOptionsCreateParams;\n query: AttributeOptionsCreateQuery;\n body: AttributeOptionsCreateBody;\n response: AttributeOptionsCreateResponse;\n responseData: AttributeOptionsCreateResponseData;\n },\n },\n \"attribute_options_update\": {\n method: \"PUT\",\n path: \"/products/attributes/options/update/:attributeOptionId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-options\"],\n summary: \"Update attribute option\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributeOptionsUpdateParams;\n query: AttributeOptionsUpdateQuery;\n body: AttributeOptionsUpdateBody;\n response: AttributeOptionsUpdateResponse;\n responseData: AttributeOptionsUpdateResponseData;\n },\n },\n \"attribute_options_delete\": {\n method: \"DELETE\",\n path: \"/products/attributes/options/delete/:attributeOptionId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-options\"],\n summary: \"Delete attribute option\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: AttributeOptionsDeleteParams;\n query: AttributeOptionsDeleteQuery;\n body: AttributeOptionsDeleteBody;\n response: AttributeOptionsDeleteResponse;\n responseData: AttributeOptionsDeleteResponseData;\n },\n },\n \"attribute_options_list_by_attribute\": {\n method: \"GET\",\n path: \"/products/attributes/options/byAttribute/:attributeId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attribute-options\"],\n summary: \"List options by attribute\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AttributeOptionsListByAttributeParams;\n query: AttributeOptionsListByAttributeQuery;\n body: AttributeOptionsListByAttributeBody;\n response: AttributeOptionsListByAttributeResponse;\n responseData: AttributeOptionsListByAttributeResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Attribute, FullAttribute, FullAttributeTranslated } from \"../../frontend-types\";\n\nexport type AttributesCreateParams = undefined;\nexport type AttributesCreateQuery = undefined;\nexport type AttributesCreateBody = {\n name: string;\n code: string;\n inputType: \"number\" | \"boolean\" | \"select\" | \"text\" | \"multiselect\";\n unit?: string;\n attributeFeature?: \"hex_color\" | \"size\" | \"none\";\n isUnique?: boolean;\n};\nexport type AttributesCreateResponseData = Attribute;\nexport type AttributesCreateResponse = import(\"../types\").ApiEnvelope<AttributesCreateResponseData>;\n\nexport type AttributesDeleteParams = {\n attribute: number;\n};\nexport type AttributesDeleteQuery = undefined;\nexport type AttributesDeleteBody = undefined;\nexport type AttributesDeleteResponseData = null;\nexport type AttributesDeleteResponse = AttributesDeleteResponseData;\n\nexport type AttributesUpdateParams = {\n attributeId: number;\n};\nexport type AttributesUpdateQuery = undefined;\nexport type AttributesUpdateBody = {\n code?: string;\n inputType?: \"number\" | \"boolean\" | \"select\" | \"text\" | \"multiselect\";\n unit?: string;\n attributeFeature?: \"hex_color\" | \"size\" | \"none\";\n isUnique?: boolean;\n};\nexport type AttributesUpdateResponseData = Attribute;\nexport type AttributesUpdateResponse = import(\"../types\").ApiEnvelope<AttributesUpdateResponseData>;\n\nexport type AttributesGetByIdParams = {\n attribute: number;\n};\nexport type AttributesGetByIdQuery = {\n\n};\nexport type AttributesGetByIdBody = undefined;\nexport type AttributesGetByIdResponseData = Attribute | null;\nexport type AttributesGetByIdResponse = import(\"../types\").ApiEnvelope<AttributesGetByIdResponseData>;\n\nexport type AttributesGetFullParams = {\n attributeId: number;\n};\nexport type AttributesGetFullQuery = {\n\n};\nexport type AttributesGetFullBody = undefined;\nexport type AttributesGetFullResponseData = FullAttribute;\nexport type AttributesGetFullResponse = import(\"../types\").ApiEnvelope<AttributesGetFullResponseData>;\n\nexport type AttributesGetFullTranslatedParams = {\n attributeId: number;\n};\nexport type AttributesGetFullTranslatedQuery = {\n\n};\nexport type AttributesGetFullTranslatedBody = undefined;\nexport type AttributesGetFullTranslatedResponseData = FullAttributeTranslated;\nexport type AttributesGetFullTranslatedResponse = import(\"../types\").ApiEnvelope<AttributesGetFullTranslatedResponseData>;\n\nexport type AttributesListParams = undefined;\nexport type AttributesListQuery = {\n\n};\nexport type AttributesListBody = undefined;\nexport type AttributesListResponseData = Attribute[];\nexport type AttributesListResponse = import(\"../types\").ApiEnvelope<AttributesListResponseData>;\n\nexport type AttributesListFullParams = undefined;\nexport type AttributesListFullQuery = {\n\n};\nexport type AttributesListFullBody = undefined;\nexport type AttributesListFullResponseData = FullAttributeTranslated[];\nexport type AttributesListFullResponse = import(\"../types\").ApiEnvelope<AttributesListFullResponseData>;\n\nexport type AttributesListFullTranslatedParams = undefined;\nexport type AttributesListFullTranslatedQuery = {\n\n};\nexport type AttributesListFullTranslatedBody = undefined;\nexport type AttributesListFullTranslatedResponseData = FullAttributeTranslated[];\nexport type AttributesListFullTranslatedResponse = import(\"../types\").ApiEnvelope<AttributesListFullTranslatedResponseData>;\n\nexport const apiRoutes_attributes = {\n \"attributes_create\": {\n method: \"POST\",\n path: \"/products/attributes/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attributes\"],\n summary: \"Create attribute\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributesCreateParams;\n query: AttributesCreateQuery;\n body: AttributesCreateBody;\n response: AttributesCreateResponse;\n responseData: AttributesCreateResponseData;\n },\n },\n \"attributes_delete\": {\n method: \"DELETE\",\n path: \"/products/attributes/delete/:attribute\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attributes\"],\n summary: \"Delete attribute\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: AttributesDeleteParams;\n query: AttributesDeleteQuery;\n body: AttributesDeleteBody;\n response: AttributesDeleteResponse;\n responseData: AttributesDeleteResponseData;\n },\n },\n \"attributes_update\": {\n method: \"PUT\",\n path: \"/products/attributes/update/:attributeId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attributes\"],\n summary: \"Update attribute\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: AttributesUpdateParams;\n query: AttributesUpdateQuery;\n body: AttributesUpdateBody;\n response: AttributesUpdateResponse;\n responseData: AttributesUpdateResponseData;\n },\n },\n \"attributes_get_by_id\": {\n method: \"GET\",\n path: \"/products/attributes/byId/:attribute\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attributes\"],\n summary: \"Get attribute by id\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AttributesGetByIdParams;\n query: AttributesGetByIdQuery;\n body: AttributesGetByIdBody;\n response: AttributesGetByIdResponse;\n responseData: AttributesGetByIdResponseData;\n },\n },\n \"attributes_get_full\": {\n method: \"GET\",\n path: \"/products/attributes/byId/:attributeId/full\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attributes\"],\n summary: \"Get full attribute\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AttributesGetFullParams;\n query: AttributesGetFullQuery;\n body: AttributesGetFullBody;\n response: AttributesGetFullResponse;\n responseData: AttributesGetFullResponseData;\n },\n },\n \"attributes_get_full_translated\": {\n method: \"GET\",\n path: \"/products/attributes/byId/:attributeId/full/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attributes\"],\n summary: \"Get full translated attribute\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AttributesGetFullTranslatedParams;\n query: AttributesGetFullTranslatedQuery;\n body: AttributesGetFullTranslatedBody;\n response: AttributesGetFullTranslatedResponse;\n responseData: AttributesGetFullTranslatedResponseData;\n },\n },\n \"attributes_list\": {\n method: \"GET\",\n path: \"/products/attributes/getAll\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attributes\"],\n summary: \"List attributes\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AttributesListParams;\n query: AttributesListQuery;\n body: AttributesListBody;\n response: AttributesListResponse;\n responseData: AttributesListResponseData;\n },\n },\n \"attributes_list_full\": {\n method: \"GET\",\n path: \"/products/attributes/getAll/full\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attributes\"],\n summary: \"List full attributes\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AttributesListFullParams;\n query: AttributesListFullQuery;\n body: AttributesListFullBody;\n response: AttributesListFullResponse;\n responseData: AttributesListFullResponseData;\n },\n },\n \"attributes_list_full_translated\": {\n method: \"GET\",\n path: \"/products/attributes/getAll/full/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"attributes\"],\n summary: \"List full translated attributes\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: AttributesListFullTranslatedParams;\n query: AttributesListFullTranslatedQuery;\n body: AttributesListFullTranslatedBody;\n response: AttributesListFullTranslatedResponse;\n responseData: AttributesListFullTranslatedResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nexport type B2bCreateCheckoutSessionParams = undefined;\nexport type B2bCreateCheckoutSessionQuery = undefined;\nexport type B2bCreateCheckoutSessionBody = {\n appId: string;\n lineItems: Array<{\n name: string;\n description?: string;\n unitAmountCents: number;\n currency?: string;\n quantity?: number;\n recurring?: {\n interval: \"month\" | \"year\" | \"week\";\n intervalCount?: number;\n} | null;\n metadata?: Record<string, string>;\n}>;\n successUrl: string;\n cancelUrl: string;\n customerEmail?: string;\n metadata?: Record<string, string | number>;\n};\nexport type B2bCreateCheckoutSessionResponseData = {\n sessionId: string;\n sessionUrl: string;\n mode: \"payment\" | \"subscription\";\n orderId?: string;\n};\nexport type B2bCreateCheckoutSessionResponse = import(\"../types\").ApiEnvelope<B2bCreateCheckoutSessionResponseData>;\n\nexport const apiRoutes_b2b = {\n \"b2b_create_checkout_session\": {\n method: \"POST\",\n path: \"/b2b/checkout-session\",\n auth: {\"type\":\"x_api_key_https\"},\n meta: {\n tags: [\"b2b\"],\n summary: \"Create B2B dynamic checkout session\",\n description: \"Creates a Stripe checkout session with dynamic price_data for trusted external apps. Supports mixed carts (one-time + recurring). Auth: Bearer BACKEND_TO_BACKEND_API_KEY.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: B2bCreateCheckoutSessionParams;\n query: B2bCreateCheckoutSessionQuery;\n body: B2bCreateCheckoutSessionBody;\n response: B2bCreateCheckoutSessionResponse;\n responseData: B2bCreateCheckoutSessionResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Brand, BrandTranslated } from \"../../frontend-types\";\n\nexport type BrandsCreateParams = undefined;\nexport type BrandsCreateQuery = undefined;\nexport type BrandsCreateBody = {\n name: string;\n description?: string;\n};\nexport type BrandsCreateResponseData = Brand;\nexport type BrandsCreateResponse = import(\"../types\").ApiEnvelope<BrandsCreateResponseData>;\n\nexport type BrandsUpdateParams = {\n id: number;\n};\nexport type BrandsUpdateQuery = undefined;\nexport type BrandsUpdateBody = {\n name?: string;\n description?: string;\n};\nexport type BrandsUpdateResponseData = Brand;\nexport type BrandsUpdateResponse = import(\"../types\").ApiEnvelope<BrandsUpdateResponseData>;\n\nexport type BrandsListParams = undefined;\nexport type BrandsListQuery = {\n\n};\nexport type BrandsListBody = undefined;\nexport type BrandsListResponseData = Brand[];\nexport type BrandsListResponse = import(\"../types\").ApiEnvelope<BrandsListResponseData>;\n\nexport type BrandsListTranslatedParams = undefined;\nexport type BrandsListTranslatedQuery = {\n\n};\nexport type BrandsListTranslatedBody = undefined;\nexport type BrandsListTranslatedResponseData = BrandTranslated[];\nexport type BrandsListTranslatedResponse = import(\"../types\").ApiEnvelope<BrandsListTranslatedResponseData>;\n\nexport type BrandsGetByIdParams = {\n id: number;\n};\nexport type BrandsGetByIdQuery = {\n\n};\nexport type BrandsGetByIdBody = undefined;\nexport type BrandsGetByIdResponseData = Brand | null;\nexport type BrandsGetByIdResponse = import(\"../types\").ApiEnvelope<BrandsGetByIdResponseData>;\n\nexport type BrandsGetByIdTranslatedParams = {\n id: number;\n};\nexport type BrandsGetByIdTranslatedQuery = {\n\n};\nexport type BrandsGetByIdTranslatedBody = undefined;\nexport type BrandsGetByIdTranslatedResponseData = BrandTranslated;\nexport type BrandsGetByIdTranslatedResponse = import(\"../types\").ApiEnvelope<BrandsGetByIdTranslatedResponseData>;\n\nexport type BrandsDeleteParams = {\n id: number;\n};\nexport type BrandsDeleteQuery = undefined;\nexport type BrandsDeleteBody = undefined;\nexport type BrandsDeleteResponseData = Brand;\nexport type BrandsDeleteResponse = import(\"../types\").ApiEnvelope<BrandsDeleteResponseData>;\n\nexport const apiRoutes_brands = {\n \"brands_create\": {\n method: \"POST\",\n path: \"/brands/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"brands\"],\n summary: \"Create brand\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: BrandsCreateParams;\n query: BrandsCreateQuery;\n body: BrandsCreateBody;\n response: BrandsCreateResponse;\n responseData: BrandsCreateResponseData;\n },\n },\n \"brands_update\": {\n method: \"PUT\",\n path: \"/brands/update/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"brands\"],\n summary: \"Update brand\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: BrandsUpdateParams;\n query: BrandsUpdateQuery;\n body: BrandsUpdateBody;\n response: BrandsUpdateResponse;\n responseData: BrandsUpdateResponseData;\n },\n },\n \"brands_list\": {\n method: \"GET\",\n path: \"/brands/getAll\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"brands\"],\n summary: \"List brands\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: BrandsListParams;\n query: BrandsListQuery;\n body: BrandsListBody;\n response: BrandsListResponse;\n responseData: BrandsListResponseData;\n },\n },\n \"brands_list_translated\": {\n method: \"GET\",\n path: \"/brands/getAll/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"brands\"],\n summary: \"List translated brands\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: BrandsListTranslatedParams;\n query: BrandsListTranslatedQuery;\n body: BrandsListTranslatedBody;\n response: BrandsListTranslatedResponse;\n responseData: BrandsListTranslatedResponseData;\n },\n },\n \"brands_get_by_id\": {\n method: \"GET\",\n path: \"/brands/getById/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"brands\"],\n summary: \"Get brand by id\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: BrandsGetByIdParams;\n query: BrandsGetByIdQuery;\n body: BrandsGetByIdBody;\n response: BrandsGetByIdResponse;\n responseData: BrandsGetByIdResponseData;\n },\n },\n \"brands_get_by_id_translated\": {\n method: \"GET\",\n path: \"/brands/getById/:id/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"brands\"],\n summary: \"Get translated brand by id\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: BrandsGetByIdTranslatedParams;\n query: BrandsGetByIdTranslatedQuery;\n body: BrandsGetByIdTranslatedBody;\n response: BrandsGetByIdTranslatedResponse;\n responseData: BrandsGetByIdTranslatedResponseData;\n },\n },\n \"brands_delete\": {\n method: \"DELETE\",\n path: \"/brands/delete/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"brands\"],\n summary: \"Delete brand\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: BrandsDeleteParams;\n query: BrandsDeleteQuery;\n body: BrandsDeleteBody;\n response: BrandsDeleteResponse;\n responseData: BrandsDeleteResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { CreditPool, CreditTransaction } from \"../../frontend-types\";\n\nexport type CreditsConsumeParams = undefined;\nexport type CreditsConsumeQuery = {\n\n};\nexport type CreditsConsumeBody = {\n externalUserId: string;\n metricKey: string;\n amount: number;\n idempotencyKey: string;\n};\nexport type CreditsConsumeResponseData = { consumed: number; remainingTotal: number; pools: Array<{ poolId: number; type: string; remaining: number }>; idempotencyKey: string; source: string; warning?: string; };\nexport type CreditsConsumeResponse = import(\"../types\").ApiEnvelope<CreditsConsumeResponseData>;\n\nexport type CreditsBalanceParams = undefined;\nexport type CreditsBalanceQuery = {\n externalUserId: string;\n metricKey: string;\n};\nexport type CreditsBalanceBody = undefined;\nexport type CreditsBalanceResponseData = { customerId: number; metricKey: string; totalRemaining: number; pools: Array<{ poolId: number; type: string; total: number; used: number; remaining: number; expiresAt: string | null; }> };\nexport type CreditsBalanceResponse = import(\"../types\").ApiEnvelope<CreditsBalanceResponseData>;\n\nexport type CreditsListPoolsParams = undefined;\nexport type CreditsListPoolsQuery = {\n customerId?: number;\n metricKey?: string;\n isActive?: boolean;\n limit?: number;\n};\nexport type CreditsListPoolsBody = undefined;\nexport type CreditsListPoolsResponseData = { pools: CreditPool[]; total: number; };\nexport type CreditsListPoolsResponse = import(\"../types\").ApiEnvelope<CreditsListPoolsResponseData>;\n\nexport type CreditsGetPoolParams = {\n id: number;\n};\nexport type CreditsGetPoolQuery = {\n\n};\nexport type CreditsGetPoolBody = undefined;\nexport type CreditsGetPoolResponseData = { pool: CreditPool; transactions: CreditTransaction[]; };\nexport type CreditsGetPoolResponse = import(\"../types\").ApiEnvelope<CreditsGetPoolResponseData>;\n\nexport type CreditsCreatePoolParams = undefined;\nexport type CreditsCreatePoolQuery = {\n\n};\nexport type CreditsCreatePoolBody = {\n customerId: number;\n metricKey: string;\n creditType: \"permanent\" | \"expiring\" | \"monthly_quota\";\n totalCredits: string;\n expiresAt?: string | null;\n refillDay?: number | null;\n refillAmount?: string | null;\n note?: string;\n};\nexport type CreditsCreatePoolResponseData = CreditPool;\nexport type CreditsCreatePoolResponse = import(\"../types\").ApiEnvelope<CreditsCreatePoolResponseData>;\n\nexport type CreditsAdjustPoolParams = {\n id: number;\n};\nexport type CreditsAdjustPoolQuery = {\n\n};\nexport type CreditsAdjustPoolBody = {\n amount: number;\n note: string;\n};\nexport type CreditsAdjustPoolResponseData = { pool: CreditPool; transaction: CreditTransaction; };\nexport type CreditsAdjustPoolResponse = import(\"../types\").ApiEnvelope<CreditsAdjustPoolResponseData>;\n\nexport type CreditsListTransactionsParams = undefined;\nexport type CreditsListTransactionsQuery = {\n poolId?: number;\n customerId?: number;\n limit?: number;\n};\nexport type CreditsListTransactionsBody = undefined;\nexport type CreditsListTransactionsResponseData = { transactions: CreditTransaction[]; total: number; };\nexport type CreditsListTransactionsResponse = import(\"../types\").ApiEnvelope<CreditsListTransactionsResponseData>;\n\nexport const apiRoutes_credits = {\n \"credits_consume\": {\n method: \"POST\",\n path: \"/credits/consume\",\n auth: {\"type\":\"x_api_key_https\"},\n meta: {\n tags: [\"credits\"],\n summary: \"Consume credits for a user\",\n description: \"Deducts credits from available pools (monthly → expiring → permanent). Idempotent via idempotencyKey. Returns 402 if insufficient and hard_block configured. This endpoint is advisory — apps should cache limits locally and sync periodically.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: CreditsConsumeParams;\n query: CreditsConsumeQuery;\n body: CreditsConsumeBody;\n response: CreditsConsumeResponse;\n responseData: CreditsConsumeResponseData;\n },\n },\n \"credits_balance\": {\n method: \"GET\",\n path: \"/credits/balance\",\n auth: {\"type\":\"x_api_key_https\"},\n meta: {\n tags: [\"credits\"],\n summary: \"Get credit balance for a user\",\n description: \"Returns available credit balance per pool for a customer and metric.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CreditsBalanceParams;\n query: CreditsBalanceQuery;\n body: CreditsBalanceBody;\n response: CreditsBalanceResponse;\n responseData: CreditsBalanceResponseData;\n },\n },\n \"credits_list_pools\": {\n method: \"GET\",\n path: \"/credits/pools\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"credits\"],\n summary: \"List credit pools\",\n description: \"Returns credit pools optionally filtered by customer or metric.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CreditsListPoolsParams;\n query: CreditsListPoolsQuery;\n body: CreditsListPoolsBody;\n response: CreditsListPoolsResponse;\n responseData: CreditsListPoolsResponseData;\n },\n },\n \"credits_get_pool\": {\n method: \"GET\",\n path: \"/credits/pools/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"credits\"],\n summary: \"Get credit pool details\",\n description: \"Returns a single credit pool with its transaction history.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CreditsGetPoolParams;\n query: CreditsGetPoolQuery;\n body: CreditsGetPoolBody;\n response: CreditsGetPoolResponse;\n responseData: CreditsGetPoolResponseData;\n },\n },\n \"credits_create_pool\": {\n method: \"POST\",\n path: \"/credits/pools\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"credits\"],\n summary: \"Create credit pool (admin)\",\n description: \"Manually creates a credit pool for a customer. Records a purchase transaction.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: CreditsCreatePoolParams;\n query: CreditsCreatePoolQuery;\n body: CreditsCreatePoolBody;\n response: CreditsCreatePoolResponse;\n responseData: CreditsCreatePoolResponseData;\n },\n },\n \"credits_adjust_pool\": {\n method: \"POST\",\n path: \"/credits/adjust/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"credits\"],\n summary: \"Adjust credit pool balance (admin)\",\n description: \"Adds or removes credits from a pool. Recorded as adjustment transaction.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: CreditsAdjustPoolParams;\n query: CreditsAdjustPoolQuery;\n body: CreditsAdjustPoolBody;\n response: CreditsAdjustPoolResponse;\n responseData: CreditsAdjustPoolResponseData;\n },\n },\n \"credits_list_transactions\": {\n method: \"GET\",\n path: \"/credits/transactions\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"credits\"],\n summary: \"List credit transactions\",\n description: \"Returns credit transaction history for audit.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CreditsListTransactionsParams;\n query: CreditsListTransactionsQuery;\n body: CreditsListTransactionsBody;\n response: CreditsListTransactionsResponse;\n responseData: CreditsListTransactionsResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Customer, CustomerRelation, ExternalCustomerAppLink, FullCustomer } from \"../../frontend-types\";\n\nexport type CustomersSearchParams = undefined;\nexport type CustomersSearchQuery = {\n page?: number;\n pageSize?: number;\n search?: string;\n};\nexport type CustomersSearchBody = undefined;\nexport type CustomersSearchResponseData = { items: FullCustomer[]; page: number; pageSize: number; total: number; totalPages: number; hasNextPage: boolean; hasPrevPage: boolean; };\nexport type CustomersSearchResponse = import(\"../types\").ApiEnvelope<CustomersSearchResponseData>;\n\nexport type CustomersGetByIdParams = {\n customerId: number;\n};\nexport type CustomersGetByIdQuery = {\n\n};\nexport type CustomersGetByIdBody = undefined;\nexport type CustomersGetByIdResponseData = FullCustomer | null;\nexport type CustomersGetByIdResponse = import(\"../types\").ApiEnvelope<CustomersGetByIdResponseData>;\n\nexport type CustomersGetByIdFullParams = {\n customerId: number;\n};\nexport type CustomersGetByIdFullQuery = {\n\n};\nexport type CustomersGetByIdFullBody = undefined;\nexport type CustomersGetByIdFullResponseData = FullCustomer | null;\nexport type CustomersGetByIdFullResponse = import(\"../types\").ApiEnvelope<CustomersGetByIdFullResponseData>;\n\nexport type CustomersGetIdentityLinksParams = {\n customerId: number;\n};\nexport type CustomersGetIdentityLinksQuery = {\n\n};\nexport type CustomersGetIdentityLinksBody = undefined;\nexport type CustomersGetIdentityLinksResponseData = Array<{\n customerId: number;\n email: string | null;\n firstName: string | null;\n lastName: string | null;\n frontendApp: {\n id: number;\n appId: string;\n name: string;\n};\n normalizedEmail: string | null;\n detectedAt: string | null;\n}>;\nexport type CustomersGetIdentityLinksResponse = import(\"../types\").ApiEnvelope<CustomersGetIdentityLinksResponseData>;\n\nexport type CustomersCreateRelationParams = undefined;\nexport type CustomersCreateRelationQuery = {\n customerId: number;\n relatedCustomerId: number;\n};\nexport type CustomersCreateRelationBody = undefined;\nexport type CustomersCreateRelationResponseData = CustomerRelation;\nexport type CustomersCreateRelationResponse = import(\"../types\").ApiEnvelope<CustomersCreateRelationResponseData>;\n\nexport type CustomersUpsertExternalAccountParams = {\n customerId: number;\n};\nexport type CustomersUpsertExternalAccountQuery = {\n\n};\nexport type CustomersUpsertExternalAccountBody = {\n externalAppId: number;\n externalUserId: string;\n};\nexport type CustomersUpsertExternalAccountResponseData = ExternalCustomerAppLink | null;\nexport type CustomersUpsertExternalAccountResponse = import(\"../types\").ApiEnvelope<CustomersUpsertExternalAccountResponseData>;\n\nexport type CustomersUpdateParams = {\n customerId: number;\n};\nexport type CustomersUpdateQuery = {\n\n};\nexport type CustomersUpdateBody = {\n externalUserId?: string | null;\n email?: string | null;\n firstName?: string | null;\n lastName?: string | null;\n phone?: string | null;\n stripeCustomerId?: string | null;\n paypalPayerId?: string | null;\n};\nexport type CustomersUpdateResponseData = FullCustomer | null;\nexport type CustomersUpdateResponse = import(\"../types\").ApiEnvelope<CustomersUpdateResponseData>;\n\nexport type CustomersDeleteExternalAccountParams = {\n customerId: number;\n externalCustomerId: number;\n};\nexport type CustomersDeleteExternalAccountQuery = {\n\n};\nexport type CustomersDeleteExternalAccountBody = undefined;\nexport type CustomersDeleteExternalAccountResponseData = null;\nexport type CustomersDeleteExternalAccountResponse = import(\"../types\").ApiEnvelope<CustomersDeleteExternalAccountResponseData>;\n\nexport type CustomersDeleteRelationParams = {\n relationId: number;\n};\nexport type CustomersDeleteRelationQuery = {\n\n};\nexport type CustomersDeleteRelationBody = undefined;\nexport type CustomersDeleteRelationResponseData = null;\nexport type CustomersDeleteRelationResponse = import(\"../types\").ApiEnvelope<CustomersDeleteRelationResponseData>;\n\nexport type CustomersGetDependenciesParams = {\n customerId: number;\n};\nexport type CustomersGetDependenciesQuery = {\n\n};\nexport type CustomersGetDependenciesBody = undefined;\nexport type CustomersGetDependenciesResponseData = { customerId: number; isDeletable: boolean; totalReferences: number; dependencies: Record<string, number>; };\nexport type CustomersGetDependenciesResponse = import(\"../types\").ApiEnvelope<CustomersGetDependenciesResponseData>;\n\nexport type CustomersSafeDeleteParams = {\n customerId: number;\n};\nexport type CustomersSafeDeleteQuery = {\n\n};\nexport type CustomersSafeDeleteBody = undefined;\nexport type CustomersSafeDeleteResponseData = { customerId: number; deleted: boolean; };\nexport type CustomersSafeDeleteResponse = import(\"../types\").ApiEnvelope<CustomersSafeDeleteResponseData>;\n\nexport type CustomersMergeSuggestionsParams = undefined;\nexport type CustomersMergeSuggestionsQuery = {\n limit?: number;\n};\nexport type CustomersMergeSuggestionsBody = undefined;\nexport type CustomersMergeSuggestionsResponseData = { suggestions: Array<{ customerA: Customer; customerB: Customer; reason: string; confidence: string; }>; total: number; };\nexport type CustomersMergeSuggestionsResponse = import(\"../types\").ApiEnvelope<CustomersMergeSuggestionsResponseData>;\n\nexport type CustomersMergePreviewParams = undefined;\nexport type CustomersMergePreviewQuery = {\n primaryId: number;\n secondaryId: number;\n};\nexport type CustomersMergePreviewBody = undefined;\nexport type CustomersMergePreviewResponseData = { primary: Customer; secondary: Customer; warnings: string[]; moves: Record<string, number>; stripeConflict: boolean; activeSubscriptionsOnSecondary: number; };\nexport type CustomersMergePreviewResponse = import(\"../types\").ApiEnvelope<CustomersMergePreviewResponseData>;\n\nexport type CustomersExecuteMergeParams = undefined;\nexport type CustomersExecuteMergeQuery = {\n\n};\nexport type CustomersExecuteMergeBody = {\n primaryId: number;\n secondaryId: number;\n adminNote?: string;\n};\nexport type CustomersExecuteMergeResponseData = { primaryId: number; secondaryId: number; moved: Record<string, number>; warnings: string[]; secondaryDeleted: boolean; auditLog: Record<string, unknown>; };\nexport type CustomersExecuteMergeResponse = import(\"../types\").ApiEnvelope<CustomersExecuteMergeResponseData>;\n\nexport type CustomersUpdatePayAsYouGoParams = {\n customerId: number;\n};\nexport type CustomersUpdatePayAsYouGoQuery = {\n\n};\nexport type CustomersUpdatePayAsYouGoBody = {\n enabled: boolean;\n};\nexport type CustomersUpdatePayAsYouGoResponseData = { payAsYouGoEnabled: boolean; payAsYouGoActivatedAt: string | null; payAsYouGoDeactivatedAt: string | null; };\nexport type CustomersUpdatePayAsYouGoResponse = import(\"../types\").ApiEnvelope<CustomersUpdatePayAsYouGoResponseData>;\n\nexport const apiRoutes_customers = {\n \"customers_search\": {\n method: \"GET\",\n path: \"/customers/search\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Search and paginate customers\",\n description: \"Returns paginated customers including hydrated external links and customer-relation context.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CustomersSearchParams;\n query: CustomersSearchQuery;\n body: CustomersSearchBody;\n response: CustomersSearchResponse;\n responseData: CustomersSearchResponseData;\n },\n },\n \"customers_get_by_id\": {\n method: \"GET\",\n path: \"/customers/getById/:customerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Get one customer by id\",\n description: \"Loads one customer and hydrates external links and relation context.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CustomersGetByIdParams;\n query: CustomersGetByIdQuery;\n body: CustomersGetByIdBody;\n response: CustomersGetByIdResponse;\n responseData: CustomersGetByIdResponseData;\n },\n },\n \"customers_get_by_id_full\": {\n method: \"GET\",\n path: \"/customers/getById/:customerId/full\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Get full customer payload by id\",\n description: \"Alias endpoint returning the same hydrated customer payload as `getById`.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CustomersGetByIdFullParams;\n query: CustomersGetByIdFullQuery;\n body: CustomersGetByIdFullBody;\n response: CustomersGetByIdFullResponse;\n responseData: CustomersGetByIdFullResponseData;\n },\n },\n \"customers_get_identity_links\": {\n method: \"GET\",\n path: \"/customers/getById/:customerId/identity-links\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"List cross-frontend identity links for a customer\",\n description: \"Returns sibling customer records (other frontends) that share the same normalized email. Read-only Backoffice info; both customer records remain independent.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CustomersGetIdentityLinksParams;\n query: CustomersGetIdentityLinksQuery;\n body: CustomersGetIdentityLinksBody;\n response: CustomersGetIdentityLinksResponse;\n responseData: CustomersGetIdentityLinksResponseData;\n },\n },\n \"customers_create_relation\": {\n method: \"GET\",\n path: \"/customers/create-relation\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Create a customer relation\",\n description: \"Creates a relation between two customer records so account history can be linked.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CustomersCreateRelationParams;\n query: CustomersCreateRelationQuery;\n body: CustomersCreateRelationBody;\n response: CustomersCreateRelationResponse;\n responseData: CustomersCreateRelationResponseData;\n },\n },\n \"customers_upsert_external_account\": {\n method: \"POST\",\n path: \"/customers/upsert-external-account/:customerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Create or update external customer mapping\",\n description: \"Upserts one external app user-id mapping for a customer and returns the hydrated external app link record.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: CustomersUpsertExternalAccountParams;\n query: CustomersUpsertExternalAccountQuery;\n body: CustomersUpsertExternalAccountBody;\n response: CustomersUpsertExternalAccountResponse;\n responseData: CustomersUpsertExternalAccountResponseData;\n },\n },\n \"customers_update\": {\n method: \"PUT\",\n path: \"/customers/update/:customerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Update customer profile fields\",\n description: \"Updates mutable customer profile fields (`email`, names, phone, provider ids, external user id).\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: CustomersUpdateParams;\n query: CustomersUpdateQuery;\n body: CustomersUpdateBody;\n response: CustomersUpdateResponse;\n responseData: CustomersUpdateResponseData;\n },\n },\n \"customers_delete_external_account\": {\n method: \"DELETE\",\n path: \"/customers/delete-external-account/:customerId/:externalCustomerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Delete one external account mapping\",\n description: \"Removes one external app mapping from the given customer.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CustomersDeleteExternalAccountParams;\n query: CustomersDeleteExternalAccountQuery;\n body: CustomersDeleteExternalAccountBody;\n response: CustomersDeleteExternalAccountResponse;\n responseData: CustomersDeleteExternalAccountResponseData;\n },\n },\n \"customers_delete_relation\": {\n method: \"DELETE\",\n path: \"/customers/delete-relation/:relationId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Delete a customer relation\",\n description: \"Removes one previously created relation link between customers.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CustomersDeleteRelationParams;\n query: CustomersDeleteRelationQuery;\n body: CustomersDeleteRelationBody;\n response: CustomersDeleteRelationResponse;\n responseData: CustomersDeleteRelationResponseData;\n },\n },\n \"customers_get_dependencies\": {\n method: \"GET\",\n path: \"/customers/dependencies/:customerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Get customer dependency counts\",\n description: \"Returns reference counts per table for a customer. isDeletable is true only if all counts are zero.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CustomersGetDependenciesParams;\n query: CustomersGetDependenciesQuery;\n body: CustomersGetDependenciesBody;\n response: CustomersGetDependenciesResponse;\n responseData: CustomersGetDependenciesResponseData;\n },\n },\n \"customers_safe_delete\": {\n method: \"DELETE\",\n path: \"/customers/safe-delete/:customerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Safely delete customer with zero references\",\n description: \"Deletes a customer ONLY if they have no orders, subscriptions, entitlements, or other references. Returns 409 if references exist.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CustomersSafeDeleteParams;\n query: CustomersSafeDeleteQuery;\n body: CustomersSafeDeleteBody;\n response: CustomersSafeDeleteResponse;\n responseData: CustomersSafeDeleteResponseData;\n },\n },\n \"customers_merge_suggestions\": {\n method: \"GET\",\n path: \"/customers/merge-suggestions\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Find potential duplicate customers\",\n description: \"Returns pairs of customers that might be duplicates based on email, externalUserId, or name matches.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CustomersMergeSuggestionsParams;\n query: CustomersMergeSuggestionsQuery;\n body: CustomersMergeSuggestionsBody;\n response: CustomersMergeSuggestionsResponse;\n responseData: CustomersMergeSuggestionsResponseData;\n },\n },\n \"customers_merge_preview\": {\n method: \"GET\",\n path: \"/customers/merge-preview\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Preview customer merge impact\",\n description: \"Shows what would change if secondary customer is merged into primary. No changes are made.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: CustomersMergePreviewParams;\n query: CustomersMergePreviewQuery;\n body: CustomersMergePreviewBody;\n response: CustomersMergePreviewResponse;\n responseData: CustomersMergePreviewResponseData;\n },\n },\n \"customers_execute_merge\": {\n method: \"POST\",\n path: \"/customers/merge\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Execute customer merge\",\n description: \"Merges secondary customer into primary. All references are moved, secondary is deleted. IRREVERSIBLE. Stripe customers are NOT merged — manual resolution needed.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: CustomersExecuteMergeParams;\n query: CustomersExecuteMergeQuery;\n body: CustomersExecuteMergeBody;\n response: CustomersExecuteMergeResponse;\n responseData: CustomersExecuteMergeResponseData;\n },\n },\n \"customers_update_pay_as_you_go\": {\n method: \"PUT\",\n path: \"/customers/pay-as-you-go/:customerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"customers\"],\n summary: \"Toggle pay-as-you-go for a customer\",\n description: \"Enables or disables pay-as-you-go for a customer. When enabled, overages are billed instead of blocked.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: CustomersUpdatePayAsYouGoParams;\n query: CustomersUpdatePayAsYouGoQuery;\n body: CustomersUpdatePayAsYouGoBody;\n response: CustomersUpdatePayAsYouGoResponse;\n responseData: CustomersUpdatePayAsYouGoResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nexport type GETDataExchangeTablesGetAllParams = undefined;\nexport type GETDataExchangeTablesGetAllQuery = import(\"../types\").ContractNotReady<\"Query not typed yet. Add DTO + validate({ query }) to the route (or explicitly declare none).\">;\nexport type GETDataExchangeTablesGetAllBody = undefined;\nexport type GETDataExchangeTablesGetAllResponseData = import(\"../types\").ContractNotReady<\"Response type not ready. Use typeRef(\\\"...\\\") (preferred) or a concrete Zod schema for responses[].data.\">;\nexport type GETDataExchangeTablesGetAllResponse = import(\"../types\").ApiEnvelope<GETDataExchangeTablesGetAllResponseData>;\n\nexport type GETDataExchangeTablesGetAllFullParams = undefined;\nexport type GETDataExchangeTablesGetAllFullQuery = import(\"../types\").ContractNotReady<\"Query not typed yet. Add DTO + validate({ query }) to the route (or explicitly declare none).\">;\nexport type GETDataExchangeTablesGetAllFullBody = undefined;\nexport type GETDataExchangeTablesGetAllFullResponseData = import(\"../types\").ContractNotReady<\"Response type not ready. Use typeRef(\\\"...\\\") (preferred) or a concrete Zod schema for responses[].data.\">;\nexport type GETDataExchangeTablesGetAllFullResponse = import(\"../types\").ApiEnvelope<GETDataExchangeTablesGetAllFullResponseData>;\n\nexport type GETDataExchangeExchangeHistoryTableIdParams = import(\"../types\").ContractNotReady<\"Params not typed yet. Add DTO + validate({ params }) to the route.\">;\nexport type GETDataExchangeExchangeHistoryTableIdQuery = import(\"../types\").ContractNotReady<\"Query not typed yet. Add DTO + validate({ query }) to the route (or explicitly declare none).\">;\nexport type GETDataExchangeExchangeHistoryTableIdBody = undefined;\nexport type GETDataExchangeExchangeHistoryTableIdResponseData = import(\"../types\").ContractNotReady<\"Response type not ready. Use typeRef(\\\"...\\\") (preferred) or a concrete Zod schema for responses[].data.\">;\nexport type GETDataExchangeExchangeHistoryTableIdResponse = import(\"../types\").ApiEnvelope<GETDataExchangeExchangeHistoryTableIdResponseData>;\n\nexport type GETDataExchangeExchangeTemplateTableIdParams = import(\"../types\").ContractNotReady<\"Params not typed yet. Add DTO + validate({ params }) to the route.\">;\nexport type GETDataExchangeExchangeTemplateTableIdQuery = import(\"../types\").ContractNotReady<\"Query not typed yet. Add DTO + validate({ query }) to the route (or explicitly declare none).\">;\nexport type GETDataExchangeExchangeTemplateTableIdBody = undefined;\nexport type GETDataExchangeExchangeTemplateTableIdResponseData = import(\"../types\").ContractNotReady<\"Response type not ready. Use typeRef(\\\"...\\\") (preferred) or a concrete Zod schema for responses[].data.\">;\nexport type GETDataExchangeExchangeTemplateTableIdResponse = import(\"../types\").ApiEnvelope<GETDataExchangeExchangeTemplateTableIdResponseData>;\n\nexport type GETDataExchangeTablesGetDataTableIdParams = import(\"../types\").ContractNotReady<\"Params not typed yet. Add DTO + validate({ params }) to the route.\">;\nexport type GETDataExchangeTablesGetDataTableIdQuery = import(\"../types\").ContractNotReady<\"Query not typed yet. Add DTO + validate({ query }) to the route (or explicitly declare none).\">;\nexport type GETDataExchangeTablesGetDataTableIdBody = undefined;\nexport type GETDataExchangeTablesGetDataTableIdResponseData = import(\"../types\").ContractNotReady<\"Response type not ready. Use typeRef(\\\"...\\\") (preferred) or a concrete Zod schema for responses[].data.\">;\nexport type GETDataExchangeTablesGetDataTableIdResponse = import(\"../types\").ApiEnvelope<GETDataExchangeTablesGetDataTableIdResponseData>;\n\nexport type POSTDataExchangeExchangeTableIdParams = import(\"../types\").ContractNotReady<\"Params not typed yet. Add DTO + validate({ params }) to the route.\">;\nexport type POSTDataExchangeExchangeTableIdQuery = import(\"../types\").ContractNotReady<\"Query not typed yet. Add DTO + validate({ query }) to the route (or explicitly declare none).\">;\nexport type POSTDataExchangeExchangeTableIdBody = import(\"../types\").ContractNotReady<\"Body not typed yet. Add DTO + validate({ body }) or contract({ request: ... }) to the route.\">;\nexport type POSTDataExchangeExchangeTableIdResponseData = import(\"../types\").ContractNotReady<\"Response type not ready. Use typeRef(\\\"...\\\") (preferred) or a concrete Zod schema for responses[].data.\">;\nexport type POSTDataExchangeExchangeTableIdResponse = import(\"../types\").ApiEnvelope<POSTDataExchangeExchangeTableIdResponseData>;\n\nexport const apiRoutes_data_exchange = {\n \"GET__data_exchange_tables_getAll\": {\n method: \"GET\",\n path: \"/data-exchange/tables/getAll\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"AppPermissions.DataExchangeView\"},\n meta: {\n tags: [\"data-exchange\"],\n },\n types: null as unknown as {\n params: GETDataExchangeTablesGetAllParams;\n query: GETDataExchangeTablesGetAllQuery;\n body: GETDataExchangeTablesGetAllBody;\n response: GETDataExchangeTablesGetAllResponse;\n responseData: GETDataExchangeTablesGetAllResponseData;\n },\n },\n \"GET__data_exchange_tables_getAll_full\": {\n method: \"GET\",\n path: \"/data-exchange/tables/getAll/full\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"AppPermissions.DataExchangeView\"},\n meta: {\n tags: [\"data-exchange\"],\n },\n types: null as unknown as {\n params: GETDataExchangeTablesGetAllFullParams;\n query: GETDataExchangeTablesGetAllFullQuery;\n body: GETDataExchangeTablesGetAllFullBody;\n response: GETDataExchangeTablesGetAllFullResponse;\n responseData: GETDataExchangeTablesGetAllFullResponseData;\n },\n },\n \"GET__data_exchange_exchange_history_tableId\": {\n method: \"GET\",\n path: \"/data-exchange/exchange/history/:tableId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"AppPermissions.DataExchangeView\"},\n meta: {\n tags: [\"data-exchange\"],\n },\n types: null as unknown as {\n params: GETDataExchangeExchangeHistoryTableIdParams;\n query: GETDataExchangeExchangeHistoryTableIdQuery;\n body: GETDataExchangeExchangeHistoryTableIdBody;\n response: GETDataExchangeExchangeHistoryTableIdResponse;\n responseData: GETDataExchangeExchangeHistoryTableIdResponseData;\n },\n },\n \"GET__data_exchange_exchange_template_tableId\": {\n method: \"GET\",\n path: \"/data-exchange/exchange/template/:tableId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"AppPermissions.DataExchangeView\"},\n meta: {\n tags: [\"data-exchange\"],\n },\n types: null as unknown as {\n params: GETDataExchangeExchangeTemplateTableIdParams;\n query: GETDataExchangeExchangeTemplateTableIdQuery;\n body: GETDataExchangeExchangeTemplateTableIdBody;\n response: GETDataExchangeExchangeTemplateTableIdResponse;\n responseData: GETDataExchangeExchangeTemplateTableIdResponseData;\n },\n },\n \"GET__data_exchange_tables_getData_tableId\": {\n method: \"GET\",\n path: \"/data-exchange/tables/getData/:tableId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"AppPermissions.DataExchangeViewTables\"},\n meta: {\n tags: [\"data-exchange\"],\n },\n types: null as unknown as {\n params: GETDataExchangeTablesGetDataTableIdParams;\n query: GETDataExchangeTablesGetDataTableIdQuery;\n body: GETDataExchangeTablesGetDataTableIdBody;\n response: GETDataExchangeTablesGetDataTableIdResponse;\n responseData: GETDataExchangeTablesGetDataTableIdResponseData;\n },\n },\n \"POST__data_exchange_exchange_tableId\": {\n method: \"POST\",\n path: \"/data-exchange/exchange/:tableId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"AppPermissions.DataExchangeManage\"},\n meta: {\n tags: [\"data-exchange\"],\n },\n types: null as unknown as {\n params: POSTDataExchangeExchangeTableIdParams;\n query: POSTDataExchangeExchangeTableIdQuery;\n body: POSTDataExchangeExchangeTableIdBody;\n response: POSTDataExchangeExchangeTableIdResponse;\n responseData: POSTDataExchangeExchangeTableIdResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Design, DesignBlankCompatibility, DesignColorVariant, DesignTranslated } from \"../../frontend-types\";\n\nexport type DesignsCreateParams = undefined;\nexport type DesignsCreateQuery = undefined;\nexport type DesignsCreateBody = {\n name: string;\n brandId: number;\n mediaSetId?: number;\n};\nexport type DesignsCreateResponseData = Design;\nexport type DesignsCreateResponse = import(\"../types\").ApiEnvelope<DesignsCreateResponseData>;\n\nexport type DesignsUpdateParams = {\n id: number;\n};\nexport type DesignsUpdateQuery = undefined;\nexport type DesignsUpdateBody = {\n name?: string;\n status?: \"draft\" | \"published\" | \"mark_deleted\" | \"deleted\" | \"mark_archived\" | \"archived\";\n brandId?: number;\n mediaSetId?: number | null;\n};\nexport type DesignsUpdateResponseData = Design;\nexport type DesignsUpdateResponse = import(\"../types\").ApiEnvelope<DesignsUpdateResponseData>;\n\nexport type DesignsDeleteParams = {\n id: number;\n};\nexport type DesignsDeleteQuery = undefined;\nexport type DesignsDeleteBody = undefined;\nexport type DesignsDeleteResponseData = Design;\nexport type DesignsDeleteResponse = import(\"../types\").ApiEnvelope<DesignsDeleteResponseData>;\n\nexport type DesignsListParams = undefined;\nexport type DesignsListQuery = {\n brandId?: number;\n};\nexport type DesignsListBody = undefined;\nexport type DesignsListResponseData = Design[];\nexport type DesignsListResponse = import(\"../types\").ApiEnvelope<DesignsListResponseData>;\n\nexport type DesignsListTranslatedParams = undefined;\nexport type DesignsListTranslatedQuery = {\n brandId?: number;\n};\nexport type DesignsListTranslatedBody = undefined;\nexport type DesignsListTranslatedResponseData = DesignTranslated[];\nexport type DesignsListTranslatedResponse = import(\"../types\").ApiEnvelope<DesignsListTranslatedResponseData>;\n\nexport type DesignsGetByIdParams = {\n id: number;\n};\nexport type DesignsGetByIdQuery = {\n\n};\nexport type DesignsGetByIdBody = undefined;\nexport type DesignsGetByIdResponseData = Design | null;\nexport type DesignsGetByIdResponse = import(\"../types\").ApiEnvelope<DesignsGetByIdResponseData>;\n\nexport type DesignsGetByIdTranslatedParams = {\n id: number;\n};\nexport type DesignsGetByIdTranslatedQuery = {\n\n};\nexport type DesignsGetByIdTranslatedBody = undefined;\nexport type DesignsGetByIdTranslatedResponseData = DesignTranslated;\nexport type DesignsGetByIdTranslatedResponse = import(\"../types\").ApiEnvelope<DesignsGetByIdTranslatedResponseData>;\n\nexport type DesignColorVariantsCreateParams = {\n id: number;\n};\nexport type DesignColorVariantsCreateQuery = undefined;\nexport type DesignColorVariantsCreateBody = {\n attributeValueId: number;\n mediaSetId?: number;\n isDefault?: boolean;\n};\nexport type DesignColorVariantsCreateResponseData = DesignColorVariant;\nexport type DesignColorVariantsCreateResponse = import(\"../types\").ApiEnvelope<DesignColorVariantsCreateResponseData>;\n\nexport type DesignColorVariantsUpdateParams = {\n id: number;\n};\nexport type DesignColorVariantsUpdateQuery = undefined;\nexport type DesignColorVariantsUpdateBody = {\n mediaSetId?: number | null;\n isDefault?: boolean;\n};\nexport type DesignColorVariantsUpdateResponseData = DesignColorVariant;\nexport type DesignColorVariantsUpdateResponse = import(\"../types\").ApiEnvelope<DesignColorVariantsUpdateResponseData>;\n\nexport type DesignColorVariantsDeleteParams = {\n id: number;\n};\nexport type DesignColorVariantsDeleteQuery = undefined;\nexport type DesignColorVariantsDeleteBody = undefined;\nexport type DesignColorVariantsDeleteResponseData = DesignColorVariant;\nexport type DesignColorVariantsDeleteResponse = import(\"../types\").ApiEnvelope<DesignColorVariantsDeleteResponseData>;\n\nexport type DesignColorVariantsGetByDesignParams = {\n id: number;\n};\nexport type DesignColorVariantsGetByDesignQuery = {\n\n};\nexport type DesignColorVariantsGetByDesignBody = undefined;\nexport type DesignColorVariantsGetByDesignResponseData = DesignColorVariant[];\nexport type DesignColorVariantsGetByDesignResponse = import(\"../types\").ApiEnvelope<DesignColorVariantsGetByDesignResponseData>;\n\nexport type DesignBlanksAttachParams = {\n id: number;\n};\nexport type DesignBlanksAttachQuery = undefined;\nexport type DesignBlanksAttachBody = {\n productItemId: number;\n};\nexport type DesignBlanksAttachResponseData = DesignBlankCompatibility;\nexport type DesignBlanksAttachResponse = import(\"../types\").ApiEnvelope<DesignBlanksAttachResponseData>;\n\nexport type DesignBlanksDetachParams = {\n id: number;\n};\nexport type DesignBlanksDetachQuery = undefined;\nexport type DesignBlanksDetachBody = undefined;\nexport type DesignBlanksDetachResponseData = DesignBlankCompatibility;\nexport type DesignBlanksDetachResponse = import(\"../types\").ApiEnvelope<DesignBlanksDetachResponseData>;\n\nexport type DesignBlanksGetByDesignParams = {\n id: number;\n};\nexport type DesignBlanksGetByDesignQuery = {\n\n};\nexport type DesignBlanksGetByDesignBody = undefined;\nexport type DesignBlanksGetByDesignResponseData = DesignBlankCompatibility[];\nexport type DesignBlanksGetByDesignResponse = import(\"../types\").ApiEnvelope<DesignBlanksGetByDesignResponseData>;\n\nexport type DesignBlanksGetByProductItemParams = {\n itemId: number;\n};\nexport type DesignBlanksGetByProductItemQuery = {\n\n};\nexport type DesignBlanksGetByProductItemBody = undefined;\nexport type DesignBlanksGetByProductItemResponseData = DesignBlankCompatibility[];\nexport type DesignBlanksGetByProductItemResponse = import(\"../types\").ApiEnvelope<DesignBlanksGetByProductItemResponseData>;\n\nexport const apiRoutes_designs = {\n \"designs_create\": {\n method: \"POST\",\n path: \"/designs/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"Create design\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: DesignsCreateParams;\n query: DesignsCreateQuery;\n body: DesignsCreateBody;\n response: DesignsCreateResponse;\n responseData: DesignsCreateResponseData;\n },\n },\n \"designs_update\": {\n method: \"PUT\",\n path: \"/designs/update/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"Update design\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: DesignsUpdateParams;\n query: DesignsUpdateQuery;\n body: DesignsUpdateBody;\n response: DesignsUpdateResponse;\n responseData: DesignsUpdateResponseData;\n },\n },\n \"designs_delete\": {\n method: \"DELETE\",\n path: \"/designs/delete/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"Delete design\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: DesignsDeleteParams;\n query: DesignsDeleteQuery;\n body: DesignsDeleteBody;\n response: DesignsDeleteResponse;\n responseData: DesignsDeleteResponseData;\n },\n },\n \"designs_list\": {\n method: \"GET\",\n path: \"/designs/getAll\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"List designs\",\n description: \"Optionally filter by brandId to see only one brand's motif catalog.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: DesignsListParams;\n query: DesignsListQuery;\n body: DesignsListBody;\n response: DesignsListResponse;\n responseData: DesignsListResponseData;\n },\n },\n \"designs_list_translated\": {\n method: \"GET\",\n path: \"/designs/getAll/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"List translated designs\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: DesignsListTranslatedParams;\n query: DesignsListTranslatedQuery;\n body: DesignsListTranslatedBody;\n response: DesignsListTranslatedResponse;\n responseData: DesignsListTranslatedResponseData;\n },\n },\n \"designs_get_by_id\": {\n method: \"GET\",\n path: \"/designs/getById/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"Get design by id\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: DesignsGetByIdParams;\n query: DesignsGetByIdQuery;\n body: DesignsGetByIdBody;\n response: DesignsGetByIdResponse;\n responseData: DesignsGetByIdResponseData;\n },\n },\n \"designs_get_by_id_translated\": {\n method: \"GET\",\n path: \"/designs/getById/:id/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"Get translated design by id\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: DesignsGetByIdTranslatedParams;\n query: DesignsGetByIdTranslatedQuery;\n body: DesignsGetByIdTranslatedBody;\n response: DesignsGetByIdTranslatedResponse;\n responseData: DesignsGetByIdTranslatedResponseData;\n },\n },\n \"design_color_variants_create\": {\n method: \"POST\",\n path: \"/designs/:id/color-variants/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"Add a pre-rendered color variant to a design\",\n description: \"attributeValueId must reference an attributeOptions row on an attribute with attributeFeature=hex_color.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: DesignColorVariantsCreateParams;\n query: DesignColorVariantsCreateQuery;\n body: DesignColorVariantsCreateBody;\n response: DesignColorVariantsCreateResponse;\n responseData: DesignColorVariantsCreateResponseData;\n },\n },\n \"design_color_variants_update\": {\n method: \"PUT\",\n path: \"/designs/color-variants/update/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"Update a design color variant\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: DesignColorVariantsUpdateParams;\n query: DesignColorVariantsUpdateQuery;\n body: DesignColorVariantsUpdateBody;\n response: DesignColorVariantsUpdateResponse;\n responseData: DesignColorVariantsUpdateResponseData;\n },\n },\n \"design_color_variants_delete\": {\n method: \"DELETE\",\n path: \"/designs/color-variants/delete/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"Delete a design color variant\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: DesignColorVariantsDeleteParams;\n query: DesignColorVariantsDeleteQuery;\n body: DesignColorVariantsDeleteBody;\n response: DesignColorVariantsDeleteResponse;\n responseData: DesignColorVariantsDeleteResponseData;\n },\n },\n \"design_color_variants_get_by_design\": {\n method: \"GET\",\n path: \"/designs/:id/color-variants\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"List a design's color variants\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: DesignColorVariantsGetByDesignParams;\n query: DesignColorVariantsGetByDesignQuery;\n body: DesignColorVariantsGetByDesignBody;\n response: DesignColorVariantsGetByDesignResponse;\n responseData: DesignColorVariantsGetByDesignResponseData;\n },\n },\n \"design_blanks_attach\": {\n method: \"POST\",\n path: \"/designs/:id/blanks/attach\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"Mark a design as orderable on a blank (productItem, e.g. Hoodie)\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: DesignBlanksAttachParams;\n query: DesignBlanksAttachQuery;\n body: DesignBlanksAttachBody;\n response: DesignBlanksAttachResponse;\n responseData: DesignBlanksAttachResponseData;\n },\n },\n \"design_blanks_detach\": {\n method: \"DELETE\",\n path: \"/designs/blanks/detach/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"Remove a design/blank compatibility link\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: DesignBlanksDetachParams;\n query: DesignBlanksDetachQuery;\n body: DesignBlanksDetachBody;\n response: DesignBlanksDetachResponse;\n responseData: DesignBlanksDetachResponseData;\n },\n },\n \"design_blanks_get_by_design\": {\n method: \"GET\",\n path: \"/designs/:id/blanks\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"List which blanks (productItems) a design may be printed on\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: DesignBlanksGetByDesignParams;\n query: DesignBlanksGetByDesignQuery;\n body: DesignBlanksGetByDesignBody;\n response: DesignBlanksGetByDesignResponse;\n responseData: DesignBlanksGetByDesignResponseData;\n },\n },\n \"design_blanks_get_by_product_item\": {\n method: \"GET\",\n path: \"/designs/by-blank/:itemId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"designs\"],\n summary: \"List which designs are orderable on a given blank (productItem)\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: DesignBlanksGetByProductItemParams;\n query: DesignBlanksGetByProductItemQuery;\n body: DesignBlanksGetByProductItemBody;\n response: DesignBlanksGetByProductItemResponse;\n responseData: DesignBlanksGetByProductItemResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { DiscountCode, DiscountCodeRedemption, PaginatedResult } from \"../../frontend-types\";\n\nexport type DiscountCodesValidateParams = undefined;\nexport type DiscountCodesValidateQuery = {\n\n};\nexport type DiscountCodesValidateBody = {\n code: string;\n checkoutMode: \"subscription\" | \"one_time\";\n planId?: number;\n variantIds?: Array<number>;\n amountCents?: number;\n currency?: string;\n};\nexport type DiscountCodesValidateResponseData = {\n valid: boolean;\n reason?: string;\n discountCode?: {\n id: number;\n code: string;\n description: string | null;\n type: \"percent\" | \"fixed_amount\";\n value: number;\n currency: string | null;\n scope: \"all\" | \"subscriptions_only\" | \"one_time_only\";\n duration: \"once\" | \"repeating\" | \"forever\";\n durationInMonths: number | null;\n expiresAt: string | null;\n maxRedemptions: number | null;\n maxRedemptionsPerCustomer: number | null;\n remainingRedemptions: number | null;\n remainingRedemptionsForCustomer: number | null;\n};\n preview?: {\n amountCents: number;\n discountCents: number;\n finalAmountCents: number;\n currency: string;\n};\n};\nexport type DiscountCodesValidateResponse = import(\"../types\").ApiEnvelope<DiscountCodesValidateResponseData>;\n\nexport type DiscountCodesAdminSearchParams = undefined;\nexport type DiscountCodesAdminSearchQuery = {\n page?: number;\n pageSize?: number;\n query?: string;\n isActive?: string;\n};\nexport type DiscountCodesAdminSearchBody = undefined;\nexport type DiscountCodesAdminSearchResponseData = PaginatedResult<DiscountCode & { redemptionCount: number }>;\nexport type DiscountCodesAdminSearchResponse = import(\"../types\").ApiEnvelope<DiscountCodesAdminSearchResponseData>;\n\nexport type DiscountCodesAdminGetByIdParams = {\n id: number;\n};\nexport type DiscountCodesAdminGetByIdQuery = {\n\n};\nexport type DiscountCodesAdminGetByIdBody = undefined;\nexport type DiscountCodesAdminGetByIdResponseData = DiscountCode;\nexport type DiscountCodesAdminGetByIdResponse = import(\"../types\").ApiEnvelope<DiscountCodesAdminGetByIdResponseData>;\n\nexport type DiscountCodesAdminRedemptionsParams = {\n id: number;\n};\nexport type DiscountCodesAdminRedemptionsQuery = {\n page?: number;\n pageSize?: number;\n};\nexport type DiscountCodesAdminRedemptionsBody = undefined;\nexport type DiscountCodesAdminRedemptionsResponseData = PaginatedResult<DiscountCodeRedemption>;\nexport type DiscountCodesAdminRedemptionsResponse = import(\"../types\").ApiEnvelope<DiscountCodesAdminRedemptionsResponseData>;\n\nexport type DiscountCodesAdminCreateParams = undefined;\nexport type DiscountCodesAdminCreateQuery = {\n\n};\nexport type DiscountCodesAdminCreateBody = {\n code: string;\n description?: string;\n displayName?: string;\n type: \"percent\" | \"fixed_amount\";\n value: number;\n currency?: string;\n duration?: \"once\" | \"repeating\" | \"forever\";\n durationInMonths?: number;\n maxRedemptions?: number;\n maxRedemptionsPerCustomer?: number;\n expiresAt?: string;\n minOrderAmountCents?: number;\n minOrderCurrency?: string;\n scope?: \"all\" | \"subscriptions_only\" | \"one_time_only\";\n firstTimeOnly?: boolean;\n variantIds?: Array<number>;\n};\nexport type DiscountCodesAdminCreateResponseData = DiscountCode;\nexport type DiscountCodesAdminCreateResponse = import(\"../types\").ApiEnvelope<DiscountCodesAdminCreateResponseData>;\n\nexport type DiscountCodesAdminUpdateParams = {\n id: number;\n};\nexport type DiscountCodesAdminUpdateQuery = {\n\n};\nexport type DiscountCodesAdminUpdateBody = {\n description?: string;\n displayName?: string | null;\n isActive?: boolean;\n maxRedemptions?: number | null;\n maxRedemptionsPerCustomer?: number | null;\n};\nexport type DiscountCodesAdminUpdateResponseData = DiscountCode;\nexport type DiscountCodesAdminUpdateResponse = import(\"../types\").ApiEnvelope<DiscountCodesAdminUpdateResponseData>;\n\nexport type DiscountCodesAdminDeactivateParams = {\n id: number;\n};\nexport type DiscountCodesAdminDeactivateQuery = {\n\n};\nexport type DiscountCodesAdminDeactivateBody = undefined;\nexport type DiscountCodesAdminDeactivateResponseData = DiscountCode;\nexport type DiscountCodesAdminDeactivateResponse = import(\"../types\").ApiEnvelope<DiscountCodesAdminDeactivateResponseData>;\n\nexport type DiscountCodesAdminReactivateParams = {\n id: number;\n};\nexport type DiscountCodesAdminReactivateQuery = {\n\n};\nexport type DiscountCodesAdminReactivateBody = {\n maxRedemptions?: number | null;\n expiresAt?: string | null;\n};\nexport type DiscountCodesAdminReactivateResponseData = DiscountCode;\nexport type DiscountCodesAdminReactivateResponse = import(\"../types\").ApiEnvelope<DiscountCodesAdminReactivateResponseData>;\n\nexport type DiscountCodesAdminDeleteParams = {\n id: number;\n};\nexport type DiscountCodesAdminDeleteQuery = {\n\n};\nexport type DiscountCodesAdminDeleteBody = undefined;\nexport type DiscountCodesAdminDeleteResponseData = null;\nexport type DiscountCodesAdminDeleteResponse = import(\"../types\").ApiEnvelope<DiscountCodesAdminDeleteResponseData>;\n\nexport const apiRoutes_discount_codes = {\n \"discount_codes_validate\": {\n method: \"POST\",\n path: \"/discount-codes/validate\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"discount-codes\"],\n summary: \"Validate discount code for checkout\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: DiscountCodesValidateParams;\n query: DiscountCodesValidateQuery;\n body: DiscountCodesValidateBody;\n response: DiscountCodesValidateResponse;\n responseData: DiscountCodesValidateResponseData;\n },\n },\n \"discount_codes_admin_search\": {\n method: \"GET\",\n path: \"/discount-codes/admin/search\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_view\"},\n meta: {\n tags: [\"discount-codes\"],\n summary: \"Search discount codes (admin)\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: DiscountCodesAdminSearchParams;\n query: DiscountCodesAdminSearchQuery;\n body: DiscountCodesAdminSearchBody;\n response: DiscountCodesAdminSearchResponse;\n responseData: DiscountCodesAdminSearchResponseData;\n },\n },\n \"discount_codes_admin_get_by_id\": {\n method: \"GET\",\n path: \"/discount-codes/admin/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_view\"},\n meta: {\n tags: [\"discount-codes\"],\n summary: \"Get discount code by id (admin)\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: DiscountCodesAdminGetByIdParams;\n query: DiscountCodesAdminGetByIdQuery;\n body: DiscountCodesAdminGetByIdBody;\n response: DiscountCodesAdminGetByIdResponse;\n responseData: DiscountCodesAdminGetByIdResponseData;\n },\n },\n \"discount_codes_admin_redemptions\": {\n method: \"GET\",\n path: \"/discount-codes/admin/:id/redemptions\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_view\"},\n meta: {\n tags: [\"discount-codes\"],\n summary: \"Get discount code redemptions (admin)\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: DiscountCodesAdminRedemptionsParams;\n query: DiscountCodesAdminRedemptionsQuery;\n body: DiscountCodesAdminRedemptionsBody;\n response: DiscountCodesAdminRedemptionsResponse;\n responseData: DiscountCodesAdminRedemptionsResponseData;\n },\n },\n \"discount_codes_admin_create\": {\n method: \"POST\",\n path: \"/discount-codes/admin\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"discount-codes\"],\n summary: \"Create discount code (admin)\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: DiscountCodesAdminCreateParams;\n query: DiscountCodesAdminCreateQuery;\n body: DiscountCodesAdminCreateBody;\n response: DiscountCodesAdminCreateResponse;\n responseData: DiscountCodesAdminCreateResponseData;\n },\n },\n \"discount_codes_admin_update\": {\n method: \"PUT\",\n path: \"/discount-codes/admin/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"discount-codes\"],\n summary: \"Update discount code (admin)\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: DiscountCodesAdminUpdateParams;\n query: DiscountCodesAdminUpdateQuery;\n body: DiscountCodesAdminUpdateBody;\n response: DiscountCodesAdminUpdateResponse;\n responseData: DiscountCodesAdminUpdateResponseData;\n },\n },\n \"discount_codes_admin_deactivate\": {\n method: \"POST\",\n path: \"/discount-codes/admin/:id/deactivate\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"discount-codes\"],\n summary: \"Deactivate discount code (admin)\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: DiscountCodesAdminDeactivateParams;\n query: DiscountCodesAdminDeactivateQuery;\n body: DiscountCodesAdminDeactivateBody;\n response: DiscountCodesAdminDeactivateResponse;\n responseData: DiscountCodesAdminDeactivateResponseData;\n },\n },\n \"discount_codes_admin_reactivate\": {\n method: \"POST\",\n path: \"/discount-codes/admin/:id/reactivate\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"discount-codes\"],\n summary: \"Reactivate discount code (admin)\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: DiscountCodesAdminReactivateParams;\n query: DiscountCodesAdminReactivateQuery;\n body: DiscountCodesAdminReactivateBody;\n response: DiscountCodesAdminReactivateResponse;\n responseData: DiscountCodesAdminReactivateResponseData;\n },\n },\n \"discount_codes_admin_delete\": {\n method: \"DELETE\",\n path: \"/discount-codes/admin/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"discount-codes\"],\n summary: \"Delete discount code (admin)\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: DiscountCodesAdminDeleteParams;\n query: DiscountCodesAdminDeleteQuery;\n body: DiscountCodesAdminDeleteBody;\n response: DiscountCodesAdminDeleteResponse;\n responseData: DiscountCodesAdminDeleteResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { EntitlementLimitConfig } from \"../../frontend-types\";\n\nexport type EntitlementLimitsListParams = undefined;\nexport type EntitlementLimitsListQuery = {\n variantId?: number;\n planId?: number;\n metricKey?: string;\n isActive?: boolean;\n};\nexport type EntitlementLimitsListBody = undefined;\nexport type EntitlementLimitsListResponseData = { configs: EntitlementLimitConfig[]; total: number; };\nexport type EntitlementLimitsListResponse = import(\"../types\").ApiEnvelope<EntitlementLimitsListResponseData>;\n\nexport type EntitlementLimitsCreateParams = undefined;\nexport type EntitlementLimitsCreateQuery = {\n\n};\nexport type EntitlementLimitsCreateBody = {\n variantId?: number | null;\n planId?: number | null;\n metricKey: string;\n unit?: string | null;\n includedQuantity: string;\n limitBehavior: \"hard_block\" | \"pay_as_you_go\" | \"soft_warn\";\n overagePricePerUnit?: string | null;\n overageCurrency?: string;\n payAsYouGoRequiresOptIn?: boolean;\n maxOverageQuantity?: string | null;\n};\nexport type EntitlementLimitsCreateResponseData = EntitlementLimitConfig;\nexport type EntitlementLimitsCreateResponse = import(\"../types\").ApiEnvelope<EntitlementLimitsCreateResponseData>;\n\nexport type EntitlementLimitsUpdateParams = {\n id: number;\n};\nexport type EntitlementLimitsUpdateQuery = {\n\n};\nexport type EntitlementLimitsUpdateBody = {\n includedQuantity?: string;\n limitBehavior?: \"hard_block\" | \"pay_as_you_go\" | \"soft_warn\";\n overagePricePerUnit?: string | null;\n overageCurrency?: string;\n payAsYouGoRequiresOptIn?: boolean;\n maxOverageQuantity?: string | null;\n isActive?: boolean;\n unit?: string | null;\n};\nexport type EntitlementLimitsUpdateResponseData = EntitlementLimitConfig;\nexport type EntitlementLimitsUpdateResponse = import(\"../types\").ApiEnvelope<EntitlementLimitsUpdateResponseData>;\n\nexport type EntitlementLimitsDeleteParams = {\n id: number;\n};\nexport type EntitlementLimitsDeleteQuery = {\n\n};\nexport type EntitlementLimitsDeleteBody = undefined;\nexport type EntitlementLimitsDeleteResponseData = EntitlementLimitConfig;\nexport type EntitlementLimitsDeleteResponse = import(\"../types\").ApiEnvelope<EntitlementLimitsDeleteResponseData>;\n\nexport type EntitlementLimitsResolveParams = undefined;\nexport type EntitlementLimitsResolveQuery = {\n externalUserId: string;\n metricKey?: string;\n};\nexport type EntitlementLimitsResolveBody = undefined;\nexport type EntitlementLimitsResolveResponseData = { externalUserId: string; limits: Record<string, { included: number; behavior: string; payAsYouGoActive: boolean; maxOverageQuantity: number | null; overagePricePerUnit: number | null; }> };\nexport type EntitlementLimitsResolveResponse = import(\"../types\").ApiEnvelope<EntitlementLimitsResolveResponseData>;\n\nexport const apiRoutes_entitlement_limits = {\n \"entitlement_limits_list\": {\n method: \"GET\",\n path: \"/entitlement-limits\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"entitlement-limits\"],\n summary: \"List entitlement limit configurations\",\n description: \"Returns configured limits for variants/plans, optionally filtered.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EntitlementLimitsListParams;\n query: EntitlementLimitsListQuery;\n body: EntitlementLimitsListBody;\n response: EntitlementLimitsListResponse;\n responseData: EntitlementLimitsListResponseData;\n },\n },\n \"entitlement_limits_create\": {\n method: \"POST\",\n path: \"/entitlement-limits\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"entitlement-limits\"],\n summary: \"Create entitlement limit configuration\",\n description: \"Creates a new limit config for a variant and/or plan. At least one of variantId or planId must be set.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: EntitlementLimitsCreateParams;\n query: EntitlementLimitsCreateQuery;\n body: EntitlementLimitsCreateBody;\n response: EntitlementLimitsCreateResponse;\n responseData: EntitlementLimitsCreateResponseData;\n },\n },\n \"entitlement_limits_update\": {\n method: \"PUT\",\n path: \"/entitlement-limits/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"entitlement-limits\"],\n summary: \"Update entitlement limit configuration\",\n description: \"Updates an existing limit config.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: EntitlementLimitsUpdateParams;\n query: EntitlementLimitsUpdateQuery;\n body: EntitlementLimitsUpdateBody;\n response: EntitlementLimitsUpdateResponse;\n responseData: EntitlementLimitsUpdateResponseData;\n },\n },\n \"entitlement_limits_delete\": {\n method: \"DELETE\",\n path: \"/entitlement-limits/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"entitlement-limits\"],\n summary: \"Deactivate entitlement limit configuration\",\n description: \"Soft-deletes a limit config by setting isActive to false.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EntitlementLimitsDeleteParams;\n query: EntitlementLimitsDeleteQuery;\n body: EntitlementLimitsDeleteBody;\n response: EntitlementLimitsDeleteResponse;\n responseData: EntitlementLimitsDeleteResponseData;\n },\n },\n \"entitlement_limits_resolve\": {\n method: \"GET\",\n path: \"/entitlement-limits/resolve\",\n auth: {\"type\":\"x_api_key_https\"},\n meta: {\n tags: [\"entitlement-limits\"],\n summary: \"Resolve limits for external app user\",\n description: \"Returns resolved limits for a user based on their active entitlements. Used by external apps to cache limits locally.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EntitlementLimitsResolveParams;\n query: EntitlementLimitsResolveQuery;\n body: EntitlementLimitsResolveBody;\n response: EntitlementLimitsResolveResponse;\n responseData: EntitlementLimitsResolveResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Role, RoleAssignment } from \"../../frontend-types\";\n\nexport type EntitlementsListParams = undefined;\nexport type EntitlementsListQuery = {\n\n};\nexport type EntitlementsListBody = undefined;\nexport type EntitlementsListResponseData = { app: object; data: Role[]; total: number };\nexport type EntitlementsListResponse = import(\"../types\").ApiEnvelope<EntitlementsListResponseData>;\n\nexport type EntitlementsGetAllParams = undefined;\nexport type EntitlementsGetAllQuery = {\n\n};\nexport type EntitlementsGetAllBody = undefined;\nexport type EntitlementsGetAllResponseData = { app: object; data: Role[]; total: number };\nexport type EntitlementsGetAllResponse = import(\"../types\").ApiEnvelope<EntitlementsGetAllResponseData>;\n\nexport type EntitlementsGetAssignedParams = undefined;\nexport type EntitlementsGetAssignedQuery = {\n userId?: number;\n};\nexport type EntitlementsGetAssignedBody = undefined;\nexport type EntitlementsGetAssignedResponseData = { app: object; data: RoleAssignment[]; total: number };\nexport type EntitlementsGetAssignedResponse = import(\"../types\").ApiEnvelope<EntitlementsGetAssignedResponseData>;\n\nexport type EntitlementsGetUserEntitlementsParams = {\n userId: number;\n};\nexport type EntitlementsGetUserEntitlementsQuery = undefined;\nexport type EntitlementsGetUserEntitlementsBody = undefined;\nexport type EntitlementsGetUserEntitlementsResponseData = { app: object; data: Role[]; total: number };\nexport type EntitlementsGetUserEntitlementsResponse = import(\"../types\").ApiEnvelope<EntitlementsGetUserEntitlementsResponseData>;\n\nexport type EntitlementsGetByIdParams = {\n id: number;\n};\nexport type EntitlementsGetByIdQuery = undefined;\nexport type EntitlementsGetByIdBody = undefined;\nexport type EntitlementsGetByIdResponseData = Role;\nexport type EntitlementsGetByIdResponse = import(\"../types\").ApiEnvelope<EntitlementsGetByIdResponseData>;\n\nexport const apiRoutes_entitlements = {\n \"entitlements_list\": {\n method: \"GET\",\n path: \"/entitlements\",\n auth: {\"type\":\"unified_bearer\",\"allowUserSession\":false,\"allowOAuth2\":true,\"requireRole\":\"viewer\",\"scopes\":[\"entitlements:read\"]},\n meta: {\n tags: [\"entitlements\"],\n summary: \"Get all sellable entitlements (roles) for this app\",\n description: \"Alias of /getAll. Returns all sellable roles as entitlements for the calling app.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EntitlementsListParams;\n query: EntitlementsListQuery;\n body: EntitlementsListBody;\n response: EntitlementsListResponse;\n responseData: EntitlementsListResponseData;\n },\n },\n \"entitlements_getAll\": {\n method: \"GET\",\n path: \"/entitlements/getAll\",\n auth: {\"type\":\"unified_bearer\",\"allowUserSession\":false,\"allowOAuth2\":true,\"requireRole\":\"viewer\",\"scopes\":[\"entitlements:read\"]},\n meta: {\n tags: [\"entitlements\"],\n summary: \"Get all sellable entitlements (roles) for this app\",\n description: \"Returns all sellable roles as entitlements for the calling app. Non-sellable roles (admin, internal) are never exposed.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EntitlementsGetAllParams;\n query: EntitlementsGetAllQuery;\n body: EntitlementsGetAllBody;\n response: EntitlementsGetAllResponse;\n responseData: EntitlementsGetAllResponseData;\n },\n },\n \"entitlements_getAssigned\": {\n method: \"GET\",\n path: \"/entitlements/assigned\",\n auth: {\"type\":\"unified_bearer\",\"allowUserSession\":false,\"allowOAuth2\":true,\"requireRole\":\"viewer\",\"scopes\":[\"entitlements:read\"]},\n meta: {\n tags: [\"entitlements\"],\n summary: \"Get all role assignments\",\n description: \"Returns all active role assignments. Supports filtering by userId (external user id). Missing local users are auto-created.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EntitlementsGetAssignedParams;\n query: EntitlementsGetAssignedQuery;\n body: EntitlementsGetAssignedBody;\n response: EntitlementsGetAssignedResponse;\n responseData: EntitlementsGetAssignedResponseData;\n },\n },\n \"entitlements_getUserEntitlements\": {\n method: \"GET\",\n path: \"/entitlements/user/:userId\",\n auth: {\"type\":\"unified_bearer\",\"allowUserSession\":false,\"allowOAuth2\":true,\"requireRole\":\"viewer\",\"scopes\":[\"entitlements:read\"]},\n meta: {\n tags: [\"entitlements\"],\n summary: \"Get all active entitlements for a user\",\n description: \"Returns all active roles with permissions for a specific external user id. If the local user does not exist yet, it will be created automatically.\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: EntitlementsGetUserEntitlementsParams;\n query: EntitlementsGetUserEntitlementsQuery;\n body: EntitlementsGetUserEntitlementsBody;\n response: EntitlementsGetUserEntitlementsResponse;\n responseData: EntitlementsGetUserEntitlementsResponseData;\n },\n },\n \"entitlements_getById\": {\n method: \"GET\",\n path: \"/entitlements/:id\",\n auth: {\"type\":\"unified_bearer\",\"allowUserSession\":false,\"allowOAuth2\":true,\"requireRole\":\"viewer\",\"scopes\":[\"entitlements:read\"]},\n meta: {\n tags: [\"entitlements\"],\n summary: \"Get a single entitlement (role) by ID\",\n description: \"Returns details of a specific role with its permissions.\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: EntitlementsGetByIdParams;\n query: EntitlementsGetByIdQuery;\n body: EntitlementsGetByIdBody;\n response: EntitlementsGetByIdResponse;\n responseData: EntitlementsGetByIdResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Event, EventTranslated, EventVariant, Location, LocationTranslated, ProductItemVariant } from \"../../frontend-types\";\n\nexport type EventsLocationsExternalCreateParams = undefined;\nexport type EventsLocationsExternalCreateQuery = undefined;\nexport type EventsLocationsExternalCreateBody = {\n name: string;\n address?: string;\n city?: string;\n postalCode?: string;\n country: string;\n latitude?: number;\n longitude?: number;\n mapUrl?: string;\n};\nexport type EventsLocationsExternalCreateResponseData = Location;\nexport type EventsLocationsExternalCreateResponse = import(\"../types\").ApiEnvelope<EventsLocationsExternalCreateResponseData>;\n\nexport type EventsLocationsExternalDeleteParams = {\n locationId: number;\n};\nexport type EventsLocationsExternalDeleteQuery = undefined;\nexport type EventsLocationsExternalDeleteBody = undefined;\nexport type EventsLocationsExternalDeleteResponseData = null;\nexport type EventsLocationsExternalDeleteResponse = import(\"../types\").ApiEnvelope<EventsLocationsExternalDeleteResponseData>;\n\nexport type EventsLocationsExternalUpdateParams = {\n locationId: number;\n};\nexport type EventsLocationsExternalUpdateQuery = undefined;\nexport type EventsLocationsExternalUpdateBody = {\n name?: string;\n address?: string;\n city?: string;\n postalCode?: string;\n country?: string;\n latitude?: number;\n longitude?: number;\n mapUrl?: string;\n};\nexport type EventsLocationsExternalUpdateResponseData = Location;\nexport type EventsLocationsExternalUpdateResponse = import(\"../types\").ApiEnvelope<EventsLocationsExternalUpdateResponseData>;\n\nexport type EventsLocationsCreateParams = undefined;\nexport type EventsLocationsCreateQuery = undefined;\nexport type EventsLocationsCreateBody = {\n name: string;\n address?: string;\n city?: string;\n postalCode?: string;\n country: string;\n latitude?: number;\n longitude?: number;\n mapUrl?: string;\n};\nexport type EventsLocationsCreateResponseData = Location;\nexport type EventsLocationsCreateResponse = import(\"../types\").ApiEnvelope<EventsLocationsCreateResponseData>;\n\nexport type EventsLocationsUpdateParams = {\n locationId: number;\n};\nexport type EventsLocationsUpdateQuery = undefined;\nexport type EventsLocationsUpdateBody = {\n name?: string;\n address?: string;\n city?: string;\n postalCode?: string;\n country?: string;\n latitude?: number;\n longitude?: number;\n mapUrl?: string;\n};\nexport type EventsLocationsUpdateResponseData = Location;\nexport type EventsLocationsUpdateResponse = import(\"../types\").ApiEnvelope<EventsLocationsUpdateResponseData>;\n\nexport type EventsLocationsDeleteParams = {\n locationId: number;\n};\nexport type EventsLocationsDeleteQuery = undefined;\nexport type EventsLocationsDeleteBody = undefined;\nexport type EventsLocationsDeleteResponseData = null;\nexport type EventsLocationsDeleteResponse = import(\"../types\").ApiEnvelope<EventsLocationsDeleteResponseData>;\n\nexport type EventsLocationsGetByIdParams = {\n locationId: number;\n};\nexport type EventsLocationsGetByIdQuery = {\n\n};\nexport type EventsLocationsGetByIdBody = undefined;\nexport type EventsLocationsGetByIdResponseData = LocationTranslated | Location;\nexport type EventsLocationsGetByIdResponse = import(\"../types\").ApiEnvelope<EventsLocationsGetByIdResponseData>;\n\nexport type EventsLocationsListParams = undefined;\nexport type EventsLocationsListQuery = {\n\n};\nexport type EventsLocationsListBody = undefined;\nexport type EventsLocationsListResponseData = LocationTranslated[];\nexport type EventsLocationsListResponse = import(\"../types\").ApiEnvelope<EventsLocationsListResponseData>;\n\nexport type EventsCreateParams = undefined;\nexport type EventsCreateQuery = undefined;\nexport type EventsCreateBody = {\n locationId: number;\n startDate: string;\n endDate: string;\n name: string;\n maxParticipants?: number;\n notes?: string;\n};\nexport type EventsCreateResponseData = Event;\nexport type EventsCreateResponse = import(\"../types\").ApiEnvelope<EventsCreateResponseData>;\n\nexport type EventsUpdateParams = {\n eventId: number;\n};\nexport type EventsUpdateQuery = undefined;\nexport type EventsUpdateBody = {\n locationId: number;\n startDate?: string;\n endDate?: string;\n name?: string;\n maxParticipants?: number;\n notes?: string;\n};\nexport type EventsUpdateResponseData = Event;\nexport type EventsUpdateResponse = import(\"../types\").ApiEnvelope<EventsUpdateResponseData>;\n\nexport type EventsDeleteParams = {\n eventId: number;\n};\nexport type EventsDeleteQuery = undefined;\nexport type EventsDeleteBody = undefined;\nexport type EventsDeleteResponseData = null;\nexport type EventsDeleteResponse = import(\"../types\").ApiEnvelope<EventsDeleteResponseData>;\n\nexport type EventsGetByIdParams = {\n eventId: number;\n};\nexport type EventsGetByIdQuery = {\n\n};\nexport type EventsGetByIdBody = undefined;\nexport type EventsGetByIdResponseData = Event;\nexport type EventsGetByIdResponse = import(\"../types\").ApiEnvelope<EventsGetByIdResponseData>;\n\nexport type EventsListParams = undefined;\nexport type EventsListQuery = {\n\n};\nexport type EventsListBody = undefined;\nexport type EventsListResponseData = { allEvents: EventTranslated[]; allLocations: LocationTranslated[] };\nexport type EventsListResponse = import(\"../types\").ApiEnvelope<EventsListResponseData>;\n\nexport type EventsAssignVariantsParams = {\n eventId: number;\n};\nexport type EventsAssignVariantsQuery = undefined;\nexport type EventsAssignVariantsBody = {\n variantIds: Array<number>;\n validFrom?: string;\n expiresAt?: string;\n};\nexport type EventsAssignVariantsResponseData = EventVariant[];\nexport type EventsAssignVariantsResponse = import(\"../types\").ApiEnvelope<EventsAssignVariantsResponseData>;\n\nexport type EventsRevokeVariantParams = {\n eventId: number;\n variantId: number;\n};\nexport type EventsRevokeVariantQuery = undefined;\nexport type EventsRevokeVariantBody = undefined;\nexport type EventsRevokeVariantResponseData = null;\nexport type EventsRevokeVariantResponse = import(\"../types\").ApiEnvelope<EventsRevokeVariantResponseData>;\n\nexport type EventsListVariantsParams = {\n eventId: number;\n};\nexport type EventsListVariantsQuery = {\n\n};\nexport type EventsListVariantsBody = undefined;\nexport type EventsListVariantsResponseData = Array<{ eventVariantId: number; variant: ProductItemVariant }>;\nexport type EventsListVariantsResponse = import(\"../types\").ApiEnvelope<EventsListVariantsResponseData>;\n\nexport type EventsListByVariantParams = {\n variantId: number;\n};\nexport type EventsListByVariantQuery = {\n\n};\nexport type EventsListByVariantBody = undefined;\nexport type EventsListByVariantResponseData = Array<{ eventVariantId: number; event: Event }>;\nexport type EventsListByVariantResponse = import(\"../types\").ApiEnvelope<EventsListByVariantResponseData>;\n\nexport type EventsExternalCreateParams = {\n eventId: number;\n};\nexport type EventsExternalCreateQuery = undefined;\nexport type EventsExternalCreateBody = {\n locationId: number;\n startDate: string;\n endDate: string;\n name: string;\n maxParticipants?: number;\n notes?: string;\n};\nexport type EventsExternalCreateResponseData = Event;\nexport type EventsExternalCreateResponse = import(\"../types\").ApiEnvelope<EventsExternalCreateResponseData>;\n\nexport type EventsExternalDeleteParams = {\n eventId: number;\n};\nexport type EventsExternalDeleteQuery = undefined;\nexport type EventsExternalDeleteBody = undefined;\nexport type EventsExternalDeleteResponseData = null;\nexport type EventsExternalDeleteResponse = import(\"../types\").ApiEnvelope<EventsExternalDeleteResponseData>;\n\nexport type EventsExternalUpdateParams = {\n eventId: number;\n};\nexport type EventsExternalUpdateQuery = undefined;\nexport type EventsExternalUpdateBody = {\n locationId: number;\n startDate?: string;\n endDate?: string;\n name?: string;\n maxParticipants?: number;\n notes?: string;\n};\nexport type EventsExternalUpdateResponseData = Event;\nexport type EventsExternalUpdateResponse = import(\"../types\").ApiEnvelope<EventsExternalUpdateResponseData>;\n\nexport type EventsExternalGetByIdParams = {\n eventId: number;\n};\nexport type EventsExternalGetByIdQuery = {\n\n};\nexport type EventsExternalGetByIdBody = undefined;\nexport type EventsExternalGetByIdResponseData = Event;\nexport type EventsExternalGetByIdResponse = import(\"../types\").ApiEnvelope<EventsExternalGetByIdResponseData>;\n\nexport const apiRoutes_events = {\n \"events_locations_external_create\": {\n method: \"POST\",\n path: \"/events/locations/createExternalLocation\",\n auth: {\"type\":\"cron_bearer_https\"},\n meta: {\n tags: [\"events\"],\n summary: \"Create external location\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: EventsLocationsExternalCreateParams;\n query: EventsLocationsExternalCreateQuery;\n body: EventsLocationsExternalCreateBody;\n response: EventsLocationsExternalCreateResponse;\n responseData: EventsLocationsExternalCreateResponseData;\n },\n },\n \"events_locations_external_delete\": {\n method: \"DELETE\",\n path: \"/events/locations/deleteExternalLocation/:locationId\",\n auth: {\"type\":\"cron_bearer_https\"},\n meta: {\n tags: [\"events\"],\n summary: \"Delete external location\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: EventsLocationsExternalDeleteParams;\n query: EventsLocationsExternalDeleteQuery;\n body: EventsLocationsExternalDeleteBody;\n response: EventsLocationsExternalDeleteResponse;\n responseData: EventsLocationsExternalDeleteResponseData;\n },\n },\n \"events_locations_external_update\": {\n method: \"PUT\",\n path: \"/events/locations/updateExternalLocation/:locationId\",\n auth: {\"type\":\"cron_bearer_https\"},\n meta: {\n tags: [\"events\"],\n summary: \"Update external location\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: EventsLocationsExternalUpdateParams;\n query: EventsLocationsExternalUpdateQuery;\n body: EventsLocationsExternalUpdateBody;\n response: EventsLocationsExternalUpdateResponse;\n responseData: EventsLocationsExternalUpdateResponseData;\n },\n },\n \"events_locations_create\": {\n method: \"POST\",\n path: \"/events/locations/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"Create location\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: EventsLocationsCreateParams;\n query: EventsLocationsCreateQuery;\n body: EventsLocationsCreateBody;\n response: EventsLocationsCreateResponse;\n responseData: EventsLocationsCreateResponseData;\n },\n },\n \"events_locations_update\": {\n method: \"PUT\",\n path: \"/events/locations/update/:locationId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"Update location\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: EventsLocationsUpdateParams;\n query: EventsLocationsUpdateQuery;\n body: EventsLocationsUpdateBody;\n response: EventsLocationsUpdateResponse;\n responseData: EventsLocationsUpdateResponseData;\n },\n },\n \"events_locations_delete\": {\n method: \"DELETE\",\n path: \"/events/locations/delete/:locationId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"Delete location\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: EventsLocationsDeleteParams;\n query: EventsLocationsDeleteQuery;\n body: EventsLocationsDeleteBody;\n response: EventsLocationsDeleteResponse;\n responseData: EventsLocationsDeleteResponseData;\n },\n },\n \"events_locations_get_by_id\": {\n method: \"GET\",\n path: \"/events/locations/get/:locationId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"Get location by id\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EventsLocationsGetByIdParams;\n query: EventsLocationsGetByIdQuery;\n body: EventsLocationsGetByIdBody;\n response: EventsLocationsGetByIdResponse;\n responseData: EventsLocationsGetByIdResponseData;\n },\n },\n \"events_locations_list\": {\n method: \"GET\",\n path: \"/events/locations/getAll\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"List locations\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EventsLocationsListParams;\n query: EventsLocationsListQuery;\n body: EventsLocationsListBody;\n response: EventsLocationsListResponse;\n responseData: EventsLocationsListResponseData;\n },\n },\n \"events_create\": {\n method: \"POST\",\n path: \"/events/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"Create event\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: EventsCreateParams;\n query: EventsCreateQuery;\n body: EventsCreateBody;\n response: EventsCreateResponse;\n responseData: EventsCreateResponseData;\n },\n },\n \"events_update\": {\n method: \"PUT\",\n path: \"/events/update/:eventId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"Update event\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: EventsUpdateParams;\n query: EventsUpdateQuery;\n body: EventsUpdateBody;\n response: EventsUpdateResponse;\n responseData: EventsUpdateResponseData;\n },\n },\n \"events_delete\": {\n method: \"DELETE\",\n path: \"/events/delete/:eventId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"Delete event\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: EventsDeleteParams;\n query: EventsDeleteQuery;\n body: EventsDeleteBody;\n response: EventsDeleteResponse;\n responseData: EventsDeleteResponseData;\n },\n },\n \"events_get_by_id\": {\n method: \"GET\",\n path: \"/events/get/:eventId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"Get event by id\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EventsGetByIdParams;\n query: EventsGetByIdQuery;\n body: EventsGetByIdBody;\n response: EventsGetByIdResponse;\n responseData: EventsGetByIdResponseData;\n },\n },\n \"events_list\": {\n method: \"GET\",\n path: \"/events/getAll\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"List events with locations\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EventsListParams;\n query: EventsListQuery;\n body: EventsListBody;\n response: EventsListResponse;\n responseData: EventsListResponseData;\n },\n },\n \"events_assign_variants\": {\n method: \"POST\",\n path: \"/events/assign/:eventId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"Assign variants to event\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: EventsAssignVariantsParams;\n query: EventsAssignVariantsQuery;\n body: EventsAssignVariantsBody;\n response: EventsAssignVariantsResponse;\n responseData: EventsAssignVariantsResponseData;\n },\n },\n \"events_revoke_variant\": {\n method: \"DELETE\",\n path: \"/events/revoke/:eventId/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"Revoke variant from event\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: EventsRevokeVariantParams;\n query: EventsRevokeVariantQuery;\n body: EventsRevokeVariantBody;\n response: EventsRevokeVariantResponse;\n responseData: EventsRevokeVariantResponseData;\n },\n },\n \"events_list_variants\": {\n method: \"GET\",\n path: \"/events/variants/:eventId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"List variants for event\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EventsListVariantsParams;\n query: EventsListVariantsQuery;\n body: EventsListVariantsBody;\n response: EventsListVariantsResponse;\n responseData: EventsListVariantsResponseData;\n },\n },\n \"events_list_by_variant\": {\n method: \"GET\",\n path: \"/events/variant/events/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"events\"],\n summary: \"List events for variant\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EventsListByVariantParams;\n query: EventsListByVariantQuery;\n body: EventsListByVariantBody;\n response: EventsListByVariantResponse;\n responseData: EventsListByVariantResponseData;\n },\n },\n \"events_external_create\": {\n method: \"POST\",\n path: \"/events/createExternalEvent/:eventId\",\n auth: {\"type\":\"cron_bearer_https\"},\n meta: {\n tags: [\"events\"],\n summary: \"Create external event\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: EventsExternalCreateParams;\n query: EventsExternalCreateQuery;\n body: EventsExternalCreateBody;\n response: EventsExternalCreateResponse;\n responseData: EventsExternalCreateResponseData;\n },\n },\n \"events_external_delete\": {\n method: \"DELETE\",\n path: \"/events/deleteExternalEvent/:eventId\",\n auth: {\"type\":\"cron_bearer_https\"},\n meta: {\n tags: [\"events\"],\n summary: \"Delete external event\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: EventsExternalDeleteParams;\n query: EventsExternalDeleteQuery;\n body: EventsExternalDeleteBody;\n response: EventsExternalDeleteResponse;\n responseData: EventsExternalDeleteResponseData;\n },\n },\n \"events_external_update\": {\n method: \"PUT\",\n path: \"/events/updateExternalEvent/:eventId\",\n auth: {\"type\":\"cron_bearer_https\"},\n meta: {\n tags: [\"events\"],\n summary: \"Update external event\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: EventsExternalUpdateParams;\n query: EventsExternalUpdateQuery;\n body: EventsExternalUpdateBody;\n response: EventsExternalUpdateResponse;\n responseData: EventsExternalUpdateResponseData;\n },\n },\n \"events_external_get_by_id\": {\n method: \"GET\",\n path: \"/events/getExternalEvent/:eventId\",\n auth: {\"type\":\"cron_bearer_https\"},\n meta: {\n tags: [\"events\"],\n summary: \"Get external event by id\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: EventsExternalGetByIdParams;\n query: EventsExternalGetByIdQuery;\n body: EventsExternalGetByIdBody;\n response: EventsExternalGetByIdResponse;\n responseData: EventsExternalGetByIdResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { AppMetricCatalog, ExternalApp, ExternalEntitlement } from \"../../frontend-types\";\n\nexport type ExternalAppsListParams = undefined;\nexport type ExternalAppsListQuery = {\n\n};\nexport type ExternalAppsListBody = undefined;\nexport type ExternalAppsListResponseData = Array<{ app: Omit<ExternalApp, 'apiKey' | 'oauthClientSecret'> & { apiKey: null; oauthClientSecret: null; apiKeyMasked: string | null; oauthClientSecretMasked: string | null; hasApiKey: boolean; hasOAuthClientSecret: boolean; }; entitlements: ExternalEntitlement[]; stats: { entitlementsTotal: number; entitlementsActive: number; pendingReviewCount: number; lastUsageReportAt: string | null; activeAlertsCount: number; activePricingRulesCount: number; }; }>;\nexport type ExternalAppsListResponse = import(\"../types\").ApiEnvelope<ExternalAppsListResponseData>;\n\nexport type ExternalAppsValidateEntitlementParams = undefined;\nexport type ExternalAppsValidateEntitlementQuery = {\n\n};\nexport type ExternalAppsValidateEntitlementBody = {\n appId: string;\n externalUserId: string;\n externalIdentifier: string;\n};\nexport type ExternalAppsValidateEntitlementResponseData = {\n valid: boolean;\n message?: string;\n validTo?: string | null;\n validFrom?: string | null;\n expiresAt?: string | null;\n revokedAt?: string | null;\n};\nexport type ExternalAppsValidateEntitlementResponse = import(\"../types\").ApiEnvelope<ExternalAppsValidateEntitlementResponseData>;\n\nexport type ExternalAppsCreateParams = undefined;\nexport type ExternalAppsCreateQuery = {\n\n};\nexport type ExternalAppsCreateBody = {\n appId: string;\n name?: string;\n description?: string | null;\n apiKey?: string;\n base_url: string;\n entitlementPath?: string | null;\n usageOveragePath?: string | null;\n authMethod?: \"api_key\" | \"apiKey\" | \"oauth\";\n oauthClientId?: string;\n oauthClientSecret?: string;\n commerceBranding?: {\n brandName: string;\n supportEmail: string;\n websiteUrl: string;\n logoUrl?: string | null;\n accentColor: string;\n senderName?: string | null;\n legalName?: string | null;\n manageSubscriptionsUrl?: string | null;\n senderEmail?: string | null;\n} | null;\n brandId?: number;\n};\nexport type ExternalAppsCreateResponseData = Omit<ExternalApp, 'apiKey' | 'oauthClientSecret'> & { apiKey: null; oauthClientSecret: null; apiKeyMasked: string | null; oauthClientSecretMasked: string | null; hasApiKey: boolean; hasOAuthClientSecret: boolean; };\nexport type ExternalAppsCreateResponse = import(\"../types\").ApiEnvelope<ExternalAppsCreateResponseData>;\n\nexport type ExternalAppsFetchEntitlementsParams = {\n appId: number;\n};\nexport type ExternalAppsFetchEntitlementsQuery = {\n\n};\nexport type ExternalAppsFetchEntitlementsBody = undefined;\nexport type ExternalAppsFetchEntitlementsResponseData = null;\nexport type ExternalAppsFetchEntitlementsResponse = import(\"../types\").ApiEnvelope<ExternalAppsFetchEntitlementsResponseData>;\n\nexport type ExternalAppsFetchUsageOveragesParams = {\n appId: number;\n};\nexport type ExternalAppsFetchUsageOveragesQuery = {\n\n};\nexport type ExternalAppsFetchUsageOveragesBody = undefined;\nexport type ExternalAppsFetchUsageOveragesResponseData = {\n fetched: number;\n created: number;\n duplicates: number;\n warnings: number;\n};\nexport type ExternalAppsFetchUsageOveragesResponse = import(\"../types\").ApiEnvelope<ExternalAppsFetchUsageOveragesResponseData>;\n\nexport type ExternalAppsUpdateParams = {\n appId: number;\n};\nexport type ExternalAppsUpdateQuery = {\n\n};\nexport type ExternalAppsUpdateBody = {\n name?: string;\n description?: string | null;\n apiKey?: string | null;\n base_url?: string;\n entitlementPath?: string | null;\n usageOveragePath?: string | null;\n isActive?: boolean;\n authMethod?: \"api_key\" | \"apiKey\" | \"oauth\";\n oauthClientId?: string | null;\n oauthClientSecret?: string | null;\n commerceBranding?: {\n brandName: string;\n supportEmail: string;\n websiteUrl: string;\n logoUrl?: string | null;\n accentColor: string;\n senderName?: string | null;\n legalName?: string | null;\n manageSubscriptionsUrl?: string | null;\n senderEmail?: string | null;\n} | null;\n brandId?: number | null;\n};\nexport type ExternalAppsUpdateResponseData = Omit<ExternalApp, 'apiKey' | 'oauthClientSecret'> & { apiKey: null; oauthClientSecret: null; apiKeyMasked: string | null; oauthClientSecretMasked: string | null; hasApiKey: boolean; hasOAuthClientSecret: boolean; };\nexport type ExternalAppsUpdateResponse = import(\"../types\").ApiEnvelope<ExternalAppsUpdateResponseData>;\n\nexport type ExternalAppsGeneratePublicKeyParams = {\n appId: number;\n};\nexport type ExternalAppsGeneratePublicKeyQuery = {\n\n};\nexport type ExternalAppsGeneratePublicKeyBody = undefined;\nexport type ExternalAppsGeneratePublicKeyResponseData = {\n publicApiKey: string;\n};\nexport type ExternalAppsGeneratePublicKeyResponse = import(\"../types\").ApiEnvelope<ExternalAppsGeneratePublicKeyResponseData>;\n\nexport type ExternalAppsDeleteParams = {\n appId: number;\n};\nexport type ExternalAppsDeleteQuery = {\n\n};\nexport type ExternalAppsDeleteBody = undefined;\nexport type ExternalAppsDeleteResponseData = null;\nexport type ExternalAppsDeleteResponse = import(\"../types\").ApiEnvelope<ExternalAppsDeleteResponseData>;\n\nexport type ExternalAppsServiceRegisterParams = undefined;\nexport type ExternalAppsServiceRegisterQuery = {\n\n};\nexport type ExternalAppsServiceRegisterBody = {\n appId: string;\n name?: string;\n description?: string | null;\n apiKey?: string;\n base_url: string;\n entitlementPath?: string | null;\n usageOveragePath?: string | null;\n authMethod?: \"api_key\" | \"apiKey\" | \"oauth\";\n oauthClientId?: string;\n oauthClientSecret?: string;\n commerceBranding?: {\n brandName: string;\n supportEmail: string;\n websiteUrl: string;\n logoUrl?: string | null;\n accentColor: string;\n senderName?: string | null;\n legalName?: string | null;\n manageSubscriptionsUrl?: string | null;\n senderEmail?: string | null;\n} | null;\n brandId?: number;\n};\nexport type ExternalAppsServiceRegisterResponseData = Omit<ExternalApp, 'apiKey' | 'oauthClientSecret'> & { apiKey: null; oauthClientSecret: null; apiKeyMasked: string | null; oauthClientSecretMasked: string | null; hasApiKey: boolean; hasOAuthClientSecret: boolean; };\nexport type ExternalAppsServiceRegisterResponse = import(\"../types\").ApiEnvelope<ExternalAppsServiceRegisterResponseData>;\n\nexport type ExternalAppsServiceUpdateParams = {\n appId: number;\n};\nexport type ExternalAppsServiceUpdateQuery = {\n\n};\nexport type ExternalAppsServiceUpdateBody = {\n name?: string;\n description?: string | null;\n apiKey?: string | null;\n base_url?: string;\n entitlementPath?: string | null;\n usageOveragePath?: string | null;\n isActive?: boolean;\n authMethod?: \"api_key\" | \"apiKey\" | \"oauth\";\n oauthClientId?: string | null;\n oauthClientSecret?: string | null;\n commerceBranding?: {\n brandName: string;\n supportEmail: string;\n websiteUrl: string;\n logoUrl?: string | null;\n accentColor: string;\n senderName?: string | null;\n legalName?: string | null;\n manageSubscriptionsUrl?: string | null;\n senderEmail?: string | null;\n} | null;\n brandId?: number | null;\n};\nexport type ExternalAppsServiceUpdateResponseData = Omit<ExternalApp, 'apiKey' | 'oauthClientSecret'> & { apiKey: null; oauthClientSecret: null; apiKeyMasked: string | null; oauthClientSecretMasked: string | null; hasApiKey: boolean; hasOAuthClientSecret: boolean; };\nexport type ExternalAppsServiceUpdateResponse = import(\"../types\").ApiEnvelope<ExternalAppsServiceUpdateResponseData>;\n\nexport type ExternalAppsServiceDeleteParams = {\n appId: number;\n};\nexport type ExternalAppsServiceDeleteQuery = {\n\n};\nexport type ExternalAppsServiceDeleteBody = undefined;\nexport type ExternalAppsServiceDeleteResponseData = null;\nexport type ExternalAppsServiceDeleteResponse = import(\"../types\").ApiEnvelope<ExternalAppsServiceDeleteResponseData>;\n\nexport type ExternalAppsServiceStatusParams = import(\"../types\").ContractNotReady<\"Params not typed yet. Add DTO + validate({ params }) to the route.\">;\nexport type ExternalAppsServiceStatusQuery = import(\"../types\").ContractNotReady<\"Query not typed yet. Add DTO + validate({ query }) to the route (or explicitly declare none).\">;\nexport type ExternalAppsServiceStatusBody = undefined;\nexport type ExternalAppsServiceStatusResponseData = {\n registered: boolean;\n isActive: boolean;\n isLive: boolean;\n lastFetchedAt: string | null;\n lastFetchSuccess: boolean | null;\n};\nexport type ExternalAppsServiceStatusResponse = import(\"../types\").ApiEnvelope<ExternalAppsServiceStatusResponseData>;\n\nexport type ExternalAppsGetAllMetricCatalogsParams = undefined;\nexport type ExternalAppsGetAllMetricCatalogsQuery = {\n\n};\nexport type ExternalAppsGetAllMetricCatalogsBody = undefined;\nexport type ExternalAppsGetAllMetricCatalogsResponseData = { catalog: AppMetricCatalog[]; total: number; };\nexport type ExternalAppsGetAllMetricCatalogsResponse = import(\"../types\").ApiEnvelope<ExternalAppsGetAllMetricCatalogsResponseData>;\n\nexport type ExternalAppsGetMetricCatalogParams = {\n appId: number;\n};\nexport type ExternalAppsGetMetricCatalogQuery = {\n\n};\nexport type ExternalAppsGetMetricCatalogBody = undefined;\nexport type ExternalAppsGetMetricCatalogResponseData = { catalog: AppMetricCatalog[]; total: number; };\nexport type ExternalAppsGetMetricCatalogResponse = import(\"../types\").ApiEnvelope<ExternalAppsGetMetricCatalogResponseData>;\n\nexport type ExternalAppsSyncManifestParams = {\n appId: number;\n};\nexport type ExternalAppsSyncManifestQuery = {\n\n};\nexport type ExternalAppsSyncManifestBody = undefined;\nexport type ExternalAppsSyncManifestResponseData = { catalog: AppMetricCatalog[]; total: number; };\nexport type ExternalAppsSyncManifestResponse = import(\"../types\").ApiEnvelope<ExternalAppsSyncManifestResponseData>;\n\nexport const apiRoutes_external_apps = {\n \"external_apps_list\": {\n method: \"GET\",\n path: \"/external-apps/getAll\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"List registered external apps with synced entitlements\",\n description: \"Returns all configured external apps (with masked secrets) and each app's currently known entitlement catalog.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ExternalAppsListParams;\n query: ExternalAppsListQuery;\n body: ExternalAppsListBody;\n response: ExternalAppsListResponse;\n responseData: ExternalAppsListResponseData;\n },\n },\n \"external_apps_validate_entitlement\": {\n method: \"POST\",\n path: \"/external-apps/validate-entitlement\",\n auth: {\"type\":\"x_api_key_https\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Validate entitlement assignment for external app user\",\n description: \"Used by external apps to check whether a specific external user currently has an entitlement assignment. Requires `x-api-key` matching the provided `appId`.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: ExternalAppsValidateEntitlementParams;\n query: ExternalAppsValidateEntitlementQuery;\n body: ExternalAppsValidateEntitlementBody;\n response: ExternalAppsValidateEntitlementResponse;\n responseData: ExternalAppsValidateEntitlementResponseData;\n },\n },\n \"external_apps_create\": {\n method: \"POST\",\n path: \"/external-apps/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Create external app integration\",\n description: \"Creates a new external app connection used for entitlement pull/sync and optional usage-overage pull.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: ExternalAppsCreateParams;\n query: ExternalAppsCreateQuery;\n body: ExternalAppsCreateBody;\n response: ExternalAppsCreateResponse;\n responseData: ExternalAppsCreateResponseData;\n },\n },\n \"external_apps_fetch_entitlements\": {\n method: \"POST\",\n path: \"/external-apps/fetch-entitlements/:appId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Pull entitlement catalog from external app\",\n description: \"Triggers a pull against the external app entitlement collection endpoint and synchronizes local external entitlement records.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ExternalAppsFetchEntitlementsParams;\n query: ExternalAppsFetchEntitlementsQuery;\n body: ExternalAppsFetchEntitlementsBody;\n response: ExternalAppsFetchEntitlementsResponse;\n responseData: ExternalAppsFetchEntitlementsResponseData;\n },\n },\n \"external_apps_fetch_usage_overages\": {\n method: \"POST\",\n path: \"/external-apps/fetch-usage-overages/:appId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Pull usage overage events from external app\",\n description: \"Triggers usage-overage pull for one app and returns sync counters (`fetched`, `created`, `duplicates`, `warnings`).\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ExternalAppsFetchUsageOveragesParams;\n query: ExternalAppsFetchUsageOveragesQuery;\n body: ExternalAppsFetchUsageOveragesBody;\n response: ExternalAppsFetchUsageOveragesResponse;\n responseData: ExternalAppsFetchUsageOveragesResponseData;\n },\n },\n \"external_apps_update\": {\n method: \"PUT\",\n path: \"/external-apps/update/:appId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Update external app integration settings\",\n description: \"Updates auth/base URL/path/activation settings for an existing external app integration.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: ExternalAppsUpdateParams;\n query: ExternalAppsUpdateQuery;\n body: ExternalAppsUpdateBody;\n response: ExternalAppsUpdateResponse;\n responseData: ExternalAppsUpdateResponseData;\n },\n },\n \"external_apps_generate_public_key\": {\n method: \"POST\",\n path: \"/external-apps/:appId/public-key\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Generate (or rotate) an app's publicApiKey\",\n description: \"Stripe-Publishable-Key-Modell: generiert einen neuen, sicher client-seitig einbettbaren publicApiKey fuer diese App (AccessControl.isPublicFrontend). Ueberschreibt einen evtl. vorhandenen Key (Rotation) - alte eingebettete Keys werden dadurch sofort ungueltig.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ExternalAppsGeneratePublicKeyParams;\n query: ExternalAppsGeneratePublicKeyQuery;\n body: ExternalAppsGeneratePublicKeyBody;\n response: ExternalAppsGeneratePublicKeyResponse;\n responseData: ExternalAppsGeneratePublicKeyResponseData;\n },\n },\n \"external_apps_delete\": {\n method: \"DELETE\",\n path: \"/external-apps/delete/:appId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Delete external app integration\",\n description: \"Deletes one external app record. Use carefully, because historical references may depend on this app.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ExternalAppsDeleteParams;\n query: ExternalAppsDeleteQuery;\n body: ExternalAppsDeleteBody;\n response: ExternalAppsDeleteResponse;\n responseData: ExternalAppsDeleteResponseData;\n },\n },\n \"external_apps_service_register\": {\n method: \"POST\",\n path: \"/external-apps/service/register\",\n auth: {\"type\":\"x_api_key_https\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Register external app (B2B upsert)\",\n description: \"Idempotent upsert: creates a new external app if appId is unknown, updates credentials/URL if it already exists. Safe for retries and credential rotation.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: ExternalAppsServiceRegisterParams;\n query: ExternalAppsServiceRegisterQuery;\n body: ExternalAppsServiceRegisterBody;\n response: ExternalAppsServiceRegisterResponse;\n responseData: ExternalAppsServiceRegisterResponseData;\n },\n },\n \"external_apps_service_update\": {\n method: \"PUT\",\n path: \"/external-apps/service/update/:appId\",\n auth: {\"type\":\"x_api_key_https\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Update external app integration (B2B)\",\n description: \"Updates an existing external app connection. Authenticated via backend-to-backend API key.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: ExternalAppsServiceUpdateParams;\n query: ExternalAppsServiceUpdateQuery;\n body: ExternalAppsServiceUpdateBody;\n response: ExternalAppsServiceUpdateResponse;\n responseData: ExternalAppsServiceUpdateResponseData;\n },\n },\n \"external_apps_service_delete\": {\n method: \"DELETE\",\n path: \"/external-apps/service/delete/:appId\",\n auth: {\"type\":\"x_api_key_https\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Delete external app integration (B2B)\",\n description: \"Deletes an external app record. Authenticated via backend-to-backend API key.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ExternalAppsServiceDeleteParams;\n query: ExternalAppsServiceDeleteQuery;\n body: ExternalAppsServiceDeleteBody;\n response: ExternalAppsServiceDeleteResponse;\n responseData: ExternalAppsServiceDeleteResponseData;\n },\n },\n \"external_apps_service_status\": {\n method: \"GET\",\n path: \"/external-apps/service/status/:appId\",\n auth: {\"type\":\"x_api_key_https\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Get external app registration status (B2B)\",\n description: \"Returns registration status for an app identified by its string appId. Used by AMP to discover existing connections.\",\n },\n types: null as unknown as {\n params: ExternalAppsServiceStatusParams;\n query: ExternalAppsServiceStatusQuery;\n body: ExternalAppsServiceStatusBody;\n response: ExternalAppsServiceStatusResponse;\n responseData: ExternalAppsServiceStatusResponseData;\n },\n },\n \"external_apps_get_all_metric_catalogs\": {\n method: \"GET\",\n path: \"/external-apps/metric-catalog\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Get metric catalogs for all apps\",\n description: \"Returns synced metric catalogs from all external apps that have provided a manifest.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ExternalAppsGetAllMetricCatalogsParams;\n query: ExternalAppsGetAllMetricCatalogsQuery;\n body: ExternalAppsGetAllMetricCatalogsBody;\n response: ExternalAppsGetAllMetricCatalogsResponse;\n responseData: ExternalAppsGetAllMetricCatalogsResponseData;\n },\n },\n \"external_apps_get_metric_catalog\": {\n method: \"GET\",\n path: \"/external-apps/metric-catalog/:appId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Get metric catalog for one app\",\n description: \"Returns the synced metric catalog for a specific external app.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ExternalAppsGetMetricCatalogParams;\n query: ExternalAppsGetMetricCatalogQuery;\n body: ExternalAppsGetMetricCatalogBody;\n response: ExternalAppsGetMetricCatalogResponse;\n responseData: ExternalAppsGetMetricCatalogResponseData;\n },\n },\n \"external_apps_sync_manifest\": {\n method: \"POST\",\n path: \"/external-apps/sync-manifest/:appId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"external-apps\"],\n summary: \"Manually sync app manifest\",\n description: \"Triggers entitlement + manifest fetch for one app. Returns the updated metric catalog.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ExternalAppsSyncManifestParams;\n query: ExternalAppsSyncManifestQuery;\n body: ExternalAppsSyncManifestBody;\n response: ExternalAppsSyncManifestResponse;\n responseData: ExternalAppsSyncManifestResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { FulfillmentArtifact, FulfillmentRecord, FulfillmentStatus, FullFulfillmentRecord, FullShippmentProvider, PaginatedResult, Shipment, ShipmentItem, ShipmentStatus, ShipmentStatusUpdate, ShippingProvider, ShippingProviderProduct, ShippingRate, ShippingRateRegion, ShippingRateTranslated, VariantFulfillmentConfig, VariantPhysicalProperties, VariantShippingProviderConfig } from \"../../frontend-types\";\n\nexport type ShippingRatesCreateParams = {\n providerId: number;\n};\nexport type ShippingRatesCreateQuery = undefined;\nexport type ShippingRatesCreateBody = {\n name: string;\n description: string;\n providerPrice: string;\n retailPrice: string;\n isActive?: boolean;\n currency: string;\n estimatedDeliveryDays?: number;\n maxWeightGrams?: number;\n shippingDimensions?: {\n length: number;\n width: number;\n height?: number;\n} | null;\n productId?: number;\n countryCodes: Array<string>;\n};\nexport type ShippingRatesCreateResponseData = ShippingRate;\nexport type ShippingRatesCreateResponse = import(\"../types\").ApiEnvelope<ShippingRatesCreateResponseData>;\n\nexport type ShippingRatesUpdateParams = {\n rateId: number;\n};\nexport type ShippingRatesUpdateQuery = undefined;\nexport type ShippingRatesUpdateBody = {\n providerPrice?: string;\n retailPrice?: string;\n isActive?: boolean;\n currency?: string;\n estimatedDeliveryDays?: number;\n maxWeightGrams?: number;\n shippingDimensions?: {\n length: number;\n width: number;\n height?: number;\n} | null;\n};\nexport type ShippingRatesUpdateResponseData = ShippingRate;\nexport type ShippingRatesUpdateResponse = import(\"../types\").ApiEnvelope<ShippingRatesUpdateResponseData>;\n\nexport type ShippingRatesDeleteParams = {\n rateId: number;\n};\nexport type ShippingRatesDeleteQuery = undefined;\nexport type ShippingRatesDeleteBody = undefined;\nexport type ShippingRatesDeleteResponseData = null;\nexport type ShippingRatesDeleteResponse = import(\"../types\").ApiEnvelope<ShippingRatesDeleteResponseData>;\n\nexport type ShippingRatesAddRegionParams = {\n rateId: number;\n};\nexport type ShippingRatesAddRegionQuery = undefined;\nexport type ShippingRatesAddRegionBody = {\n countryCodes: Array<string>;\n};\nexport type ShippingRatesAddRegionResponseData = ShippingRateRegion;\nexport type ShippingRatesAddRegionResponse = import(\"../types\").ApiEnvelope<ShippingRatesAddRegionResponseData>;\n\nexport type ShippingRatesByProviderParams = {\n providerId: number;\n};\nexport type ShippingRatesByProviderQuery = {\n translated?: boolean;\n};\nexport type ShippingRatesByProviderBody = undefined;\nexport type ShippingRatesByProviderResponseData = ShippingRate[] | ShippingRateTranslated[];\nexport type ShippingRatesByProviderResponse = import(\"../types\").ApiEnvelope<ShippingRatesByProviderResponseData>;\n\nexport type ShippingProviderProductsCreateParams = {\n providerId: number;\n};\nexport type ShippingProviderProductsCreateQuery = undefined;\nexport type ShippingProviderProductsCreateBody = {\n productName: string;\n accountNumber: string;\n isActive?: boolean;\n productCode: string;\n autoSelectionRules?: Record<string, any> | null;\n};\nexport type ShippingProviderProductsCreateResponseData = ShippingProviderProduct;\nexport type ShippingProviderProductsCreateResponse = import(\"../types\").ApiEnvelope<ShippingProviderProductsCreateResponseData>;\n\nexport type ShippingProviderProductsDeleteParams = {\n productId: number;\n};\nexport type ShippingProviderProductsDeleteQuery = undefined;\nexport type ShippingProviderProductsDeleteBody = undefined;\nexport type ShippingProviderProductsDeleteResponseData = null;\nexport type ShippingProviderProductsDeleteResponse = import(\"../types\").ApiEnvelope<ShippingProviderProductsDeleteResponseData>;\n\nexport type ShippingProviderProductsUpdateParams = {\n productId: number;\n};\nexport type ShippingProviderProductsUpdateQuery = undefined;\nexport type ShippingProviderProductsUpdateBody = {\n productName?: string;\n accountNumber?: string;\n isActive?: boolean;\n productCode?: string;\n autoSelectionRules?: Record<string, any> | null;\n};\nexport type ShippingProviderProductsUpdateResponseData = ShippingProviderProduct;\nexport type ShippingProviderProductsUpdateResponse = import(\"../types\").ApiEnvelope<ShippingProviderProductsUpdateResponseData>;\n\nexport type ShippingProvidersByIdParams = {\n providerId: number;\n};\nexport type ShippingProvidersByIdQuery = undefined;\nexport type ShippingProvidersByIdBody = undefined;\nexport type ShippingProvidersByIdResponseData = ShippingProvider | null;\nexport type ShippingProvidersByIdResponse = import(\"../types\").ApiEnvelope<ShippingProvidersByIdResponseData>;\n\nexport type ShippingProvidersByIdDetailsParams = {\n providerId: number;\n};\nexport type ShippingProvidersByIdDetailsQuery = undefined;\nexport type ShippingProvidersByIdDetailsBody = undefined;\nexport type ShippingProvidersByIdDetailsResponseData = FullShippmentProvider | null;\nexport type ShippingProvidersByIdDetailsResponse = import(\"../types\").ApiEnvelope<ShippingProvidersByIdDetailsResponseData>;\n\nexport type ShippingProvidersCreateParams = undefined;\nexport type ShippingProvidersCreateQuery = undefined;\nexport type ShippingProvidersCreateBody = {\n name: string;\n path: {\n createShipment: string;\n trackShipment: string;\n cancelShipment?: string;\n fetchRates?: string;\n};\n description?: string;\n isActive?: boolean;\n apiKey?: string;\n apiSecret?: string;\n baseUrl?: string;\n trackingUrlTemplate?: string;\n};\nexport type ShippingProvidersCreateResponseData = ShippingProvider;\nexport type ShippingProvidersCreateResponse = import(\"../types\").ApiEnvelope<ShippingProvidersCreateResponseData>;\n\nexport type ShippingProvidersUpdateParams = {\n providerId: number;\n};\nexport type ShippingProvidersUpdateQuery = undefined;\nexport type ShippingProvidersUpdateBody = {\n name?: string;\n path?: {\n createShipment: string;\n trackShipment: string;\n cancelShipment?: string;\n fetchRates?: string;\n};\n description?: string;\n isActive?: boolean;\n apiKey?: string;\n apiSecret?: string;\n baseUrl?: string;\n trackingUrlTemplate?: string;\n};\nexport type ShippingProvidersUpdateResponseData = ShippingProvider;\nexport type ShippingProvidersUpdateResponse = import(\"../types\").ApiEnvelope<ShippingProvidersUpdateResponseData>;\n\nexport type ShippingProvidersDeleteParams = {\n providerId: number;\n};\nexport type ShippingProvidersDeleteQuery = undefined;\nexport type ShippingProvidersDeleteBody = undefined;\nexport type ShippingProvidersDeleteResponseData = null;\nexport type ShippingProvidersDeleteResponse = import(\"../types\").ApiEnvelope<ShippingProvidersDeleteResponseData>;\n\nexport type ShippingProvidersListParams = undefined;\nexport type ShippingProvidersListQuery = {\n\n};\nexport type ShippingProvidersListBody = undefined;\nexport type ShippingProvidersListResponseData = ShippingProvider[];\nexport type ShippingProvidersListResponse = import(\"../types\").ApiEnvelope<ShippingProvidersListResponseData>;\n\nexport type ShippingProvidersListDetailsParams = undefined;\nexport type ShippingProvidersListDetailsQuery = {\n\n};\nexport type ShippingProvidersListDetailsBody = undefined;\nexport type ShippingProvidersListDetailsResponseData = FullShippmentProvider[];\nexport type ShippingProvidersListDetailsResponse = import(\"../types\").ApiEnvelope<ShippingProvidersListDetailsResponseData>;\n\nexport type ShippingProvidersActivateParams = {\n providerId: number;\n};\nexport type ShippingProvidersActivateQuery = undefined;\nexport type ShippingProvidersActivateBody = undefined;\nexport type ShippingProvidersActivateResponseData = ShippingProvider;\nexport type ShippingProvidersActivateResponse = import(\"../types\").ApiEnvelope<ShippingProvidersActivateResponseData>;\n\nexport type ShippingProvidersDeactivateParams = {\n providerId: number;\n};\nexport type ShippingProvidersDeactivateQuery = undefined;\nexport type ShippingProvidersDeactivateBody = undefined;\nexport type ShippingProvidersDeactivateResponseData = ShippingProvider;\nexport type ShippingProvidersDeactivateResponse = import(\"../types\").ApiEnvelope<ShippingProvidersDeactivateResponseData>;\n\nexport type VariantShippingConfigsListByVariantParams = {\n variantId: number;\n};\nexport type VariantShippingConfigsListByVariantQuery = {\n\n};\nexport type VariantShippingConfigsListByVariantBody = undefined;\nexport type VariantShippingConfigsListByVariantResponseData = { configs: VariantShippingProviderConfig[]; providers: ShippingProvider[] };\nexport type VariantShippingConfigsListByVariantResponse = import(\"../types\").ApiEnvelope<VariantShippingConfigsListByVariantResponseData>;\n\nexport type VariantShippingConfigsCreateParams = {\n variantId: number;\n};\nexport type VariantShippingConfigsCreateQuery = undefined;\nexport type VariantShippingConfigsCreateBody = {\n shippingProviderId: number;\n shippingRateId?: number | null;\n};\nexport type VariantShippingConfigsCreateResponseData = VariantShippingProviderConfig;\nexport type VariantShippingConfigsCreateResponse = import(\"../types\").ApiEnvelope<VariantShippingConfigsCreateResponseData>;\n\nexport type VariantShippingConfigsUpdateParams = {\n configId: number;\n};\nexport type VariantShippingConfigsUpdateQuery = undefined;\nexport type VariantShippingConfigsUpdateBody = {\n shippingRateId?: number | null;\n};\nexport type VariantShippingConfigsUpdateResponseData = VariantShippingProviderConfig;\nexport type VariantShippingConfigsUpdateResponse = import(\"../types\").ApiEnvelope<VariantShippingConfigsUpdateResponseData>;\n\nexport type VariantShippingConfigsDeleteParams = {\n configId: number;\n};\nexport type VariantShippingConfigsDeleteQuery = undefined;\nexport type VariantShippingConfigsDeleteBody = undefined;\nexport type VariantShippingConfigsDeleteResponseData = null;\nexport type VariantShippingConfigsDeleteResponse = import(\"../types\").ApiEnvelope<VariantShippingConfigsDeleteResponseData>;\n\nexport type VariantShippingPhysicalPropertiesCreateParams = {\n variantId: number;\n};\nexport type VariantShippingPhysicalPropertiesCreateQuery = undefined;\nexport type VariantShippingPhysicalPropertiesCreateBody = {\n length: number;\n weightGrams: number;\n width: number;\n height: number;\n requiresSpecialPackaging?: boolean;\n packagingNote?: string;\n hsCode?: string;\n countryOfOrigin?: string;\n customsValue?: number;\n customsDescription?: string;\n};\nexport type VariantShippingPhysicalPropertiesCreateResponseData = VariantPhysicalProperties;\nexport type VariantShippingPhysicalPropertiesCreateResponse = import(\"../types\").ApiEnvelope<VariantShippingPhysicalPropertiesCreateResponseData>;\n\nexport type VariantShippingPhysicalPropertiesUpdateParams = {\n variantId: number;\n};\nexport type VariantShippingPhysicalPropertiesUpdateQuery = undefined;\nexport type VariantShippingPhysicalPropertiesUpdateBody = {\n length?: number;\n weightGrams?: number;\n width?: number;\n height?: number;\n requiresSpecialPackaging?: boolean;\n packagingNote?: string;\n hsCode?: string;\n countryOfOrigin?: string;\n customsValue?: number;\n customsDescription?: string;\n};\nexport type VariantShippingPhysicalPropertiesUpdateResponseData = VariantPhysicalProperties;\nexport type VariantShippingPhysicalPropertiesUpdateResponse = import(\"../types\").ApiEnvelope<VariantShippingPhysicalPropertiesUpdateResponseData>;\n\nexport type VariantShippingPhysicalPropertiesDeleteParams = {\n variantId: number;\n};\nexport type VariantShippingPhysicalPropertiesDeleteQuery = undefined;\nexport type VariantShippingPhysicalPropertiesDeleteBody = undefined;\nexport type VariantShippingPhysicalPropertiesDeleteResponseData = null;\nexport type VariantShippingPhysicalPropertiesDeleteResponse = import(\"../types\").ApiEnvelope<VariantShippingPhysicalPropertiesDeleteResponseData>;\n\nexport type VariantShippingPhysicalPropertiesGetParams = {\n variantId: number;\n};\nexport type VariantShippingPhysicalPropertiesGetQuery = {\n\n};\nexport type VariantShippingPhysicalPropertiesGetBody = undefined;\nexport type VariantShippingPhysicalPropertiesGetResponseData = VariantPhysicalProperties;\nexport type VariantShippingPhysicalPropertiesGetResponse = import(\"../types\").ApiEnvelope<VariantShippingPhysicalPropertiesGetResponseData>;\n\nexport type ShippingSearchParams = undefined;\nexport type ShippingSearchQuery = undefined;\nexport type ShippingSearchBody = {\n page?: number;\n pageSize?: number;\n status?: \"pending\" | \"label_created\" | \"picked_up\" | \"in_transit\" | \"out_for_delivery\" | \"delivered\" | \"exception\" | \"failed\" | \"returning\" | \"returned\" | \"cancelled\" | Array<\"pending\" | \"label_created\" | \"picked_up\" | \"in_transit\" | \"out_for_delivery\" | \"delivered\" | \"exception\" | \"failed\" | \"returning\" | \"returned\" | \"cancelled\">;\n excludeStatuses?: Array<\"pending\" | \"label_created\" | \"picked_up\" | \"in_transit\" | \"out_for_delivery\" | \"delivered\" | \"exception\" | \"failed\" | \"returning\" | \"returned\" | \"cancelled\">;\n orderId?: string;\n customerEmail?: string;\n trackingNumber?: string;\n carrier?: string;\n providerId?: number;\n rateId?: number;\n shippingCountry?: string;\n shippingCity?: string;\n shippingPostalCode?: string;\n minWeight?: number;\n maxWeight?: number;\n minCost?: number;\n maxCost?: number;\n currency?: string;\n createdFrom?: string;\n createdTo?: string;\n labelCreatedFrom?: string;\n labelCreatedTo?: string;\n deliveredFrom?: string;\n deliveredTo?: string;\n pickedUpFrom?: string;\n pickedUpTo?: string;\n hasTracking?: boolean;\n hasLabel?: boolean;\n hasFailed?: boolean;\n pendingLabelCreation?: boolean;\n requiresAction?: boolean;\n search?: string;\n sortBy?: \"createdAt\" | \"labelCreatedAt\" | \"deliveredAt\" | \"totalWeightGrams\" | \"shippingCost\" | \"status\";\n sortOrder?: \"asc\" | \"desc\";\n};\nexport type ShippingSearchResponseData = {\n items: Array<{\n\n}>;\n page: number;\n pageSize: number;\n total: number;\n totalPages: number;\n hasNextPage: boolean;\n hasPrevPage: boolean;\n};\nexport type ShippingSearchResponse = import(\"../types\").ApiEnvelope<ShippingSearchResponseData>;\n\nexport type ShippingStatisticsParams = undefined;\nexport type ShippingStatisticsQuery = {\n\n};\nexport type ShippingStatisticsBody = undefined;\nexport type ShippingStatisticsResponseData = Record<ShipmentStatus, number>;\nexport type ShippingStatisticsResponse = import(\"../types\").ApiEnvelope<ShippingStatisticsResponseData>;\n\nexport type ShippingOrderShipmentsParams = {\n orderId: string;\n};\nexport type ShippingOrderShipmentsQuery = undefined;\nexport type ShippingOrderShipmentsBody = undefined;\nexport type ShippingOrderShipmentsResponseData = Shipment[];\nexport type ShippingOrderShipmentsResponse = import(\"../types\").ApiEnvelope<ShippingOrderShipmentsResponseData>;\n\nexport type ShippingByIdParams = {\n shipmentId: number;\n};\nexport type ShippingByIdQuery = undefined;\nexport type ShippingByIdBody = undefined;\nexport type ShippingByIdResponseData = { shipment: Shipment; items: ShipmentItem[]; statusHistory: ShipmentStatusUpdate[] };\nexport type ShippingByIdResponse = import(\"../types\").ApiEnvelope<ShippingByIdResponseData>;\n\nexport type ShippingCreateLabelParams = {\n shipmentId: number;\n};\nexport type ShippingCreateLabelQuery = undefined;\nexport type ShippingCreateLabelBody = {\n shippingProviderProductId?: number;\n productCode?: string;\n services?: {\n preferredDay?: string;\n cashOnDelivery?: {\n amount: number;\n currency: string;\n};\n};\n};\nexport type ShippingCreateLabelResponseData = {\n shipment: {\n\n};\n trackingNumber: string;\n trackingUrl: string;\n labelPath: string;\n providerName: string;\n providerProductId: number;\n productCode: string;\n};\nexport type ShippingCreateLabelResponse = import(\"../types\").ApiEnvelope<ShippingCreateLabelResponseData>;\n\nexport type ShippingCreateReturnLabelParams = {\n shipmentId: number;\n};\nexport type ShippingCreateReturnLabelQuery = undefined;\nexport type ShippingCreateReturnLabelBody = {\n shippingProviderProductId?: number;\n productCode?: string;\n reason?: string;\n};\nexport type ShippingCreateReturnLabelResponseData = {\n returnShipment: {\n\n};\n originalShipment: {\n\n};\n trackingNumber: string;\n trackingUrl: string;\n labelPath: string;\n providerName: string;\n providerProductId: number;\n productCode: string;\n};\nexport type ShippingCreateReturnLabelResponse = import(\"../types\").ApiEnvelope<ShippingCreateReturnLabelResponseData>;\n\nexport type ShippingUpdateStatusParams = {\n shipmentId: number;\n};\nexport type ShippingUpdateStatusQuery = undefined;\nexport type ShippingUpdateStatusBody = {\n status: \"pending\" | \"label_created\" | \"picked_up\" | \"in_transit\" | \"out_for_delivery\" | \"delivered\" | \"exception\" | \"failed\" | \"returning\" | \"returned\" | \"cancelled\";\n location?: string;\n description?: string;\n};\nexport type ShippingUpdateStatusResponseData = Shipment;\nexport type ShippingUpdateStatusResponse = import(\"../types\").ApiEnvelope<ShippingUpdateStatusResponseData>;\n\nexport type ShippingAddTrackingParams = {\n shipmentId: number;\n};\nexport type ShippingAddTrackingQuery = undefined;\nexport type ShippingAddTrackingBody = {\n trackingNumber: string;\n carrier?: string;\n trackingUrl?: string;\n};\nexport type ShippingAddTrackingResponseData = Shipment;\nexport type ShippingAddTrackingResponse = import(\"../types\").ApiEnvelope<ShippingAddTrackingResponseData>;\n\nexport type ShippingCancelParams = {\n shipmentId: number;\n};\nexport type ShippingCancelQuery = undefined;\nexport type ShippingCancelBody = undefined;\nexport type ShippingCancelResponseData = null;\nexport type ShippingCancelResponse = import(\"../types\").ApiEnvelope<ShippingCancelResponseData>;\n\nexport type FulfillmentOrderParams = {\n orderId: string;\n};\nexport type FulfillmentOrderQuery = undefined;\nexport type FulfillmentOrderBody = undefined;\nexport type FulfillmentOrderResponseData = FullFulfillmentRecord[];\nexport type FulfillmentOrderResponse = import(\"../types\").ApiEnvelope<FulfillmentOrderResponseData>;\n\nexport type FulfillmentItemParams = {\n orderItemId: string;\n};\nexport type FulfillmentItemQuery = undefined;\nexport type FulfillmentItemBody = undefined;\nexport type FulfillmentItemResponseData = { record: FulfillmentRecord; artifacts: FulfillmentArtifact[] };\nexport type FulfillmentItemResponse = import(\"../types\").ApiEnvelope<FulfillmentItemResponseData>;\n\nexport type FulfillmentStatsParams = undefined;\nexport type FulfillmentStatsQuery = {\n\n};\nexport type FulfillmentStatsBody = undefined;\nexport type FulfillmentStatsResponseData = Record<FulfillmentStatus, number>;\nexport type FulfillmentStatsResponse = import(\"../types\").ApiEnvelope<FulfillmentStatsResponseData>;\n\nexport type FulfillmentFailedParams = undefined;\nexport type FulfillmentFailedQuery = {\n limit?: number;\n};\nexport type FulfillmentFailedBody = undefined;\nexport type FulfillmentFailedResponseData = FulfillmentRecord[];\nexport type FulfillmentFailedResponse = import(\"../types\").ApiEnvelope<FulfillmentFailedResponseData>;\n\nexport type FulfillmentByIdParams = {\n fulfillmentId: number;\n};\nexport type FulfillmentByIdQuery = undefined;\nexport type FulfillmentByIdBody = undefined;\nexport type FulfillmentByIdResponseData = FulfillmentRecord;\nexport type FulfillmentByIdResponse = import(\"../types\").ApiEnvelope<FulfillmentByIdResponseData>;\n\nexport type FulfillmentArtifactsParams = {\n fulfillmentId: number;\n};\nexport type FulfillmentArtifactsQuery = undefined;\nexport type FulfillmentArtifactsBody = undefined;\nexport type FulfillmentArtifactsResponseData = FulfillmentArtifact[];\nexport type FulfillmentArtifactsResponse = import(\"../types\").ApiEnvelope<FulfillmentArtifactsResponseData>;\n\nexport type FulfillmentRetryParams = {\n fulfillmentId: number;\n};\nexport type FulfillmentRetryQuery = undefined;\nexport type FulfillmentRetryBody = undefined;\nexport type FulfillmentRetryResponseData = FulfillmentRecord;\nexport type FulfillmentRetryResponse = import(\"../types\").ApiEnvelope<FulfillmentRetryResponseData>;\n\nexport type FulfillmentCancelParams = {\n fulfillmentId: number;\n};\nexport type FulfillmentCancelQuery = undefined;\nexport type FulfillmentCancelBody = undefined;\nexport type FulfillmentCancelResponseData = FulfillmentRecord;\nexport type FulfillmentCancelResponse = import(\"../types\").ApiEnvelope<FulfillmentCancelResponseData>;\n\nexport type FulfillmentVariantConfigCreateParams = {\n variantId: number;\n};\nexport type FulfillmentVariantConfigCreateQuery = undefined;\nexport type FulfillmentVariantConfigCreateBody = {\n fulfillmentType: \"physical_stocked\" | \"physical_pod\" | \"physical_dropship\" | \"digital_ticket\" | \"digital_entitlement\" | \"digital_download\" | \"digital_streaming\" | \"digital_license\";\n provider: \"internal\" | \"printful\" | \"printify\" | \"custom\";\n externalProductId?: string;\n externalVariantId?: string;\n priority?: number;\n configMetadata?: Record<string, any>;\n};\nexport type FulfillmentVariantConfigCreateResponseData = VariantFulfillmentConfig;\nexport type FulfillmentVariantConfigCreateResponse = import(\"../types\").ApiEnvelope<FulfillmentVariantConfigCreateResponseData>;\n\nexport type FulfillmentVariantConfigUpdateParams = {\n configId: number;\n};\nexport type FulfillmentVariantConfigUpdateQuery = undefined;\nexport type FulfillmentVariantConfigUpdateBody = {\n fulfillmentType?: \"physical_stocked\" | \"physical_pod\" | \"physical_dropship\" | \"digital_ticket\" | \"digital_entitlement\" | \"digital_download\" | \"digital_streaming\" | \"digital_license\";\n provider?: \"internal\" | \"printful\" | \"printify\" | \"custom\";\n externalProductId?: string;\n externalVariantId?: string;\n priority?: number;\n configMetadata?: Record<string, any>;\n};\nexport type FulfillmentVariantConfigUpdateResponseData = VariantFulfillmentConfig;\nexport type FulfillmentVariantConfigUpdateResponse = import(\"../types\").ApiEnvelope<FulfillmentVariantConfigUpdateResponseData>;\n\nexport type FulfillmentVariantConfigByIdParams = {\n configId: number;\n};\nexport type FulfillmentVariantConfigByIdQuery = undefined;\nexport type FulfillmentVariantConfigByIdBody = undefined;\nexport type FulfillmentVariantConfigByIdResponseData = VariantFulfillmentConfig;\nexport type FulfillmentVariantConfigByIdResponse = import(\"../types\").ApiEnvelope<FulfillmentVariantConfigByIdResponseData>;\n\nexport type FulfillmentVariantConfigStatsParams = {\n variantId: number;\n};\nexport type FulfillmentVariantConfigStatsQuery = {\n search?: string;\n page?: number;\n limit?: number;\n};\nexport type FulfillmentVariantConfigStatsBody = undefined;\nexport type FulfillmentVariantConfigStatsResponseData = PaginatedResult<FullFulfillmentRecord>;\nexport type FulfillmentVariantConfigStatsResponse = import(\"../types\").ApiEnvelope<FulfillmentVariantConfigStatsResponseData>;\n\nexport type FulfillmentVariantConfigDeleteParams = {\n configId: number;\n};\nexport type FulfillmentVariantConfigDeleteQuery = undefined;\nexport type FulfillmentVariantConfigDeleteBody = undefined;\nexport type FulfillmentVariantConfigDeleteResponseData = null;\nexport type FulfillmentVariantConfigDeleteResponse = import(\"../types\").ApiEnvelope<FulfillmentVariantConfigDeleteResponseData>;\n\nexport const apiRoutes_fulfillment = {\n \"shipping_rates_create\": {\n method: \"POST\",\n path: \"/fulfillment/shipping/providers/rates/create/:providerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Create shipping rate\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ShippingRatesCreateParams;\n query: ShippingRatesCreateQuery;\n body: ShippingRatesCreateBody;\n response: ShippingRatesCreateResponse;\n responseData: ShippingRatesCreateResponseData;\n },\n },\n \"shipping_rates_update\": {\n method: \"PUT\",\n path: \"/fulfillment/shipping/providers/rates/update/:rateId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Update shipping rate\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ShippingRatesUpdateParams;\n query: ShippingRatesUpdateQuery;\n body: ShippingRatesUpdateBody;\n response: ShippingRatesUpdateResponse;\n responseData: ShippingRatesUpdateResponseData;\n },\n },\n \"shipping_rates_delete\": {\n method: \"DELETE\",\n path: \"/fulfillment/shipping/providers/rates/delete/:rateId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Delete shipping rate\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingRatesDeleteParams;\n query: ShippingRatesDeleteQuery;\n body: ShippingRatesDeleteBody;\n response: ShippingRatesDeleteResponse;\n responseData: ShippingRatesDeleteResponseData;\n },\n },\n \"shipping_rates_add_region\": {\n method: \"POST\",\n path: \"/fulfillment/shipping/providers/rates/add-region/:rateId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Add region to shipping rate\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ShippingRatesAddRegionParams;\n query: ShippingRatesAddRegionQuery;\n body: ShippingRatesAddRegionBody;\n response: ShippingRatesAddRegionResponse;\n responseData: ShippingRatesAddRegionResponseData;\n },\n },\n \"shipping_rates_by_provider\": {\n method: \"GET\",\n path: \"/fulfillment/shipping/providers/rates/provider/:providerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get shipping rates by provider\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingRatesByProviderParams;\n query: ShippingRatesByProviderQuery;\n body: ShippingRatesByProviderBody;\n response: ShippingRatesByProviderResponse;\n responseData: ShippingRatesByProviderResponseData;\n },\n },\n \"shipping_provider_products_create\": {\n method: \"POST\",\n path: \"/fulfillment/shipping/providers/products/create/:providerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Create shipping provider product\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ShippingProviderProductsCreateParams;\n query: ShippingProviderProductsCreateQuery;\n body: ShippingProviderProductsCreateBody;\n response: ShippingProviderProductsCreateResponse;\n responseData: ShippingProviderProductsCreateResponseData;\n },\n },\n \"shipping_provider_products_delete\": {\n method: \"DELETE\",\n path: \"/fulfillment/shipping/providers/products/delete/:productId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Delete shipping provider product\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingProviderProductsDeleteParams;\n query: ShippingProviderProductsDeleteQuery;\n body: ShippingProviderProductsDeleteBody;\n response: ShippingProviderProductsDeleteResponse;\n responseData: ShippingProviderProductsDeleteResponseData;\n },\n },\n \"shipping_provider_products_update\": {\n method: \"PUT\",\n path: \"/fulfillment/shipping/providers/products/update/:productId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Update shipping provider product\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ShippingProviderProductsUpdateParams;\n query: ShippingProviderProductsUpdateQuery;\n body: ShippingProviderProductsUpdateBody;\n response: ShippingProviderProductsUpdateResponse;\n responseData: ShippingProviderProductsUpdateResponseData;\n },\n },\n \"shipping_providers_by_id\": {\n method: \"GET\",\n path: \"/fulfillment/shipping/providers/byId/:providerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get shipping provider by id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingProvidersByIdParams;\n query: ShippingProvidersByIdQuery;\n body: ShippingProvidersByIdBody;\n response: ShippingProvidersByIdResponse;\n responseData: ShippingProvidersByIdResponseData;\n },\n },\n \"shipping_providers_by_id_details\": {\n method: \"GET\",\n path: \"/fulfillment/shipping/providers/byId/:providerId/details\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get shipping provider with details by id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingProvidersByIdDetailsParams;\n query: ShippingProvidersByIdDetailsQuery;\n body: ShippingProvidersByIdDetailsBody;\n response: ShippingProvidersByIdDetailsResponse;\n responseData: ShippingProvidersByIdDetailsResponseData;\n },\n },\n \"shipping_providers_create\": {\n method: \"POST\",\n path: \"/fulfillment/shipping/providers/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Create shipping provider\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ShippingProvidersCreateParams;\n query: ShippingProvidersCreateQuery;\n body: ShippingProvidersCreateBody;\n response: ShippingProvidersCreateResponse;\n responseData: ShippingProvidersCreateResponseData;\n },\n },\n \"shipping_providers_update\": {\n method: \"PUT\",\n path: \"/fulfillment/shipping/providers/update/:providerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Update shipping provider\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ShippingProvidersUpdateParams;\n query: ShippingProvidersUpdateQuery;\n body: ShippingProvidersUpdateBody;\n response: ShippingProvidersUpdateResponse;\n responseData: ShippingProvidersUpdateResponseData;\n },\n },\n \"shipping_providers_delete\": {\n method: \"DELETE\",\n path: \"/fulfillment/shipping/providers/delete/:providerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Delete shipping provider\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingProvidersDeleteParams;\n query: ShippingProvidersDeleteQuery;\n body: ShippingProvidersDeleteBody;\n response: ShippingProvidersDeleteResponse;\n responseData: ShippingProvidersDeleteResponseData;\n },\n },\n \"shipping_providers_list\": {\n method: \"GET\",\n path: \"/fulfillment/shipping/providers/getAll\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"List shipping providers\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingProvidersListParams;\n query: ShippingProvidersListQuery;\n body: ShippingProvidersListBody;\n response: ShippingProvidersListResponse;\n responseData: ShippingProvidersListResponseData;\n },\n },\n \"shipping_providers_list_details\": {\n method: \"GET\",\n path: \"/fulfillment/shipping/providers/getAll/details\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"List shipping providers with details\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingProvidersListDetailsParams;\n query: ShippingProvidersListDetailsQuery;\n body: ShippingProvidersListDetailsBody;\n response: ShippingProvidersListDetailsResponse;\n responseData: ShippingProvidersListDetailsResponseData;\n },\n },\n \"shipping_providers_activate\": {\n method: \"POST\",\n path: \"/fulfillment/shipping/providers/activate/:providerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Activate shipping provider\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingProvidersActivateParams;\n query: ShippingProvidersActivateQuery;\n body: ShippingProvidersActivateBody;\n response: ShippingProvidersActivateResponse;\n responseData: ShippingProvidersActivateResponseData;\n },\n },\n \"shipping_providers_deactivate\": {\n method: \"POST\",\n path: \"/fulfillment/shipping/providers/deactivate/:providerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Deactivate shipping provider\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingProvidersDeactivateParams;\n query: ShippingProvidersDeactivateQuery;\n body: ShippingProvidersDeactivateBody;\n response: ShippingProvidersDeactivateResponse;\n responseData: ShippingProvidersDeactivateResponseData;\n },\n },\n \"variant_shipping_configs_list_by_variant\": {\n method: \"GET\",\n path: \"/fulfillment/shipping/variant-configs/variant-configs/:variantId\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get variant shipping configs\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: VariantShippingConfigsListByVariantParams;\n query: VariantShippingConfigsListByVariantQuery;\n body: VariantShippingConfigsListByVariantBody;\n response: VariantShippingConfigsListByVariantResponse;\n responseData: VariantShippingConfigsListByVariantResponseData;\n },\n },\n \"variant_shipping_configs_create\": {\n method: \"POST\",\n path: \"/fulfillment/shipping/variant-configs/create/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Create variant shipping config\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: VariantShippingConfigsCreateParams;\n query: VariantShippingConfigsCreateQuery;\n body: VariantShippingConfigsCreateBody;\n response: VariantShippingConfigsCreateResponse;\n responseData: VariantShippingConfigsCreateResponseData;\n },\n },\n \"variant_shipping_configs_update\": {\n method: \"PUT\",\n path: \"/fulfillment/shipping/variant-configs/update/:configId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Update variant shipping config\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: VariantShippingConfigsUpdateParams;\n query: VariantShippingConfigsUpdateQuery;\n body: VariantShippingConfigsUpdateBody;\n response: VariantShippingConfigsUpdateResponse;\n responseData: VariantShippingConfigsUpdateResponseData;\n },\n },\n \"variant_shipping_configs_delete\": {\n method: \"DELETE\",\n path: \"/fulfillment/shipping/variant-configs/delete/:configId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Delete variant shipping config\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: VariantShippingConfigsDeleteParams;\n query: VariantShippingConfigsDeleteQuery;\n body: VariantShippingConfigsDeleteBody;\n response: VariantShippingConfigsDeleteResponse;\n responseData: VariantShippingConfigsDeleteResponseData;\n },\n },\n \"variant_shipping_physical_properties_create\": {\n method: \"POST\",\n path: \"/fulfillment/shipping/variant-configs/physical-properties/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Create variant physical properties\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: VariantShippingPhysicalPropertiesCreateParams;\n query: VariantShippingPhysicalPropertiesCreateQuery;\n body: VariantShippingPhysicalPropertiesCreateBody;\n response: VariantShippingPhysicalPropertiesCreateResponse;\n responseData: VariantShippingPhysicalPropertiesCreateResponseData;\n },\n },\n \"variant_shipping_physical_properties_update\": {\n method: \"PUT\",\n path: \"/fulfillment/shipping/variant-configs/physical-properties/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Update variant physical properties\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: VariantShippingPhysicalPropertiesUpdateParams;\n query: VariantShippingPhysicalPropertiesUpdateQuery;\n body: VariantShippingPhysicalPropertiesUpdateBody;\n response: VariantShippingPhysicalPropertiesUpdateResponse;\n responseData: VariantShippingPhysicalPropertiesUpdateResponseData;\n },\n },\n \"variant_shipping_physical_properties_delete\": {\n method: \"DELETE\",\n path: \"/fulfillment/shipping/variant-configs/physical-properties/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Delete variant physical properties\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: VariantShippingPhysicalPropertiesDeleteParams;\n query: VariantShippingPhysicalPropertiesDeleteQuery;\n body: VariantShippingPhysicalPropertiesDeleteBody;\n response: VariantShippingPhysicalPropertiesDeleteResponse;\n responseData: VariantShippingPhysicalPropertiesDeleteResponseData;\n },\n },\n \"variant_shipping_physical_properties_get\": {\n method: \"GET\",\n path: \"/fulfillment/shipping/variant-configs/physical-properties/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get variant physical properties\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: VariantShippingPhysicalPropertiesGetParams;\n query: VariantShippingPhysicalPropertiesGetQuery;\n body: VariantShippingPhysicalPropertiesGetBody;\n response: VariantShippingPhysicalPropertiesGetResponse;\n responseData: VariantShippingPhysicalPropertiesGetResponseData;\n },\n },\n \"shipping_search\": {\n method: \"POST\",\n path: \"/fulfillment/shipping/search\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Search shipments\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ShippingSearchParams;\n query: ShippingSearchQuery;\n body: ShippingSearchBody;\n response: ShippingSearchResponse;\n responseData: ShippingSearchResponseData;\n },\n },\n \"shipping_statistics\": {\n method: \"GET\",\n path: \"/fulfillment/shipping/statistics\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get shipment statistics\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingStatisticsParams;\n query: ShippingStatisticsQuery;\n body: ShippingStatisticsBody;\n response: ShippingStatisticsResponse;\n responseData: ShippingStatisticsResponseData;\n },\n },\n \"shipping_order_shipments\": {\n method: \"GET\",\n path: \"/fulfillment/shipping/order/:orderId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get shipments by order id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingOrderShipmentsParams;\n query: ShippingOrderShipmentsQuery;\n body: ShippingOrderShipmentsBody;\n response: ShippingOrderShipmentsResponse;\n responseData: ShippingOrderShipmentsResponseData;\n },\n },\n \"shipping_by_id\": {\n method: \"GET\",\n path: \"/fulfillment/shipping/byId/:shipmentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get shipment details\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingByIdParams;\n query: ShippingByIdQuery;\n body: ShippingByIdBody;\n response: ShippingByIdResponse;\n responseData: ShippingByIdResponseData;\n },\n },\n \"shipping_create_label\": {\n method: \"POST\",\n path: \"/fulfillment/shipping/create-label/:shipmentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Create shipping label\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ShippingCreateLabelParams;\n query: ShippingCreateLabelQuery;\n body: ShippingCreateLabelBody;\n response: ShippingCreateLabelResponse;\n responseData: ShippingCreateLabelResponseData;\n },\n },\n \"shipping_create_return_label\": {\n method: \"POST\",\n path: \"/fulfillment/shipping/create-return-label/:shipmentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Create return shipping label\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ShippingCreateReturnLabelParams;\n query: ShippingCreateReturnLabelQuery;\n body: ShippingCreateReturnLabelBody;\n response: ShippingCreateReturnLabelResponse;\n responseData: ShippingCreateReturnLabelResponseData;\n },\n },\n \"shipping_update_status\": {\n method: \"PUT\",\n path: \"/fulfillment/shipping/update-status/:shipmentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Update shipment status\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ShippingUpdateStatusParams;\n query: ShippingUpdateStatusQuery;\n body: ShippingUpdateStatusBody;\n response: ShippingUpdateStatusResponse;\n responseData: ShippingUpdateStatusResponseData;\n },\n },\n \"shipping_add_tracking\": {\n method: \"PUT\",\n path: \"/fulfillment/shipping/add-tracking/:shipmentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Add shipment tracking info\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ShippingAddTrackingParams;\n query: ShippingAddTrackingQuery;\n body: ShippingAddTrackingBody;\n response: ShippingAddTrackingResponse;\n responseData: ShippingAddTrackingResponseData;\n },\n },\n \"shipping_cancel\": {\n method: \"DELETE\",\n path: \"/fulfillment/shipping/cancel/:shipmentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Cancel shipment\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ShippingCancelParams;\n query: ShippingCancelQuery;\n body: ShippingCancelBody;\n response: ShippingCancelResponse;\n responseData: ShippingCancelResponseData;\n },\n },\n \"fulfillment_order\": {\n method: \"GET\",\n path: \"/fulfillment/order/:orderId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get fulfillments by order\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: FulfillmentOrderParams;\n query: FulfillmentOrderQuery;\n body: FulfillmentOrderBody;\n response: FulfillmentOrderResponse;\n responseData: FulfillmentOrderResponseData;\n },\n },\n \"fulfillment_item\": {\n method: \"GET\",\n path: \"/fulfillment/item/:orderItemId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get fulfillment by order item\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: FulfillmentItemParams;\n query: FulfillmentItemQuery;\n body: FulfillmentItemBody;\n response: FulfillmentItemResponse;\n responseData: FulfillmentItemResponseData;\n },\n },\n \"fulfillment_stats\": {\n method: \"GET\",\n path: \"/fulfillment/stats\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get fulfillment status statistics\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: FulfillmentStatsParams;\n query: FulfillmentStatsQuery;\n body: FulfillmentStatsBody;\n response: FulfillmentStatsResponse;\n responseData: FulfillmentStatsResponseData;\n },\n },\n \"fulfillment_failed\": {\n method: \"GET\",\n path: \"/fulfillment/failed\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get failed fulfillments\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: FulfillmentFailedParams;\n query: FulfillmentFailedQuery;\n body: FulfillmentFailedBody;\n response: FulfillmentFailedResponse;\n responseData: FulfillmentFailedResponseData;\n },\n },\n \"fulfillment_by_id\": {\n method: \"GET\",\n path: \"/fulfillment/byId/:fulfillmentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get fulfillment by id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: FulfillmentByIdParams;\n query: FulfillmentByIdQuery;\n body: FulfillmentByIdBody;\n response: FulfillmentByIdResponse;\n responseData: FulfillmentByIdResponseData;\n },\n },\n \"fulfillment_artifacts\": {\n method: \"GET\",\n path: \"/fulfillment/artifacts/:fulfillmentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get artifacts by fulfillment id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: FulfillmentArtifactsParams;\n query: FulfillmentArtifactsQuery;\n body: FulfillmentArtifactsBody;\n response: FulfillmentArtifactsResponse;\n responseData: FulfillmentArtifactsResponseData;\n },\n },\n \"fulfillment_retry\": {\n method: \"POST\",\n path: \"/fulfillment/retry/:fulfillmentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Retry fulfillment\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: FulfillmentRetryParams;\n query: FulfillmentRetryQuery;\n body: FulfillmentRetryBody;\n response: FulfillmentRetryResponse;\n responseData: FulfillmentRetryResponseData;\n },\n },\n \"fulfillment_cancel\": {\n method: \"POST\",\n path: \"/fulfillment/cancel/:fulfillmentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Cancel fulfillment\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: FulfillmentCancelParams;\n query: FulfillmentCancelQuery;\n body: FulfillmentCancelBody;\n response: FulfillmentCancelResponse;\n responseData: FulfillmentCancelResponseData;\n },\n },\n \"fulfillment_variant_config_create\": {\n method: \"POST\",\n path: \"/fulfillment/variant-config/create/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Create variant fulfillment config\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: FulfillmentVariantConfigCreateParams;\n query: FulfillmentVariantConfigCreateQuery;\n body: FulfillmentVariantConfigCreateBody;\n response: FulfillmentVariantConfigCreateResponse;\n responseData: FulfillmentVariantConfigCreateResponseData;\n },\n },\n \"fulfillment_variant_config_update\": {\n method: \"PUT\",\n path: \"/fulfillment/variant-config/update/:configId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Update variant fulfillment config\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: FulfillmentVariantConfigUpdateParams;\n query: FulfillmentVariantConfigUpdateQuery;\n body: FulfillmentVariantConfigUpdateBody;\n response: FulfillmentVariantConfigUpdateResponse;\n responseData: FulfillmentVariantConfigUpdateResponseData;\n },\n },\n \"fulfillment_variant_config_by_id\": {\n method: \"GET\",\n path: \"/fulfillment/variant-config/by-config/:configId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get variant fulfillment config\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: FulfillmentVariantConfigByIdParams;\n query: FulfillmentVariantConfigByIdQuery;\n body: FulfillmentVariantConfigByIdBody;\n response: FulfillmentVariantConfigByIdResponse;\n responseData: FulfillmentVariantConfigByIdResponseData;\n },\n },\n \"fulfillment_variant_config_stats\": {\n method: \"GET\",\n path: \"/fulfillment/variant-config/stats/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Get variant fulfillment config stats\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: FulfillmentVariantConfigStatsParams;\n query: FulfillmentVariantConfigStatsQuery;\n body: FulfillmentVariantConfigStatsBody;\n response: FulfillmentVariantConfigStatsResponse;\n responseData: FulfillmentVariantConfigStatsResponseData;\n },\n },\n \"fulfillment_variant_config_delete\": {\n method: \"DELETE\",\n path: \"/fulfillment/variant-config/delete/:configId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"fulfillment\"],\n summary: \"Delete variant fulfillment config\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: FulfillmentVariantConfigDeleteParams;\n query: FulfillmentVariantConfigDeleteQuery;\n body: FulfillmentVariantConfigDeleteBody;\n response: FulfillmentVariantConfigDeleteResponse;\n responseData: FulfillmentVariantConfigDeleteResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nexport type IapListProductsParams = undefined;\nexport type IapListProductsQuery = {\n app?: string;\n};\nexport type IapListProductsBody = undefined;\nexport type IapListProductsResponseData = {\n plans: Array<{\n planId: number;\n variantId: number;\n tier: string;\n displayName: string;\n description: string | null;\n tag: string | null;\n interval: \"day\" | \"week\" | \"month\" | \"year\";\n intervalCount: number;\n trialPeriodDays: number | null;\n amount: number;\n currency: string;\n features: any | null;\n sortOrder: number;\n skus: Array<{\n platform: \"Stripe\" | \"Apple\" | \"Google\";\n externalProductId: string;\n externalPriceId: string | null;\n priceTierLabel: string | null;\n}>;\n}>;\n generatedAt: string;\n};\nexport type IapListProductsResponse = import(\"../types\").ApiEnvelope<IapListProductsResponseData>;\n\nexport type IapAdminResyncParams = {\n rcAppUserId: string;\n};\nexport type IapAdminResyncQuery = undefined;\nexport type IapAdminResyncBody = undefined;\nexport type IapAdminResyncResponseData = {\n found: boolean;\n customerId: number | null;\n subscriptionsChecked: number;\n subscriptionsReconciled: number;\n notes: Array<string>;\n};\nexport type IapAdminResyncResponse = import(\"../types\").ApiEnvelope<IapAdminResyncResponseData>;\n\nexport type IapAdminReconcileAllParams = undefined;\nexport type IapAdminReconcileAllQuery = {\n dryRun?: \"true\" | \"false\";\n};\nexport type IapAdminReconcileAllBody = undefined;\nexport type IapAdminReconcileAllResponseData = {\n customersChecked: number;\n customersReconciled: number;\n failures: number;\n dryRun: boolean;\n};\nexport type IapAdminReconcileAllResponse = import(\"../types\").ApiEnvelope<IapAdminReconcileAllResponseData>;\n\nexport type IapAdminHealthParams = undefined;\nexport type IapAdminHealthQuery = {\n\n};\nexport type IapAdminHealthBody = undefined;\nexport type IapAdminHealthResponseData = {\n failuresInWindow: number;\n alerted: boolean;\n};\nexport type IapAdminHealthResponse = import(\"../types\").ApiEnvelope<IapAdminHealthResponseData>;\n\nexport const apiRoutes_iap = {\n \"iap_list_products\": {\n method: \"GET\",\n path: \"/iap/products\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"iap\"],\n summary: \"List IAP products for mobile clients\",\n description: \"Returns active subscription plans with per-platform product identifiers (Apple App Store productId, Google Play productId, Stripe price id for parity). The mobile SDK uses this to drive paywalls. Filter by app-tag via `?app=`.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: IapListProductsParams;\n query: IapListProductsQuery;\n body: IapListProductsBody;\n response: IapListProductsResponse;\n responseData: IapListProductsResponseData;\n },\n },\n \"iap_admin_resync\": {\n method: \"POST\",\n path: \"/iap/admin/resync/:rcAppUserId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"iap\"],\n summary: \"Resync a single subscriber from RevenueCat\",\n description: \"Pulls canonical subscription state from the RevenueCat REST API for one app_user_id and reconciles the local mirror in place. Used for support cases (e.g., entitlement-out-of-sync reports). Idempotent.\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: IapAdminResyncParams;\n query: IapAdminResyncQuery;\n body: IapAdminResyncBody;\n response: IapAdminResyncResponse;\n responseData: IapAdminResyncResponseData;\n },\n },\n \"iap_admin_reconcile_all\": {\n method: \"POST\",\n path: \"/iap/admin/reconcile\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"iap\"],\n summary: \"Run daily reconciliation across all active IAP subscribers\",\n description: \"Walks every active IAP customer, fetches RC state, and repairs drift in our mirror. Heavy operation — meant to be triggered by a daily cron. Pass ?dryRun=true to preview.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: IapAdminReconcileAllParams;\n query: IapAdminReconcileAllQuery;\n body: IapAdminReconcileAllBody;\n response: IapAdminReconcileAllResponse;\n responseData: IapAdminReconcileAllResponseData;\n },\n },\n \"iap_admin_health\": {\n method: \"GET\",\n path: \"/iap/admin/health\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"iap\"],\n summary: \"RevenueCat webhook failure health check\",\n description: \"Counts failed RevenueCat webhook entries in the last 30 min. Returns alerted=true if count >= 5 (also writes a critical log so external alerting picks it up). Suitable to wire into uptime monitors.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: IapAdminHealthParams;\n query: IapAdminHealthQuery;\n body: IapAdminHealthBody;\n response: IapAdminHealthResponse;\n responseData: IapAdminHealthResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Invoice } from \"../../frontend-types\";\n\nexport type InvoicesViewPdfParams = {\n invoiceId: number;\n};\nexport type InvoicesViewPdfQuery = {\n\n};\nexport type InvoicesViewPdfBody = undefined;\nexport type InvoicesViewPdfResponseData = Blob;\nexport type InvoicesViewPdfResponse = Blob;\n\nexport type InvoicesDownloadPdfParams = {\n invoiceId: number;\n};\nexport type InvoicesDownloadPdfQuery = {\n\n};\nexport type InvoicesDownloadPdfBody = undefined;\nexport type InvoicesDownloadPdfResponseData = Blob;\nexport type InvoicesDownloadPdfResponse = Blob;\n\nexport type InvoicesPendingParams = undefined;\nexport type InvoicesPendingQuery = {\n\n};\nexport type InvoicesPendingBody = undefined;\nexport type InvoicesPendingResponseData = { total: number; invoices: Invoice[] };\nexport type InvoicesPendingResponse = import(\"../types\").ApiEnvelope<InvoicesPendingResponseData>;\n\nexport type InvoicesOverdueParams = undefined;\nexport type InvoicesOverdueQuery = {\n\n};\nexport type InvoicesOverdueBody = undefined;\nexport type InvoicesOverdueResponseData = { total: number; invoices: Array<{ invoice: Invoice; daysOverdue: number }> };\nexport type InvoicesOverdueResponse = import(\"../types\").ApiEnvelope<InvoicesOverdueResponseData>;\n\nexport type InvoicesRevenueReportParams = undefined;\nexport type InvoicesRevenueReportQuery = {\n dateFrom?: string;\n dateTo?: string;\n page?: number;\n pageSize?: number;\n status?: string;\n};\nexport type InvoicesRevenueReportBody = undefined;\nexport type InvoicesRevenueReportResponseData = {\n data: Array<{\n invoiceId: number;\n invoiceNumber: string;\n invoiceDate: string;\n status: string;\n orderId: string;\n currency: string;\n customerPaid: string;\n provider: string | null;\n feeAmount: string | null;\n netReceived: string | null;\n feeSource: \"provider_api\" | \"config\" | \"fallback\" | null;\n feeIsFinal: boolean;\n reconciledAt: string | null;\n}>;\n total: number;\n page: number;\n pageSize: number;\n summary: {\n totalCustomerPaid: number;\n totalFees: number | null;\n totalNetReceived: number | null;\n finalFeeCount: number;\n estimatedFeeCount: number;\n missingFeeCount: number;\n};\n};\nexport type InvoicesRevenueReportResponse = import(\"../types\").ApiEnvelope<InvoicesRevenueReportResponseData>;\n\nexport type InvoicesSearchParams = undefined;\nexport type InvoicesSearchQuery = {\n search?: string;\n page?: number;\n pageSize?: number;\n status?: string;\n invoiceDateFrom?: string;\n invoiceDateTo?: string;\n dueDateFrom?: string;\n dueDateTo?: string;\n minTotal?: string;\n maxTotal?: string;\n currency?: string;\n sortBy?: \"createdAt\" | \"invoiceDate\" | \"dueDate\" | \"totalAmount\";\n sortDir?: \"asc\" | \"desc\";\n};\nexport type InvoicesSearchBody = undefined;\nexport type InvoicesSearchResponseData = { data: Invoice[]; total: number; page: number; pageSize: number };\nexport type InvoicesSearchResponse = import(\"../types\").ApiEnvelope<InvoicesSearchResponseData>;\n\nexport type InvoicesGetByIdParams = {\n invoiceId: number;\n};\nexport type InvoicesGetByIdQuery = {\n\n};\nexport type InvoicesGetByIdBody = undefined;\nexport type InvoicesGetByIdResponseData = Invoice;\nexport type InvoicesGetByIdResponse = import(\"../types\").ApiEnvelope<InvoicesGetByIdResponseData>;\n\nexport type InvoicesGeneratePdfParams = {\n invoiceId: number;\n};\nexport type InvoicesGeneratePdfQuery = {\n\n};\nexport type InvoicesGeneratePdfBody = {\n\n};\nexport type InvoicesGeneratePdfResponseData = Invoice;\nexport type InvoicesGeneratePdfResponse = import(\"../types\").ApiEnvelope<InvoicesGeneratePdfResponseData>;\n\nexport type InvoicesUpdateStatusParams = {\n invoiceId: number;\n};\nexport type InvoicesUpdateStatusQuery = {\n\n};\nexport type InvoicesUpdateStatusBody = {\n status: \"draft\" | \"issued\" | \"paid\" | \"overdue\" | \"cancelled\";\n};\nexport type InvoicesUpdateStatusResponseData = Invoice;\nexport type InvoicesUpdateStatusResponse = import(\"../types\").ApiEnvelope<InvoicesUpdateStatusResponseData>;\n\nexport type InvoicesDeleteParams = {\n invoiceId: number;\n};\nexport type InvoicesDeleteQuery = {\n\n};\nexport type InvoicesDeleteBody = undefined;\nexport type InvoicesDeleteResponseData = null;\nexport type InvoicesDeleteResponse = import(\"../types\").ApiEnvelope<InvoicesDeleteResponseData>;\n\nexport const apiRoutes_invoices = {\n \"invoices_view_pdf\": {\n method: \"GET\",\n path: \"/invoices/:invoiceId/pdf\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"invoices\"],\n summary: \"View invoice PDF\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: InvoicesViewPdfParams;\n query: InvoicesViewPdfQuery;\n body: InvoicesViewPdfBody;\n response: InvoicesViewPdfResponse;\n responseData: InvoicesViewPdfResponseData;\n },\n },\n \"invoices_download_pdf\": {\n method: \"GET\",\n path: \"/invoices/:invoiceId/download\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"invoices\"],\n summary: \"Download invoice PDF\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: InvoicesDownloadPdfParams;\n query: InvoicesDownloadPdfQuery;\n body: InvoicesDownloadPdfBody;\n response: InvoicesDownloadPdfResponse;\n responseData: InvoicesDownloadPdfResponseData;\n },\n },\n \"invoices_pending\": {\n method: \"GET\",\n path: \"/invoices/pending\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"invoices\"],\n summary: \"List pending invoices\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: InvoicesPendingParams;\n query: InvoicesPendingQuery;\n body: InvoicesPendingBody;\n response: InvoicesPendingResponse;\n responseData: InvoicesPendingResponseData;\n },\n },\n \"invoices_overdue\": {\n method: \"GET\",\n path: \"/invoices/overdue\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"invoices\"],\n summary: \"List overdue invoices\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: InvoicesOverdueParams;\n query: InvoicesOverdueQuery;\n body: InvoicesOverdueBody;\n response: InvoicesOverdueResponse;\n responseData: InvoicesOverdueResponseData;\n },\n },\n \"invoices_revenue_report\": {\n method: \"GET\",\n path: \"/invoices/revenue\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"invoices\"],\n summary: \"Get invoice revenue report\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: InvoicesRevenueReportParams;\n query: InvoicesRevenueReportQuery;\n body: InvoicesRevenueReportBody;\n response: InvoicesRevenueReportResponse;\n responseData: InvoicesRevenueReportResponseData;\n },\n },\n \"invoices_search\": {\n method: \"GET\",\n path: \"/invoices\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"invoices\"],\n summary: \"Search invoices\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: InvoicesSearchParams;\n query: InvoicesSearchQuery;\n body: InvoicesSearchBody;\n response: InvoicesSearchResponse;\n responseData: InvoicesSearchResponseData;\n },\n },\n \"invoices_get_by_id\": {\n method: \"GET\",\n path: \"/invoices/:invoiceId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"invoices\"],\n summary: \"Get invoice by id\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: InvoicesGetByIdParams;\n query: InvoicesGetByIdQuery;\n body: InvoicesGetByIdBody;\n response: InvoicesGetByIdResponse;\n responseData: InvoicesGetByIdResponseData;\n },\n },\n \"invoices_generate_pdf\": {\n method: \"POST\",\n path: \"/invoices/:invoiceId/generate-pdf\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"invoices\"],\n summary: \"Generate and upload invoice PDF\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: InvoicesGeneratePdfParams;\n query: InvoicesGeneratePdfQuery;\n body: InvoicesGeneratePdfBody;\n response: InvoicesGeneratePdfResponse;\n responseData: InvoicesGeneratePdfResponseData;\n },\n },\n \"invoices_update_status\": {\n method: \"PUT\",\n path: \"/invoices/:invoiceId/status\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"invoices\"],\n summary: \"Update invoice status\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: InvoicesUpdateStatusParams;\n query: InvoicesUpdateStatusQuery;\n body: InvoicesUpdateStatusBody;\n response: InvoicesUpdateStatusResponse;\n responseData: InvoicesUpdateStatusResponseData;\n },\n },\n \"invoices_delete\": {\n method: \"DELETE\",\n path: \"/invoices/:invoiceId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"invoices\"],\n summary: \"Delete invoice\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: InvoicesDeleteParams;\n query: InvoicesDeleteQuery;\n body: InvoicesDeleteBody;\n response: InvoicesDeleteResponse;\n responseData: InvoicesDeleteResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { FullVariant, FullVariantTranslated, PaginatedResult, ProductItemVariant, VariantPhysicalProperties } from \"../../frontend-types\";\n\nexport type ItemVariantsGetByItemParams = {\n itemId: number;\n};\nexport type ItemVariantsGetByItemQuery = {\n\n};\nexport type ItemVariantsGetByItemBody = undefined;\nexport type ItemVariantsGetByItemResponseData = ProductItemVariant[];\nexport type ItemVariantsGetByItemResponse = import(\"../types\").ApiEnvelope<ItemVariantsGetByItemResponseData>;\n\nexport type ItemVariantsGetByItemFullParams = {\n itemId: number;\n};\nexport type ItemVariantsGetByItemFullQuery = {\n\n};\nexport type ItemVariantsGetByItemFullBody = undefined;\nexport type ItemVariantsGetByItemFullResponseData = FullVariant[];\nexport type ItemVariantsGetByItemFullResponse = import(\"../types\").ApiEnvelope<ItemVariantsGetByItemFullResponseData>;\n\nexport type ItemVariantsCreateParams = {\n itemId: number;\n};\nexport type ItemVariantsCreateQuery = undefined;\nexport type ItemVariantsCreateBody = {\n variantType: \"physical\" | \"digital\";\n digitalType?: \"download\" | \"streaming\" | \"license\" | \"ticket\" | \"subscription\" | \"entitlement\";\n price?: number;\n salePrice?: number;\n badgeLabel?: string;\n displayOrder?: number;\n designId?: number;\n designColorVariantId?: number;\n};\nexport type ItemVariantsCreateResponseData = ProductItemVariant;\nexport type ItemVariantsCreateResponse = import(\"../types\").ApiEnvelope<ItemVariantsCreateResponseData>;\n\nexport type ItemVariantsUpdateParams = {\n variantId: number;\n};\nexport type ItemVariantsUpdateQuery = undefined;\nexport type ItemVariantsUpdateBody = {\n status?: \"draft\" | \"published\" | \"mark_deleted\" | \"deleted\" | \"mark_archived\" | \"archived\";\n price?: number;\n salePrice?: number;\n stripePriceId?: string | null;\n variantType?: \"physical\" | \"digital\";\n digitalType?: \"download\" | \"streaming\" | \"license\" | \"ticket\" | \"subscription\" | \"entitlement\";\n sku?: string;\n badgeLabel?: string;\n displayOrder?: number;\n isSale?: boolean;\n designId?: number | null;\n designColorVariantId?: number | null;\n};\nexport type ItemVariantsUpdateResponseData = ProductItemVariant;\nexport type ItemVariantsUpdateResponse = import(\"../types\").ApiEnvelope<ItemVariantsUpdateResponseData>;\n\nexport type ItemVariantsDeleteParams = {\n variantId: number;\n};\nexport type ItemVariantsDeleteQuery = undefined;\nexport type ItemVariantsDeleteBody = undefined;\nexport type ItemVariantsDeleteResponseData = null;\nexport type ItemVariantsDeleteResponse = import(\"../types\").ApiEnvelope<ItemVariantsDeleteResponseData>;\n\nexport type ItemVariantsMassDeleteParams = undefined;\nexport type ItemVariantsMassDeleteQuery = undefined;\nexport type ItemVariantsMassDeleteBody = {\n variantIds: Array<number>;\n};\nexport type ItemVariantsMassDeleteResponseData = null;\nexport type ItemVariantsMassDeleteResponse = import(\"../types\").ApiEnvelope<ItemVariantsMassDeleteResponseData>;\n\nexport type ItemVariantsAdminSearchParams = undefined;\nexport type ItemVariantsAdminSearchQuery = {\n search?: string;\n page?: number;\n pageSize?: number;\n};\nexport type ItemVariantsAdminSearchBody = undefined;\nexport type ItemVariantsAdminSearchResponseData = PaginatedResult<FullVariant>;\nexport type ItemVariantsAdminSearchResponse = import(\"../types\").ApiEnvelope<ItemVariantsAdminSearchResponseData>;\n\nexport type ItemVariantsAdminSearchTranslatedParams = undefined;\nexport type ItemVariantsAdminSearchTranslatedQuery = {\n search?: string;\n page?: number;\n pageSize?: number;\n};\nexport type ItemVariantsAdminSearchTranslatedBody = undefined;\nexport type ItemVariantsAdminSearchTranslatedResponseData = PaginatedResult<FullVariantTranslated>;\nexport type ItemVariantsAdminSearchTranslatedResponse = import(\"../types\").ApiEnvelope<ItemVariantsAdminSearchTranslatedResponseData>;\n\nexport type ItemVariantsCreatePhysicalPropertiesParams = {\n variantId: number;\n};\nexport type ItemVariantsCreatePhysicalPropertiesQuery = undefined;\nexport type ItemVariantsCreatePhysicalPropertiesBody = {\n length: number;\n weightGrams: number;\n width: number;\n height: number;\n requiresSpecialPackaging?: boolean;\n packagingNote?: string;\n hsCode?: string;\n countryOfOrigin?: string;\n customsValue?: number;\n customsDescription?: string;\n};\nexport type ItemVariantsCreatePhysicalPropertiesResponseData = VariantPhysicalProperties;\nexport type ItemVariantsCreatePhysicalPropertiesResponse = import(\"../types\").ApiEnvelope<ItemVariantsCreatePhysicalPropertiesResponseData>;\n\nexport type ItemVariantsUpdatePhysicalPropertiesParams = {\n variantId: number;\n};\nexport type ItemVariantsUpdatePhysicalPropertiesQuery = undefined;\nexport type ItemVariantsUpdatePhysicalPropertiesBody = {\n length?: number;\n weightGrams?: number;\n width?: number;\n height?: number;\n requiresSpecialPackaging?: boolean;\n packagingNote?: string;\n hsCode?: string;\n countryOfOrigin?: string;\n customsValue?: number;\n customsDescription?: string;\n};\nexport type ItemVariantsUpdatePhysicalPropertiesResponseData = VariantPhysicalProperties;\nexport type ItemVariantsUpdatePhysicalPropertiesResponse = import(\"../types\").ApiEnvelope<ItemVariantsUpdatePhysicalPropertiesResponseData>;\n\nexport type ItemVariantsDeletePhysicalPropertiesParams = {\n variantId: number;\n};\nexport type ItemVariantsDeletePhysicalPropertiesQuery = undefined;\nexport type ItemVariantsDeletePhysicalPropertiesBody = undefined;\nexport type ItemVariantsDeletePhysicalPropertiesResponseData = null;\nexport type ItemVariantsDeletePhysicalPropertiesResponse = import(\"../types\").ApiEnvelope<ItemVariantsDeletePhysicalPropertiesResponseData>;\n\nexport const apiRoutes_item_variants = {\n \"item_variants_get_by_item\": {\n method: \"GET\",\n path: \"/product-items/variants/getByItem/:itemId\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"item-variants\"],\n summary: \"List variants by item\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ItemVariantsGetByItemParams;\n query: ItemVariantsGetByItemQuery;\n body: ItemVariantsGetByItemBody;\n response: ItemVariantsGetByItemResponse;\n responseData: ItemVariantsGetByItemResponseData;\n },\n },\n \"item_variants_get_by_item_full\": {\n method: \"GET\",\n path: \"/product-items/variants/getByItem/:itemId/full\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"item-variants\"],\n summary: \"List full variants by item\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ItemVariantsGetByItemFullParams;\n query: ItemVariantsGetByItemFullQuery;\n body: ItemVariantsGetByItemFullBody;\n response: ItemVariantsGetByItemFullResponse;\n responseData: ItemVariantsGetByItemFullResponseData;\n },\n },\n \"item_variants_create\": {\n method: \"POST\",\n path: \"/product-items/variants/create/:itemId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"item-variants\"],\n summary: \"Create variant\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ItemVariantsCreateParams;\n query: ItemVariantsCreateQuery;\n body: ItemVariantsCreateBody;\n response: ItemVariantsCreateResponse;\n responseData: ItemVariantsCreateResponseData;\n },\n },\n \"item_variants_update\": {\n method: \"PUT\",\n path: \"/product-items/variants/update/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"item-variants\"],\n summary: \"Update variant\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ItemVariantsUpdateParams;\n query: ItemVariantsUpdateQuery;\n body: ItemVariantsUpdateBody;\n response: ItemVariantsUpdateResponse;\n responseData: ItemVariantsUpdateResponseData;\n },\n },\n \"item_variants_delete\": {\n method: \"DELETE\",\n path: \"/product-items/variants/delete/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"item-variants\"],\n summary: \"Delete variant\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ItemVariantsDeleteParams;\n query: ItemVariantsDeleteQuery;\n body: ItemVariantsDeleteBody;\n response: ItemVariantsDeleteResponse;\n responseData: ItemVariantsDeleteResponseData;\n },\n },\n \"item_variants_mass_delete\": {\n method: \"DELETE\",\n path: \"/product-items/variants/massDelete\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"item-variants\"],\n summary: \"Delete multiple variants\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ItemVariantsMassDeleteParams;\n query: ItemVariantsMassDeleteQuery;\n body: ItemVariantsMassDeleteBody;\n response: ItemVariantsMassDeleteResponse;\n responseData: ItemVariantsMassDeleteResponseData;\n },\n },\n \"item_variants_admin_search\": {\n method: \"GET\",\n path: \"/product-items/variants/admin-search\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"item-variants\"],\n summary: \"Admin search variants\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ItemVariantsAdminSearchParams;\n query: ItemVariantsAdminSearchQuery;\n body: ItemVariantsAdminSearchBody;\n response: ItemVariantsAdminSearchResponse;\n responseData: ItemVariantsAdminSearchResponseData;\n },\n },\n \"item_variants_admin_search_translated\": {\n method: \"GET\",\n path: \"/product-items/variants/admin-search/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"item-variants\"],\n summary: \"Admin search translated variants\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ItemVariantsAdminSearchTranslatedParams;\n query: ItemVariantsAdminSearchTranslatedQuery;\n body: ItemVariantsAdminSearchTranslatedBody;\n response: ItemVariantsAdminSearchTranslatedResponse;\n responseData: ItemVariantsAdminSearchTranslatedResponseData;\n },\n },\n \"item_variants_create_physical_properties\": {\n method: \"POST\",\n path: \"/product-items/variants/create/physical-properties/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"item-variants\"],\n summary: \"Create variant physical properties\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ItemVariantsCreatePhysicalPropertiesParams;\n query: ItemVariantsCreatePhysicalPropertiesQuery;\n body: ItemVariantsCreatePhysicalPropertiesBody;\n response: ItemVariantsCreatePhysicalPropertiesResponse;\n responseData: ItemVariantsCreatePhysicalPropertiesResponseData;\n },\n },\n \"item_variants_update_physical_properties\": {\n method: \"PUT\",\n path: \"/product-items/variants/update/physical-properties/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"item-variants\"],\n summary: \"Update variant physical properties\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ItemVariantsUpdatePhysicalPropertiesParams;\n query: ItemVariantsUpdatePhysicalPropertiesQuery;\n body: ItemVariantsUpdatePhysicalPropertiesBody;\n response: ItemVariantsUpdatePhysicalPropertiesResponse;\n responseData: ItemVariantsUpdatePhysicalPropertiesResponseData;\n },\n },\n \"item_variants_delete_physical_properties\": {\n method: \"DELETE\",\n path: \"/product-items/variants/delete/physical-properties/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"item-variants\"],\n summary: \"Delete variant physical properties\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ItemVariantsDeletePhysicalPropertiesParams;\n query: ItemVariantsDeletePhysicalPropertiesQuery;\n body: ItemVariantsDeletePhysicalPropertiesBody;\n response: ItemVariantsDeletePhysicalPropertiesResponse;\n responseData: ItemVariantsDeletePhysicalPropertiesResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { FullVariantTranslated, InventoryReservation, InventoryTransaction, LagerInventory, LagerInventoryLocation, LagerInventoryLocationUser, LagerInventoryOverview, PaginatedResult } from \"../../frontend-types\";\n\nexport type LagerLocationsUsersAddParams = undefined;\nexport type LagerLocationsUsersAddQuery = {\n\n};\nexport type LagerLocationsUsersAddBody = {\n locationId: number;\n userId: number;\n validFrom: string;\n validTo?: string | null;\n role?: \"admin\" | \"manager\" | \"viewer\";\n};\nexport type LagerLocationsUsersAddResponseData = LagerInventoryLocationUser;\nexport type LagerLocationsUsersAddResponse = import(\"../types\").ApiEnvelope<LagerLocationsUsersAddResponseData>;\n\nexport type LagerLocationsUsersRemoveParams = undefined;\nexport type LagerLocationsUsersRemoveQuery = {\n\n};\nexport type LagerLocationsUsersRemoveBody = {\n locationId: number;\n userId: number;\n};\nexport type LagerLocationsUsersRemoveResponseData = null;\nexport type LagerLocationsUsersRemoveResponse = import(\"../types\").ApiEnvelope<LagerLocationsUsersRemoveResponseData>;\n\nexport type LagerLocationsCreateParams = undefined;\nexport type LagerLocationsCreateQuery = {\n\n};\nexport type LagerLocationsCreateBody = {\n name: string;\n provider: \"internal\" | \"printful\" | \"printify\" | \"custom\";\n description?: string | null;\n street?: string | null;\n houseNumber?: string | null;\n postalCode?: string | null;\n city?: string | null;\n country?: string | null;\n email?: string | null;\n phone?: string | null;\n};\nexport type LagerLocationsCreateResponseData = LagerInventoryLocation | null;\nexport type LagerLocationsCreateResponse = import(\"../types\").ApiEnvelope<LagerLocationsCreateResponseData>;\n\nexport type LagerLocationsUpdateParams = {\n locationId: number;\n};\nexport type LagerLocationsUpdateQuery = {\n\n};\nexport type LagerLocationsUpdateBody = {\n name?: string;\n provider?: \"internal\" | \"printful\" | \"printify\" | \"custom\";\n description?: string | null;\n street?: string | null;\n houseNumber?: string | null;\n postalCode?: string | null;\n city?: string | null;\n country?: string | null;\n email?: string | null;\n phone?: string | null;\n};\nexport type LagerLocationsUpdateResponseData = LagerInventoryLocation;\nexport type LagerLocationsUpdateResponse = import(\"../types\").ApiEnvelope<LagerLocationsUpdateResponseData>;\n\nexport type LagerLocationsDeleteParams = {\n locationId: number;\n};\nexport type LagerLocationsDeleteQuery = {\n\n};\nexport type LagerLocationsDeleteBody = undefined;\nexport type LagerLocationsDeleteResponseData = null;\nexport type LagerLocationsDeleteResponse = import(\"../types\").ApiEnvelope<LagerLocationsDeleteResponseData>;\n\nexport type LagerLocationsByIdParams = {\n locationId: number;\n};\nexport type LagerLocationsByIdQuery = {\n\n};\nexport type LagerLocationsByIdBody = undefined;\nexport type LagerLocationsByIdResponseData = LagerInventoryLocation | null;\nexport type LagerLocationsByIdResponse = import(\"../types\").ApiEnvelope<LagerLocationsByIdResponseData>;\n\nexport type LagerLocationsByIdFullParams = {\n locationId: number;\n};\nexport type LagerLocationsByIdFullQuery = {\n\n};\nexport type LagerLocationsByIdFullBody = undefined;\nexport type LagerLocationsByIdFullResponseData = { location: LagerInventoryLocation; users: LagerInventoryLocationUser[] } | null;\nexport type LagerLocationsByIdFullResponse = import(\"../types\").ApiEnvelope<LagerLocationsByIdFullResponseData>;\n\nexport type LagerLocationsByIdFullHistoryParams = {\n locationId: number;\n};\nexport type LagerLocationsByIdFullHistoryQuery = {\n\n};\nexport type LagerLocationsByIdFullHistoryBody = undefined;\nexport type LagerLocationsByIdFullHistoryResponseData = Array<{ location: LagerInventoryLocation; users: LagerInventoryLocationUser[] }>;\nexport type LagerLocationsByIdFullHistoryResponse = import(\"../types\").ApiEnvelope<LagerLocationsByIdFullHistoryResponseData>;\n\nexport type LagerLocationsListParams = undefined;\nexport type LagerLocationsListQuery = {\n\n};\nexport type LagerLocationsListBody = undefined;\nexport type LagerLocationsListResponseData = LagerInventoryLocation[];\nexport type LagerLocationsListResponse = import(\"../types\").ApiEnvelope<LagerLocationsListResponseData>;\n\nexport type LagerLocationsListFullParams = undefined;\nexport type LagerLocationsListFullQuery = {\n\n};\nexport type LagerLocationsListFullBody = undefined;\nexport type LagerLocationsListFullResponseData = Array<{ location: LagerInventoryLocation; users: LagerInventoryLocationUser[] }>;\nexport type LagerLocationsListFullResponse = import(\"../types\").ApiEnvelope<LagerLocationsListFullResponseData>;\n\nexport type LagerTransactionsAddInventoryParams = {\n variantId: number;\n};\nexport type LagerTransactionsAddInventoryQuery = {\n\n};\nexport type LagerTransactionsAddInventoryBody = {\n quantity: number;\n note?: string;\n price: number;\n};\nexport type LagerTransactionsAddInventoryResponseData = InventoryTransaction;\nexport type LagerTransactionsAddInventoryResponse = import(\"../types\").ApiEnvelope<LagerTransactionsAddInventoryResponseData>;\n\nexport type LagerTransactionsAdjustInventoryParams = {\n variantId: number;\n};\nexport type LagerTransactionsAdjustInventoryQuery = {\n\n};\nexport type LagerTransactionsAdjustInventoryBody = {\n quantity: number;\n note?: string;\n};\nexport type LagerTransactionsAdjustInventoryResponseData = InventoryTransaction;\nexport type LagerTransactionsAdjustInventoryResponse = import(\"../types\").ApiEnvelope<LagerTransactionsAdjustInventoryResponseData>;\n\nexport type LagerTransactionsAddBillParams = {\n transactionId: number;\n};\nexport type LagerTransactionsAddBillQuery = {\n\n};\nexport type LagerTransactionsAddBillBody = {\n billId: string;\n};\nexport type LagerTransactionsAddBillResponseData = InventoryTransaction;\nexport type LagerTransactionsAddBillResponse = import(\"../types\").ApiEnvelope<LagerTransactionsAddBillResponseData>;\n\nexport type LagerTransactionsRemoveBillParams = {\n transactionId: number;\n};\nexport type LagerTransactionsRemoveBillQuery = {\n\n};\nexport type LagerTransactionsRemoveBillBody = undefined;\nexport type LagerTransactionsRemoveBillResponseData = InventoryTransaction;\nexport type LagerTransactionsRemoveBillResponse = import(\"../types\").ApiEnvelope<LagerTransactionsRemoveBillResponseData>;\n\nexport type LagerTransactionsByInventoryParams = {\n inventoryId: number;\n};\nexport type LagerTransactionsByInventoryQuery = {\n\n};\nexport type LagerTransactionsByInventoryBody = undefined;\nexport type LagerTransactionsByInventoryResponseData = InventoryTransaction[];\nexport type LagerTransactionsByInventoryResponse = import(\"../types\").ApiEnvelope<LagerTransactionsByInventoryResponseData>;\n\nexport type LagerTransactionsSearchParams = {\n inventoryId: number;\n};\nexport type LagerTransactionsSearchQuery = {\n search?: string;\n page?: number;\n pageSize?: number;\n range?: string;\n};\nexport type LagerTransactionsSearchBody = undefined;\nexport type LagerTransactionsSearchResponseData = PaginatedResult<InventoryTransaction>;\nexport type LagerTransactionsSearchResponse = import(\"../types\").ApiEnvelope<LagerTransactionsSearchResponseData>;\n\nexport type LagerTransactionsSummaryParams = {\n inventoryId: number;\n};\nexport type LagerTransactionsSummaryQuery = {\n range?: string;\n};\nexport type LagerTransactionsSummaryBody = undefined;\nexport type LagerTransactionsSummaryResponseData = Array<{\n date: string;\n balance: number;\n}>;\nexport type LagerTransactionsSummaryResponse = import(\"../types\").ApiEnvelope<LagerTransactionsSummaryResponseData>;\n\nexport type LagerReservationsListParams = undefined;\nexport type LagerReservationsListQuery = {\n\n};\nexport type LagerReservationsListBody = undefined;\nexport type LagerReservationsListResponseData = Array<{ item: FullVariantTranslated; reservations: InventoryReservation[] }>;\nexport type LagerReservationsListResponse = import(\"../types\").ApiEnvelope<LagerReservationsListResponseData>;\n\nexport type LagerInventoryCreateParams = {\n variantId: number;\n};\nexport type LagerInventoryCreateQuery = undefined;\nexport type LagerInventoryCreateBody = {\n locationId?: number;\n priority?: number;\n};\nexport type LagerInventoryCreateResponseData = LagerInventory;\nexport type LagerInventoryCreateResponse = import(\"../types\").ApiEnvelope<LagerInventoryCreateResponseData>;\n\nexport type LagerInventoryDeleteParams = {\n inventoryId: number;\n};\nexport type LagerInventoryDeleteQuery = undefined;\nexport type LagerInventoryDeleteBody = undefined;\nexport type LagerInventoryDeleteResponseData = null;\nexport type LagerInventoryDeleteResponse = import(\"../types\").ApiEnvelope<LagerInventoryDeleteResponseData>;\n\nexport type LagerInventoryCreateByIdsParams = undefined;\nexport type LagerInventoryCreateByIdsQuery = {\n ids: string;\n};\nexport type LagerInventoryCreateByIdsBody = undefined;\nexport type LagerInventoryCreateByIdsResponseData = LagerInventory[];\nexport type LagerInventoryCreateByIdsResponse = import(\"../types\").ApiEnvelope<LagerInventoryCreateByIdsResponseData>;\n\nexport type LagerInventoryToggleUnlimitedByVariantParams = {\n variantId: number;\n};\nexport type LagerInventoryToggleUnlimitedByVariantQuery = undefined;\nexport type LagerInventoryToggleUnlimitedByVariantBody = {\n isUnlimited: boolean;\n locationId?: number;\n};\nexport type LagerInventoryToggleUnlimitedByVariantResponseData = LagerInventory | null;\nexport type LagerInventoryToggleUnlimitedByVariantResponse = import(\"../types\").ApiEnvelope<LagerInventoryToggleUnlimitedByVariantResponseData>;\n\nexport type LagerInventoryToggleUnlimitedByInventoryParams = {\n inventoryId: number;\n};\nexport type LagerInventoryToggleUnlimitedByInventoryQuery = undefined;\nexport type LagerInventoryToggleUnlimitedByInventoryBody = {\n isUnlimited: boolean;\n};\nexport type LagerInventoryToggleUnlimitedByInventoryResponseData = LagerInventory | null;\nexport type LagerInventoryToggleUnlimitedByInventoryResponse = import(\"../types\").ApiEnvelope<LagerInventoryToggleUnlimitedByInventoryResponseData>;\n\nexport type LagerInventoryGetByVariantParams = {\n variantId: number;\n};\nexport type LagerInventoryGetByVariantQuery = {\n\n};\nexport type LagerInventoryGetByVariantBody = undefined;\nexport type LagerInventoryGetByVariantResponseData = LagerInventory | null;\nexport type LagerInventoryGetByVariantResponse = import(\"../types\").ApiEnvelope<LagerInventoryGetByVariantResponseData>;\n\nexport type LagerInventoryListParams = undefined;\nexport type LagerInventoryListQuery = {\n\n};\nexport type LagerInventoryListBody = undefined;\nexport type LagerInventoryListResponseData = LagerInventory[] | null;\nexport type LagerInventoryListResponse = import(\"../types\").ApiEnvelope<LagerInventoryListResponseData>;\n\nexport type LagerInventoryOverviewParams = undefined;\nexport type LagerInventoryOverviewQuery = {\n\n};\nexport type LagerInventoryOverviewBody = undefined;\nexport type LagerInventoryOverviewResponseData = LagerInventoryOverview[];\nexport type LagerInventoryOverviewResponse = import(\"../types\").ApiEnvelope<LagerInventoryOverviewResponseData>;\n\nexport type LagerInventorySearchParams = undefined;\nexport type LagerInventorySearchQuery = {\n search?: string;\n query?: string;\n page?: number;\n pageSize?: number;\n};\nexport type LagerInventorySearchBody = undefined;\nexport type LagerInventorySearchResponseData = { summary: { totalInventories: number; activeReservations: number; totalQuantity: number }; result: PaginatedResult<LagerInventoryOverview>; };\nexport type LagerInventorySearchResponse = import(\"../types\").ApiEnvelope<LagerInventorySearchResponseData>;\n\nexport const apiRoutes_lager_inventory = {\n \"lager_locations_users_add\": {\n method: \"POST\",\n path: \"/lager-inventory/locations/users/add-user\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Assign user to location\",\n description: \"Assigns a user to one lager location with validity window and role (`admin`, `manager`, `viewer`).\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: LagerLocationsUsersAddParams;\n query: LagerLocationsUsersAddQuery;\n body: LagerLocationsUsersAddBody;\n response: LagerLocationsUsersAddResponse;\n responseData: LagerLocationsUsersAddResponseData;\n },\n },\n \"lager_locations_users_remove\": {\n method: \"DELETE\",\n path: \"/lager-inventory/locations/users/remove-user\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Remove user assignment from location\",\n description: \"Ends the active assignment for one user in one lager location.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: LagerLocationsUsersRemoveParams;\n query: LagerLocationsUsersRemoveQuery;\n body: LagerLocationsUsersRemoveBody;\n response: LagerLocationsUsersRemoveResponse;\n responseData: LagerLocationsUsersRemoveResponseData;\n },\n },\n \"lager_locations_create\": {\n method: \"POST\",\n path: \"/lager-inventory/locations/create\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_admin\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Create lager location\",\n description: \"Creates one new lager location and assigns requesting user as location admin.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: LagerLocationsCreateParams;\n query: LagerLocationsCreateQuery;\n body: LagerLocationsCreateBody;\n response: LagerLocationsCreateResponse;\n responseData: LagerLocationsCreateResponseData;\n },\n },\n \"lager_locations_update\": {\n method: \"PUT\",\n path: \"/lager-inventory/locations/update/:locationId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Update lager location\",\n description: \"Updates metadata and address fields of one lager location.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: LagerLocationsUpdateParams;\n query: LagerLocationsUpdateQuery;\n body: LagerLocationsUpdateBody;\n response: LagerLocationsUpdateResponse;\n responseData: LagerLocationsUpdateResponseData;\n },\n },\n \"lager_locations_delete\": {\n method: \"DELETE\",\n path: \"/lager-inventory/locations/delete/:locationId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Delete lager location\",\n description: \"Deletes one lager location when business constraints and role checks allow it.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerLocationsDeleteParams;\n query: LagerLocationsDeleteQuery;\n body: LagerLocationsDeleteBody;\n response: LagerLocationsDeleteResponse;\n responseData: LagerLocationsDeleteResponseData;\n },\n },\n \"lager_locations_by_id\": {\n method: \"GET\",\n path: \"/lager-inventory/locations/byId/:locationId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Get location by id\",\n description: \"Returns one lager location if the requester has access to it.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerLocationsByIdParams;\n query: LagerLocationsByIdQuery;\n body: LagerLocationsByIdBody;\n response: LagerLocationsByIdResponse;\n responseData: LagerLocationsByIdResponseData;\n },\n },\n \"lager_locations_by_id_full\": {\n method: \"GET\",\n path: \"/lager-inventory/locations/byId/:locationId/full\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Get full location by id\",\n description: \"Returns one location with currently active assigned users.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerLocationsByIdFullParams;\n query: LagerLocationsByIdFullQuery;\n body: LagerLocationsByIdFullBody;\n response: LagerLocationsByIdFullResponse;\n responseData: LagerLocationsByIdFullResponseData;\n },\n },\n \"lager_locations_by_id_full_history\": {\n method: \"GET\",\n path: \"/lager-inventory/locations/byId/:locationId/full/history\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Get full location history\",\n description: \"Returns one location with assignment history (including expired assignments for admins).\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerLocationsByIdFullHistoryParams;\n query: LagerLocationsByIdFullHistoryQuery;\n body: LagerLocationsByIdFullHistoryBody;\n response: LagerLocationsByIdFullHistoryResponse;\n responseData: LagerLocationsByIdFullHistoryResponseData;\n },\n },\n \"lager_locations_list\": {\n method: \"GET\",\n path: \"/lager-inventory/locations/getAll\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"List accessible locations\",\n description: \"Returns all locations for admins or only assigned locations for non-admin users.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerLocationsListParams;\n query: LagerLocationsListQuery;\n body: LagerLocationsListBody;\n response: LagerLocationsListResponse;\n responseData: LagerLocationsListResponseData;\n },\n },\n \"lager_locations_list_full\": {\n method: \"GET\",\n path: \"/lager-inventory/locations/getAll/full\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"List full accessible locations\",\n description: \"Returns accessible locations together with active assigned users per location.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerLocationsListFullParams;\n query: LagerLocationsListFullQuery;\n body: LagerLocationsListFullBody;\n response: LagerLocationsListFullResponse;\n responseData: LagerLocationsListFullResponseData;\n },\n },\n \"lager_transactions_add_inventory\": {\n method: \"POST\",\n path: \"/lager-inventory/transactions/addInventory/:variantId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Add inventory via RECEIVED transaction\",\n description: \"Creates a RECEIVED transaction and increases inventory atomically for one variant.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: LagerTransactionsAddInventoryParams;\n query: LagerTransactionsAddInventoryQuery;\n body: LagerTransactionsAddInventoryBody;\n response: LagerTransactionsAddInventoryResponse;\n responseData: LagerTransactionsAddInventoryResponseData;\n },\n },\n \"lager_transactions_adjust_inventory\": {\n method: \"POST\",\n path: \"/lager-inventory/transactions/adjustInventory/:variantId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Adjust inventory\",\n description: \"Creates an ADJUSTMENT transaction and adjusts inventory atomically by positive or negative quantity.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: LagerTransactionsAdjustInventoryParams;\n query: LagerTransactionsAdjustInventoryQuery;\n body: LagerTransactionsAdjustInventoryBody;\n response: LagerTransactionsAdjustInventoryResponse;\n responseData: LagerTransactionsAdjustInventoryResponseData;\n },\n },\n \"lager_transactions_add_bill\": {\n method: \"PUT\",\n path: \"/lager-inventory/transactions/add-bill/:transactionId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Attach bill id to transaction\",\n description: \"Sets `billId` on one inventory transaction for accounting traceability.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: LagerTransactionsAddBillParams;\n query: LagerTransactionsAddBillQuery;\n body: LagerTransactionsAddBillBody;\n response: LagerTransactionsAddBillResponse;\n responseData: LagerTransactionsAddBillResponseData;\n },\n },\n \"lager_transactions_remove_bill\": {\n method: \"DELETE\",\n path: \"/lager-inventory/transactions/remove-bill/:transactionId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Remove bill id from transaction\",\n description: \"Clears `billId` from one inventory transaction.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerTransactionsRemoveBillParams;\n query: LagerTransactionsRemoveBillQuery;\n body: LagerTransactionsRemoveBillBody;\n response: LagerTransactionsRemoveBillResponse;\n responseData: LagerTransactionsRemoveBillResponseData;\n },\n },\n \"lager_transactions_by_inventory\": {\n method: \"GET\",\n path: \"/lager-inventory/transactions/byInventory/:inventoryId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"List inventory transactions\",\n description: \"Returns all inventory transactions for one inventory id.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerTransactionsByInventoryParams;\n query: LagerTransactionsByInventoryQuery;\n body: LagerTransactionsByInventoryBody;\n response: LagerTransactionsByInventoryResponse;\n responseData: LagerTransactionsByInventoryResponseData;\n },\n },\n \"lager_transactions_search\": {\n method: \"GET\",\n path: \"/lager-inventory/transactions/byInventory/search/:inventoryId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Search inventory transactions\",\n description: \"Searches and paginates transactions for one inventory with optional text and date-range filters.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerTransactionsSearchParams;\n query: LagerTransactionsSearchQuery;\n body: LagerTransactionsSearchBody;\n response: LagerTransactionsSearchResponse;\n responseData: LagerTransactionsSearchResponseData;\n },\n },\n \"lager_transactions_summary\": {\n method: \"GET\",\n path: \"/lager-inventory/transactions/byInventory/summary/:inventoryId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Get inventory transaction balance timeline\",\n description: \"Returns running daily balance timeline based on inventory transactions in the requested range.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerTransactionsSummaryParams;\n query: LagerTransactionsSummaryQuery;\n body: LagerTransactionsSummaryBody;\n response: LagerTransactionsSummaryResponse;\n responseData: LagerTransactionsSummaryResponseData;\n },\n },\n \"lager_reservations_list\": {\n method: \"GET\",\n path: \"/lager-inventory/reservations/getAll\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"lager_view\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"List all inventory reservations\",\n description: \"Returns reservation groups by inventory variant, including full translated variant data and reservation entries.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerReservationsListParams;\n query: LagerReservationsListQuery;\n body: LagerReservationsListBody;\n response: LagerReservationsListResponse;\n responseData: LagerReservationsListResponseData;\n },\n },\n \"lager_inventory_create\": {\n method: \"POST\",\n path: \"/lager-inventory/create/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Create inventory for variant\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: LagerInventoryCreateParams;\n query: LagerInventoryCreateQuery;\n body: LagerInventoryCreateBody;\n response: LagerInventoryCreateResponse;\n responseData: LagerInventoryCreateResponseData;\n },\n },\n \"lager_inventory_delete\": {\n method: \"DELETE\",\n path: \"/lager-inventory/delete/:inventoryId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Delete inventory by id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: LagerInventoryDeleteParams;\n query: LagerInventoryDeleteQuery;\n body: LagerInventoryDeleteBody;\n response: LagerInventoryDeleteResponse;\n responseData: LagerInventoryDeleteResponseData;\n },\n },\n \"lager_inventory_create_by_ids\": {\n method: \"POST\",\n path: \"/lager-inventory/createByIds\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Create inventories by variant ids\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerInventoryCreateByIdsParams;\n query: LagerInventoryCreateByIdsQuery;\n body: LagerInventoryCreateByIdsBody;\n response: LagerInventoryCreateByIdsResponse;\n responseData: LagerInventoryCreateByIdsResponseData;\n },\n },\n \"lager_inventory_toggle_unlimited_by_variant\": {\n method: \"POST\",\n path: \"/lager-inventory/toggleUnlimited/byVariant/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Toggle unlimited inventory by variant\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: LagerInventoryToggleUnlimitedByVariantParams;\n query: LagerInventoryToggleUnlimitedByVariantQuery;\n body: LagerInventoryToggleUnlimitedByVariantBody;\n response: LagerInventoryToggleUnlimitedByVariantResponse;\n responseData: LagerInventoryToggleUnlimitedByVariantResponseData;\n },\n },\n \"lager_inventory_toggle_unlimited_by_inventory\": {\n method: \"POST\",\n path: \"/lager-inventory/toggleUnlimited/byInventory/:inventoryId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Toggle unlimited inventory by inventory id\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: LagerInventoryToggleUnlimitedByInventoryParams;\n query: LagerInventoryToggleUnlimitedByInventoryQuery;\n body: LagerInventoryToggleUnlimitedByInventoryBody;\n response: LagerInventoryToggleUnlimitedByInventoryResponse;\n responseData: LagerInventoryToggleUnlimitedByInventoryResponseData;\n },\n },\n \"lager_inventory_get_by_variant\": {\n method: \"GET\",\n path: \"/lager-inventory/getByVariant/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Get primary inventory by variant\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerInventoryGetByVariantParams;\n query: LagerInventoryGetByVariantQuery;\n body: LagerInventoryGetByVariantBody;\n response: LagerInventoryGetByVariantResponse;\n responseData: LagerInventoryGetByVariantResponseData;\n },\n },\n \"lager_inventory_list\": {\n method: \"GET\",\n path: \"/lager-inventory/getAll\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Get all inventories\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerInventoryListParams;\n query: LagerInventoryListQuery;\n body: LagerInventoryListBody;\n response: LagerInventoryListResponse;\n responseData: LagerInventoryListResponseData;\n },\n },\n \"lager_inventory_overview\": {\n method: \"GET\",\n path: \"/lager-inventory/overview\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Get inventory overview\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerInventoryOverviewParams;\n query: LagerInventoryOverviewQuery;\n body: LagerInventoryOverviewBody;\n response: LagerInventoryOverviewResponse;\n responseData: LagerInventoryOverviewResponseData;\n },\n },\n \"lager_inventory_search\": {\n method: \"GET\",\n path: \"/lager-inventory/search\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"lager-inventory\"],\n summary: \"Search inventories\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LagerInventorySearchParams;\n query: LagerInventorySearchQuery;\n body: LagerInventorySearchBody;\n response: LagerInventorySearchResponse;\n responseData: LagerInventorySearchResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { AppLog, PaginatedResult } from \"../../frontend-types\";\n\nexport type LogsSearchParams = undefined;\nexport type LogsSearchQuery = {\n search?: string;\n page?: number;\n pageSize?: number;\n level?: \"debug\" | \"info\" | \"warn\" | \"error\";\n dateFrom?: any;\n dateTo?: any;\n};\nexport type LogsSearchBody = undefined;\nexport type LogsSearchResponseData = { logs: PaginatedResult<AppLog>; canDelete: boolean };\nexport type LogsSearchResponse = import(\"../types\").ApiEnvelope<LogsSearchResponseData>;\n\nexport type LogsDeleteParams = {\n logId: number;\n};\nexport type LogsDeleteQuery = undefined;\nexport type LogsDeleteBody = undefined;\nexport type LogsDeleteResponseData = null;\nexport type LogsDeleteResponse = import(\"../types\").ApiEnvelope<LogsDeleteResponseData>;\n\nexport type LogsDeleteBulkParams = {\n logIds: string;\n};\nexport type LogsDeleteBulkQuery = undefined;\nexport type LogsDeleteBulkBody = undefined;\nexport type LogsDeleteBulkResponseData = null;\nexport type LogsDeleteBulkResponse = import(\"../types\").ApiEnvelope<LogsDeleteBulkResponseData>;\n\nexport const apiRoutes_logs = {\n \"logs_search\": {\n method: \"GET\",\n path: \"/app-logs/search\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"log_view\"},\n meta: {\n tags: [\"logs\"],\n summary: \"Search logs\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: LogsSearchParams;\n query: LogsSearchQuery;\n body: LogsSearchBody;\n response: LogsSearchResponse;\n responseData: LogsSearchResponseData;\n },\n },\n \"logs_delete\": {\n method: \"DELETE\",\n path: \"/app-logs/delete/:logId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"log_delete\"},\n meta: {\n tags: [\"logs\"],\n summary: \"Delete one log\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: LogsDeleteParams;\n query: LogsDeleteQuery;\n body: LogsDeleteBody;\n response: LogsDeleteResponse;\n responseData: LogsDeleteResponseData;\n },\n },\n \"logs_delete_bulk\": {\n method: \"DELETE\",\n path: \"/app-logs/delete/mass/:logIds\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"log_delete\"},\n meta: {\n tags: [\"logs\"],\n summary: \"Delete multiple logs\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: LogsDeleteBulkParams;\n query: LogsDeleteBulkQuery;\n body: LogsDeleteBulkBody;\n response: LogsDeleteBulkResponse;\n responseData: LogsDeleteBulkResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Image, MediaSet, Video } from \"../../frontend-types\";\n\nexport type MediaSetsCreateProductImageParams = {\n productId: number;\n};\nexport type MediaSetsCreateProductImageQuery = undefined;\nexport type MediaSetsCreateProductImageBody = {\n s3Key: string;\n};\nexport type MediaSetsCreateProductImageResponseData = { mediaSet: MediaSet; image: Image };\nexport type MediaSetsCreateProductImageResponse = import(\"../types\").ApiEnvelope<MediaSetsCreateProductImageResponseData>;\n\nexport type MediaSetsGetProductImageParams = {\n productId: number;\n imageId: number;\n};\nexport type MediaSetsGetProductImageQuery = {\n\n};\nexport type MediaSetsGetProductImageBody = undefined;\nexport type MediaSetsGetProductImageResponseData = { result: Image; mediaSet: MediaSet };\nexport type MediaSetsGetProductImageResponse = import(\"../types\").ApiEnvelope<MediaSetsGetProductImageResponseData>;\n\nexport type MediaSetsDeleteProductImageParams = {\n productId: number;\n imageId: number;\n};\nexport type MediaSetsDeleteProductImageQuery = undefined;\nexport type MediaSetsDeleteProductImageBody = undefined;\nexport type MediaSetsDeleteProductImageResponseData = null;\nexport type MediaSetsDeleteProductImageResponse = import(\"../types\").ApiEnvelope<MediaSetsDeleteProductImageResponseData>;\n\nexport type MediaSetsCreateProductVideoParams = {\n productId: number;\n};\nexport type MediaSetsCreateProductVideoQuery = undefined;\nexport type MediaSetsCreateProductVideoBody = {\n s3Key: string;\n};\nexport type MediaSetsCreateProductVideoResponseData = { mediaSet: MediaSet; video: Video };\nexport type MediaSetsCreateProductVideoResponse = import(\"../types\").ApiEnvelope<MediaSetsCreateProductVideoResponseData>;\n\nexport type MediaSetsGetProductVideoParams = {\n productId: number;\n videoId: number;\n};\nexport type MediaSetsGetProductVideoQuery = {\n\n};\nexport type MediaSetsGetProductVideoBody = undefined;\nexport type MediaSetsGetProductVideoResponseData = { result: Video; mediaSet: MediaSet };\nexport type MediaSetsGetProductVideoResponse = import(\"../types\").ApiEnvelope<MediaSetsGetProductVideoResponseData>;\n\nexport type MediaSetsDeleteProductVideoParams = {\n productId: number;\n videoId: number;\n};\nexport type MediaSetsDeleteProductVideoQuery = undefined;\nexport type MediaSetsDeleteProductVideoBody = undefined;\nexport type MediaSetsDeleteProductVideoResponseData = null;\nexport type MediaSetsDeleteProductVideoResponse = import(\"../types\").ApiEnvelope<MediaSetsDeleteProductVideoResponseData>;\n\nexport type MediaSetsGetProductItemImageParams = {\n itemId: number;\n imageId: number;\n};\nexport type MediaSetsGetProductItemImageQuery = {\n\n};\nexport type MediaSetsGetProductItemImageBody = undefined;\nexport type MediaSetsGetProductItemImageResponseData = { result: Image; mediaSet: MediaSet };\nexport type MediaSetsGetProductItemImageResponse = import(\"../types\").ApiEnvelope<MediaSetsGetProductItemImageResponseData>;\n\nexport type MediaSetsCreateProductItemImageParams = {\n productItemId: number;\n};\nexport type MediaSetsCreateProductItemImageQuery = undefined;\nexport type MediaSetsCreateProductItemImageBody = {\n s3Key: string;\n};\nexport type MediaSetsCreateProductItemImageResponseData = { mediaSet: MediaSet; image: Image };\nexport type MediaSetsCreateProductItemImageResponse = import(\"../types\").ApiEnvelope<MediaSetsCreateProductItemImageResponseData>;\n\nexport type MediaSetsDeleteProductItemImageParams = {\n itemId: number;\n imageId: number;\n};\nexport type MediaSetsDeleteProductItemImageQuery = undefined;\nexport type MediaSetsDeleteProductItemImageBody = undefined;\nexport type MediaSetsDeleteProductItemImageResponseData = null;\nexport type MediaSetsDeleteProductItemImageResponse = import(\"../types\").ApiEnvelope<MediaSetsDeleteProductItemImageResponseData>;\n\nexport type MediaSetsCreateProductItemVideoParams = {\n productItemId: number;\n};\nexport type MediaSetsCreateProductItemVideoQuery = undefined;\nexport type MediaSetsCreateProductItemVideoBody = {\n s3Key: string;\n};\nexport type MediaSetsCreateProductItemVideoResponseData = { mediaSet: MediaSet; video: Video };\nexport type MediaSetsCreateProductItemVideoResponse = import(\"../types\").ApiEnvelope<MediaSetsCreateProductItemVideoResponseData>;\n\nexport type MediaSetsGetProductItemVideoParams = {\n itemId: number;\n videoId: number;\n};\nexport type MediaSetsGetProductItemVideoQuery = {\n\n};\nexport type MediaSetsGetProductItemVideoBody = undefined;\nexport type MediaSetsGetProductItemVideoResponseData = { result: Video; mediaSet: MediaSet };\nexport type MediaSetsGetProductItemVideoResponse = import(\"../types\").ApiEnvelope<MediaSetsGetProductItemVideoResponseData>;\n\nexport type MediaSetsDeleteProductItemVideoParams = {\n itemId: number;\n videoId: number;\n};\nexport type MediaSetsDeleteProductItemVideoQuery = undefined;\nexport type MediaSetsDeleteProductItemVideoBody = undefined;\nexport type MediaSetsDeleteProductItemVideoResponseData = null;\nexport type MediaSetsDeleteProductItemVideoResponse = import(\"../types\").ApiEnvelope<MediaSetsDeleteProductItemVideoResponseData>;\n\nexport const apiRoutes_media_sets = {\n \"media_sets_create_product_image\": {\n method: \"POST\",\n path: \"/media-sets/create/productImage/:productId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"media-sets\"],\n summary: \"Create product image\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: MediaSetsCreateProductImageParams;\n query: MediaSetsCreateProductImageQuery;\n body: MediaSetsCreateProductImageBody;\n response: MediaSetsCreateProductImageResponse;\n responseData: MediaSetsCreateProductImageResponseData;\n },\n },\n \"media_sets_get_product_image\": {\n method: \"GET\",\n path: \"/media-sets/getProductImage/:productId/:imageId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"media-sets\"],\n summary: \"Get product image\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: MediaSetsGetProductImageParams;\n query: MediaSetsGetProductImageQuery;\n body: MediaSetsGetProductImageBody;\n response: MediaSetsGetProductImageResponse;\n responseData: MediaSetsGetProductImageResponseData;\n },\n },\n \"media_sets_delete_product_image\": {\n method: \"DELETE\",\n path: \"/media-sets/delete/productImage/:productId/:imageId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"media-sets\"],\n summary: \"Delete product image\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: MediaSetsDeleteProductImageParams;\n query: MediaSetsDeleteProductImageQuery;\n body: MediaSetsDeleteProductImageBody;\n response: MediaSetsDeleteProductImageResponse;\n responseData: MediaSetsDeleteProductImageResponseData;\n },\n },\n \"media_sets_create_product_video\": {\n method: \"POST\",\n path: \"/media-sets/create/productVideo/:productId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"media-sets\"],\n summary: \"Create product video\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: MediaSetsCreateProductVideoParams;\n query: MediaSetsCreateProductVideoQuery;\n body: MediaSetsCreateProductVideoBody;\n response: MediaSetsCreateProductVideoResponse;\n responseData: MediaSetsCreateProductVideoResponseData;\n },\n },\n \"media_sets_get_product_video\": {\n method: \"GET\",\n path: \"/media-sets/getProductVideo/:productId/:videoId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"media-sets\"],\n summary: \"Get product video\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: MediaSetsGetProductVideoParams;\n query: MediaSetsGetProductVideoQuery;\n body: MediaSetsGetProductVideoBody;\n response: MediaSetsGetProductVideoResponse;\n responseData: MediaSetsGetProductVideoResponseData;\n },\n },\n \"media_sets_delete_product_video\": {\n method: \"DELETE\",\n path: \"/media-sets/delete/productVideo/:productId/:videoId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"media-sets\"],\n summary: \"Delete product video\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: MediaSetsDeleteProductVideoParams;\n query: MediaSetsDeleteProductVideoQuery;\n body: MediaSetsDeleteProductVideoBody;\n response: MediaSetsDeleteProductVideoResponse;\n responseData: MediaSetsDeleteProductVideoResponseData;\n },\n },\n \"media_sets_get_product_item_image\": {\n method: \"GET\",\n path: \"/media-sets/getProductItemImage/:itemId/:imageId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"media-sets\"],\n summary: \"Get product item image\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: MediaSetsGetProductItemImageParams;\n query: MediaSetsGetProductItemImageQuery;\n body: MediaSetsGetProductItemImageBody;\n response: MediaSetsGetProductItemImageResponse;\n responseData: MediaSetsGetProductItemImageResponseData;\n },\n },\n \"media_sets_create_product_item_image\": {\n method: \"POST\",\n path: \"/media-sets/create/productItemImage/:productItemId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"media-sets\"],\n summary: \"Create product item image\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: MediaSetsCreateProductItemImageParams;\n query: MediaSetsCreateProductItemImageQuery;\n body: MediaSetsCreateProductItemImageBody;\n response: MediaSetsCreateProductItemImageResponse;\n responseData: MediaSetsCreateProductItemImageResponseData;\n },\n },\n \"media_sets_delete_product_item_image\": {\n method: \"DELETE\",\n path: \"/media-sets/delete/productItemImage/:itemId/:imageId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"media-sets\"],\n summary: \"Delete product item image\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: MediaSetsDeleteProductItemImageParams;\n query: MediaSetsDeleteProductItemImageQuery;\n body: MediaSetsDeleteProductItemImageBody;\n response: MediaSetsDeleteProductItemImageResponse;\n responseData: MediaSetsDeleteProductItemImageResponseData;\n },\n },\n \"media_sets_create_product_item_video\": {\n method: \"POST\",\n path: \"/media-sets/create/productItemVideo/:productItemId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"media-sets\"],\n summary: \"Create product item video\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: MediaSetsCreateProductItemVideoParams;\n query: MediaSetsCreateProductItemVideoQuery;\n body: MediaSetsCreateProductItemVideoBody;\n response: MediaSetsCreateProductItemVideoResponse;\n responseData: MediaSetsCreateProductItemVideoResponseData;\n },\n },\n \"media_sets_get_product_item_video\": {\n method: \"GET\",\n path: \"/media-sets/getProductItemVideo/:itemId/:videoId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"media-sets\"],\n summary: \"Get product item video\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: MediaSetsGetProductItemVideoParams;\n query: MediaSetsGetProductItemVideoQuery;\n body: MediaSetsGetProductItemVideoBody;\n response: MediaSetsGetProductItemVideoResponse;\n responseData: MediaSetsGetProductItemVideoResponseData;\n },\n },\n \"media_sets_delete_product_item_video\": {\n method: \"DELETE\",\n path: \"/media-sets/delete/productItemVideo/:itemId/:videoId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"media-sets\"],\n summary: \"Delete product item video\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: MediaSetsDeleteProductItemVideoParams;\n query: MediaSetsDeleteProductItemVideoQuery;\n body: MediaSetsDeleteProductItemVideoBody;\n response: MediaSetsDeleteProductItemVideoResponse;\n responseData: MediaSetsDeleteProductItemVideoResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { OAuth2AuditLog, PaginatedResult, UnsensitiveOAuth2Client } from \"../../frontend-types\";\n\nexport type Oauth2TokenParams = undefined;\nexport type Oauth2TokenQuery = undefined;\nexport type Oauth2TokenBody = {\n grant_type: \"client_credentials\" | \"refresh_token\";\n client_id: string;\n client_secret: string;\n scope?: string;\n refresh_token?: string;\n};\nexport type Oauth2TokenResponseData = {\n access_token: string;\n refresh_token?: string;\n token_type: string;\n expires_in: number;\n scope?: string;\n};\nexport type Oauth2TokenResponse = Oauth2TokenResponseData;\n\nexport type Oauth2RevokeParams = undefined;\nexport type Oauth2RevokeQuery = undefined;\nexport type Oauth2RevokeBody = {\n token: string;\n client_id: string;\n client_secret: string;\n token_type_hint?: \"refresh_token\" | \"access_token\";\n};\nexport type Oauth2RevokeResponseData = {\n status: \"ok\";\n};\nexport type Oauth2RevokeResponse = Oauth2RevokeResponseData;\n\nexport type Oauth2ClientsCreateParams = undefined;\nexport type Oauth2ClientsCreateQuery = undefined;\nexport type Oauth2ClientsCreateBody = {\n name: string;\n description?: string;\n role: \"viewer\" | \"editor\" | \"admin\";\n scopes?: Array<string>;\n accessTokenTtl?: number;\n refreshTokenTtl?: number;\n allowedIps?: Array<string>;\n rateLimitPerMinute?: number;\n rateLimitPerHour?: number;\n validTo?: string;\n};\nexport type Oauth2ClientsCreateResponseData = { client: UnsensitiveOAuth2Client; credentials: { client_id: string; client_secret: string; warning: string } };\nexport type Oauth2ClientsCreateResponse = import(\"../types\").ApiEnvelope<Oauth2ClientsCreateResponseData>;\n\nexport type Oauth2ClientsListParams = undefined;\nexport type Oauth2ClientsListQuery = {\n page?: number;\n pageSize?: number;\n};\nexport type Oauth2ClientsListBody = undefined;\nexport type Oauth2ClientsListResponseData = PaginatedResult<UnsensitiveOAuth2Client>;\nexport type Oauth2ClientsListResponse = import(\"../types\").ApiEnvelope<Oauth2ClientsListResponseData>;\n\nexport type Oauth2ClientsRevokeParams = {\n id: number;\n};\nexport type Oauth2ClientsRevokeQuery = undefined;\nexport type Oauth2ClientsRevokeBody = undefined;\nexport type Oauth2ClientsRevokeResponseData = null;\nexport type Oauth2ClientsRevokeResponse = import(\"../types\").ApiEnvelope<Oauth2ClientsRevokeResponseData>;\n\nexport type Oauth2ClientsAuditParams = {\n id: number;\n};\nexport type Oauth2ClientsAuditQuery = {\n page?: number;\n pageSize?: number;\n};\nexport type Oauth2ClientsAuditBody = undefined;\nexport type Oauth2ClientsAuditResponseData = PaginatedResult<OAuth2AuditLog>;\nexport type Oauth2ClientsAuditResponse = import(\"../types\").ApiEnvelope<Oauth2ClientsAuditResponseData>;\n\nexport type Oauth2ClientsUpdateParams = {\n id: number;\n};\nexport type Oauth2ClientsUpdateQuery = undefined;\nexport type Oauth2ClientsUpdateBody = {\n name?: string;\n description?: string;\n role?: \"viewer\" | \"editor\" | \"admin\";\n scopes?: Array<string>;\n accessTokenTtl?: number;\n refreshTokenTtl?: number;\n allowedIps?: Array<string>;\n rateLimitPerMinute?: number;\n rateLimitPerHour?: number;\n validTo?: string;\n};\nexport type Oauth2ClientsUpdateResponseData = UnsensitiveOAuth2Client;\nexport type Oauth2ClientsUpdateResponse = import(\"../types\").ApiEnvelope<Oauth2ClientsUpdateResponseData>;\n\nexport type Oauth2ScopesListParams = undefined;\nexport type Oauth2ScopesListQuery = {\n\n};\nexport type Oauth2ScopesListBody = undefined;\nexport type Oauth2ScopesListResponseData = Record<string, Array<string>>;\nexport type Oauth2ScopesListResponse = import(\"../types\").ApiEnvelope<Oauth2ScopesListResponseData>;\n\nexport const apiRoutes_oauth2 = {\n \"oauth2_token\": {\n method: \"POST\",\n path: \"/oauth/token\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"oauth2\"],\n bodyContentType: \"application/x-www-form-urlencoded\",\n },\n types: null as unknown as {\n params: Oauth2TokenParams;\n query: Oauth2TokenQuery;\n body: Oauth2TokenBody;\n response: Oauth2TokenResponse;\n responseData: Oauth2TokenResponseData;\n },\n },\n \"oauth2_revoke\": {\n method: \"POST\",\n path: \"/oauth/revoke\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"oauth2\"],\n bodyContentType: \"application/x-www-form-urlencoded\",\n },\n types: null as unknown as {\n params: Oauth2RevokeParams;\n query: Oauth2RevokeQuery;\n body: Oauth2RevokeBody;\n response: Oauth2RevokeResponse;\n responseData: Oauth2RevokeResponseData;\n },\n },\n \"oauth2_clients_create\": {\n method: \"POST\",\n path: \"/oauth/clients/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"oauth2\"],\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: Oauth2ClientsCreateParams;\n query: Oauth2ClientsCreateQuery;\n body: Oauth2ClientsCreateBody;\n response: Oauth2ClientsCreateResponse;\n responseData: Oauth2ClientsCreateResponseData;\n },\n },\n \"oauth2_clients_list\": {\n method: \"GET\",\n path: \"/oauth/clients/list\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"oauth2\"],\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: Oauth2ClientsListParams;\n query: Oauth2ClientsListQuery;\n body: Oauth2ClientsListBody;\n response: Oauth2ClientsListResponse;\n responseData: Oauth2ClientsListResponseData;\n },\n },\n \"oauth2_clients_revoke\": {\n method: \"DELETE\",\n path: \"/oauth/clients/revoke/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"oauth2\"],\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: Oauth2ClientsRevokeParams;\n query: Oauth2ClientsRevokeQuery;\n body: Oauth2ClientsRevokeBody;\n response: Oauth2ClientsRevokeResponse;\n responseData: Oauth2ClientsRevokeResponseData;\n },\n },\n \"oauth2_clients_audit\": {\n method: \"GET\",\n path: \"/oauth/clients/audit/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"oauth2\"],\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: Oauth2ClientsAuditParams;\n query: Oauth2ClientsAuditQuery;\n body: Oauth2ClientsAuditBody;\n response: Oauth2ClientsAuditResponse;\n responseData: Oauth2ClientsAuditResponseData;\n },\n },\n \"oauth2_clients_update\": {\n method: \"PUT\",\n path: \"/oauth/clients/update/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"oauth2\"],\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: Oauth2ClientsUpdateParams;\n query: Oauth2ClientsUpdateQuery;\n body: Oauth2ClientsUpdateBody;\n response: Oauth2ClientsUpdateResponse;\n responseData: Oauth2ClientsUpdateResponseData;\n },\n },\n \"oauth2_scopes_list\": {\n method: \"GET\",\n path: \"/oauth/scopes\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"oauth2\"],\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: Oauth2ScopesListParams;\n query: Oauth2ScopesListQuery;\n body: Oauth2ScopesListBody;\n response: Oauth2ScopesListResponse;\n responseData: Oauth2ScopesListResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { OrderWithDetails } from \"../../frontend-types\";\n\nexport type OrdersSearchParams = undefined;\nexport type OrdersSearchQuery = {\n page?: number;\n pageSize?: number;\n query?: string;\n sortBy?: \"date_asc\" | \"date_desc\" | \"total_asc\" | \"total_desc\" | \"status\";\n filters?: string;\n};\nexport type OrdersSearchBody = undefined;\nexport type OrdersSearchResponseData = { data: OrderWithDetails[]; page: number; pageSize: number; total: number; totalPages: number; hasNextPage: boolean; hasPrevPage: boolean; };\nexport type OrdersSearchResponse = import(\"../types\").ApiEnvelope<OrdersSearchResponseData>;\n\nexport type OrdersGetByIdParams = {\n orderId: string;\n};\nexport type OrdersGetByIdQuery = {\n\n};\nexport type OrdersGetByIdBody = undefined;\nexport type OrdersGetByIdResponseData = OrderWithDetails;\nexport type OrdersGetByIdResponse = import(\"../types\").ApiEnvelope<OrdersGetByIdResponseData>;\n\nexport type OrdersVerifyOrderParams = {\n orderId: string;\n orderToken: string;\n};\nexport type OrdersVerifyOrderQuery = {\n\n};\nexport type OrdersVerifyOrderBody = undefined;\nexport type OrdersVerifyOrderResponseData = OrderWithDetails;\nexport type OrdersVerifyOrderResponse = import(\"../types\").ApiEnvelope<OrdersVerifyOrderResponseData>;\n\nexport type OrdersHandleCancelParams = {\n orderId: string;\n};\nexport type OrdersHandleCancelQuery = {\n\n};\nexport type OrdersHandleCancelBody = undefined;\nexport type OrdersHandleCancelResponseData = null;\nexport type OrdersHandleCancelResponse = import(\"../types\").ApiEnvelope<OrdersHandleCancelResponseData>;\n\nexport type OrdersProcessPaidParams = {\n orderId: string;\n};\nexport type OrdersProcessPaidQuery = {\n\n};\nexport type OrdersProcessPaidBody = undefined;\nexport type OrdersProcessPaidResponseData = boolean;\nexport type OrdersProcessPaidResponse = import(\"../types\").ApiEnvelope<OrdersProcessPaidResponseData>;\n\nexport type OrdersDeleteParams = {\n orderId: string;\n};\nexport type OrdersDeleteQuery = {\n\n};\nexport type OrdersDeleteBody = undefined;\nexport type OrdersDeleteResponseData = null;\nexport type OrdersDeleteResponse = import(\"../types\").ApiEnvelope<OrdersDeleteResponseData>;\n\nexport const apiRoutes_orders = {\n \"orders_search\": {\n method: \"GET\",\n path: \"/orders/search\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"orders\"],\n summary: \"Search orders for current frontend user\",\n description: \"Searches orders for the calling frontend identity (`user-id` header). Optional `filters` must be JSON-stringified.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: OrdersSearchParams;\n query: OrdersSearchQuery;\n body: OrdersSearchBody;\n response: OrdersSearchResponse;\n responseData: OrdersSearchResponseData;\n },\n },\n \"orders_get_by_id\": {\n method: \"GET\",\n path: \"/orders/get/:orderId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"orders\"],\n summary: \"Get full order details by id\",\n description: \"Returns order details including items, variants, customer/address context and payment history.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: OrdersGetByIdParams;\n query: OrdersGetByIdQuery;\n body: OrdersGetByIdBody;\n response: OrdersGetByIdResponse;\n responseData: OrdersGetByIdResponseData;\n },\n },\n \"orders_verify_order\": {\n method: \"GET\",\n path: \"/orders/verifyOrder/:orderId/:orderToken\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"orders\"],\n summary: \"Public order verification by token\",\n description: \"Public endpoint for customer-facing order status pages. Validates `orderToken` before returning filtered order details.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: OrdersVerifyOrderParams;\n query: OrdersVerifyOrderQuery;\n body: OrdersVerifyOrderBody;\n response: OrdersVerifyOrderResponse;\n responseData: OrdersVerifyOrderResponseData;\n },\n },\n \"orders_handle_cancel\": {\n method: \"POST\",\n path: \"/orders/handleCancelOrder/:orderId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"orders\"],\n summary: \"Handle cancellation flow for one order\",\n description: \"Runs cancellation cleanup/use-case flow for an order. Intended for internal/admin-triggered cancellation handling.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: OrdersHandleCancelParams;\n query: OrdersHandleCancelQuery;\n body: OrdersHandleCancelBody;\n response: OrdersHandleCancelResponse;\n responseData: OrdersHandleCancelResponseData;\n },\n },\n \"orders_process_paid\": {\n method: \"POST\",\n path: \"/orders/process/paid/:orderId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"orders\"],\n summary: \"Process a paid order\",\n description: \"Processes paid order items and advances the order status where possible. Returns `true` when processing completed.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: OrdersProcessPaidParams;\n query: OrdersProcessPaidQuery;\n body: OrdersProcessPaidBody;\n response: OrdersProcessPaidResponse;\n responseData: OrdersProcessPaidResponseData;\n },\n },\n \"orders_delete\": {\n method: \"DELETE\",\n path: \"/orders/delete/:orderId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"orders\"],\n summary: \"Delete order (non-paid states only)\",\n description: \"Deletes an order when deletion is allowed by business rules. Requires authenticated user plus `user-id` header context.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: OrdersDeleteParams;\n query: OrdersDeleteQuery;\n body: OrdersDeleteBody;\n response: OrdersDeleteResponse;\n responseData: OrdersDeleteResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { PayPalConfig, StripeConfig } from \"../../frontend-types\";\n\nexport type PaymentsProviderConfigsStripeListParams = undefined;\nexport type PaymentsProviderConfigsStripeListQuery = {\n region?: string;\n currency?: string;\n includeInactive?: boolean | \"true\" | \"false\";\n asOf?: string | null;\n paymentMethod?: \"CreditCard\" | \"SEPA\" | \"BankTransfer\" | \"ApplePay\" | \"GooglePay\";\n};\nexport type PaymentsProviderConfigsStripeListBody = undefined;\nexport type PaymentsProviderConfigsStripeListResponseData = StripeConfig[];\nexport type PaymentsProviderConfigsStripeListResponse = import(\"../types\").ApiEnvelope<PaymentsProviderConfigsStripeListResponseData>;\n\nexport type PaymentsProviderConfigsStripeGetParams = {\n id: number;\n};\nexport type PaymentsProviderConfigsStripeGetQuery = {\n\n};\nexport type PaymentsProviderConfigsStripeGetBody = undefined;\nexport type PaymentsProviderConfigsStripeGetResponseData = StripeConfig;\nexport type PaymentsProviderConfigsStripeGetResponse = import(\"../types\").ApiEnvelope<PaymentsProviderConfigsStripeGetResponseData>;\n\nexport type PaymentsProviderConfigsStripeCreateParams = undefined;\nexport type PaymentsProviderConfigsStripeCreateQuery = {\n\n};\nexport type PaymentsProviderConfigsStripeCreateBody = {\n region?: string;\n paymentMethod: \"CreditCard\" | \"SEPA\" | \"BankTransfer\" | \"ApplePay\" | \"GooglePay\";\n percentageFee: number;\n fixedFee: number;\n currency?: string;\n internationalCardFee?: number | null;\n currencyConversionFee?: number | null;\n description?: string | null;\n isActive?: boolean;\n validFrom?: string | null;\n validTo?: string | null;\n source?: string | null;\n};\nexport type PaymentsProviderConfigsStripeCreateResponseData = StripeConfig;\nexport type PaymentsProviderConfigsStripeCreateResponse = import(\"../types\").ApiEnvelope<PaymentsProviderConfigsStripeCreateResponseData>;\n\nexport type PaymentsProviderConfigsStripeUpdateParams = {\n id: number;\n};\nexport type PaymentsProviderConfigsStripeUpdateQuery = {\n\n};\nexport type PaymentsProviderConfigsStripeUpdateBody = {\n region?: string;\n paymentMethod?: \"CreditCard\" | \"SEPA\" | \"BankTransfer\" | \"ApplePay\" | \"GooglePay\";\n percentageFee?: number;\n fixedFee?: number;\n currency?: string;\n internationalCardFee?: number | null;\n currencyConversionFee?: number | null;\n description?: string | null;\n isActive?: boolean;\n validFrom?: string | null;\n validTo?: string | null;\n source?: string | null;\n};\nexport type PaymentsProviderConfigsStripeUpdateResponseData = StripeConfig;\nexport type PaymentsProviderConfigsStripeUpdateResponse = import(\"../types\").ApiEnvelope<PaymentsProviderConfigsStripeUpdateResponseData>;\n\nexport type PaymentsProviderConfigsStripeDeleteParams = {\n id: number;\n};\nexport type PaymentsProviderConfigsStripeDeleteQuery = {\n\n};\nexport type PaymentsProviderConfigsStripeDeleteBody = undefined;\nexport type PaymentsProviderConfigsStripeDeleteResponseData = null;\nexport type PaymentsProviderConfigsStripeDeleteResponse = import(\"../types\").ApiEnvelope<PaymentsProviderConfigsStripeDeleteResponseData>;\n\nexport type PaymentsProviderConfigsPaypalListParams = undefined;\nexport type PaymentsProviderConfigsPaypalListQuery = {\n region?: string;\n currency?: string;\n includeInactive?: boolean | \"true\" | \"false\";\n asOf?: string | null;\n transactionType?: string;\n};\nexport type PaymentsProviderConfigsPaypalListBody = undefined;\nexport type PaymentsProviderConfigsPaypalListResponseData = PayPalConfig[];\nexport type PaymentsProviderConfigsPaypalListResponse = import(\"../types\").ApiEnvelope<PaymentsProviderConfigsPaypalListResponseData>;\n\nexport type PaymentsProviderConfigsPaypalGetParams = {\n id: number;\n};\nexport type PaymentsProviderConfigsPaypalGetQuery = {\n\n};\nexport type PaymentsProviderConfigsPaypalGetBody = undefined;\nexport type PaymentsProviderConfigsPaypalGetResponseData = PayPalConfig;\nexport type PaymentsProviderConfigsPaypalGetResponse = import(\"../types\").ApiEnvelope<PaymentsProviderConfigsPaypalGetResponseData>;\n\nexport type PaymentsProviderConfigsPaypalCreateParams = undefined;\nexport type PaymentsProviderConfigsPaypalCreateQuery = {\n\n};\nexport type PaymentsProviderConfigsPaypalCreateBody = {\n region?: string;\n transactionType?: string;\n percentageFee: number;\n fixedFee: number;\n currency?: string;\n monthlyVolumeMin?: number | null;\n monthlyVolumeMax?: number | null;\n currencyConversionFee?: number | null;\n chargebackFee?: number | null;\n description?: string | null;\n isActive?: boolean;\n validFrom?: string | null;\n validTo?: string | null;\n source?: string | null;\n};\nexport type PaymentsProviderConfigsPaypalCreateResponseData = PayPalConfig;\nexport type PaymentsProviderConfigsPaypalCreateResponse = import(\"../types\").ApiEnvelope<PaymentsProviderConfigsPaypalCreateResponseData>;\n\nexport type PaymentsProviderConfigsPaypalUpdateParams = {\n id: number;\n};\nexport type PaymentsProviderConfigsPaypalUpdateQuery = {\n\n};\nexport type PaymentsProviderConfigsPaypalUpdateBody = {\n region?: string;\n transactionType?: string;\n percentageFee?: number;\n fixedFee?: number;\n currency?: string;\n monthlyVolumeMin?: number | null;\n monthlyVolumeMax?: number | null;\n currencyConversionFee?: number | null;\n chargebackFee?: number | null;\n description?: string | null;\n isActive?: boolean;\n validFrom?: string | null;\n validTo?: string | null;\n source?: string | null;\n};\nexport type PaymentsProviderConfigsPaypalUpdateResponseData = PayPalConfig;\nexport type PaymentsProviderConfigsPaypalUpdateResponse = import(\"../types\").ApiEnvelope<PaymentsProviderConfigsPaypalUpdateResponseData>;\n\nexport type PaymentsProviderConfigsPaypalDeleteParams = {\n id: number;\n};\nexport type PaymentsProviderConfigsPaypalDeleteQuery = {\n\n};\nexport type PaymentsProviderConfigsPaypalDeleteBody = undefined;\nexport type PaymentsProviderConfigsPaypalDeleteResponseData = null;\nexport type PaymentsProviderConfigsPaypalDeleteResponse = import(\"../types\").ApiEnvelope<PaymentsProviderConfigsPaypalDeleteResponseData>;\n\nexport type PaymentsInvoiceParams = {\n paymentId: number;\n token: string;\n};\nexport type PaymentsInvoiceQuery = {\n\n};\nexport type PaymentsInvoiceBody = undefined;\nexport type PaymentsInvoiceResponseData = Blob;\nexport type PaymentsInvoiceResponse = Blob;\n\nexport type PaymentsProviderInfosParams = {\n paymentId: number;\n};\nexport type PaymentsProviderInfosQuery = {\n\n};\nexport type PaymentsProviderInfosBody = undefined;\nexport type PaymentsProviderInfosResponseData = {\n status: string;\n customerEmail?: string | null;\n customerId?: string | number;\n rawProviderData?: any;\n paymentIntentStatus?: string;\n refunded?: boolean;\n createdAt?: string;\n amount?: number;\n currency?: string;\n};\nexport type PaymentsProviderInfosResponse = import(\"../types\").ApiEnvelope<PaymentsProviderInfosResponseData>;\n\nexport const apiRoutes_payments = {\n \"payments_provider_configs_stripe_list\": {\n method: \"GET\",\n path: \"/payments/provider-configs/admin/stripe\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_view\"},\n meta: {\n tags: [\"payments\"],\n summary: \"List Stripe provider configs\",\n description: \"Returns Stripe fee/config rows filtered by optional region, payment method, currency, activity state, and date.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: PaymentsProviderConfigsStripeListParams;\n query: PaymentsProviderConfigsStripeListQuery;\n body: PaymentsProviderConfigsStripeListBody;\n response: PaymentsProviderConfigsStripeListResponse;\n responseData: PaymentsProviderConfigsStripeListResponseData;\n },\n },\n \"payments_provider_configs_stripe_get\": {\n method: \"GET\",\n path: \"/payments/provider-configs/admin/stripe/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_view\"},\n meta: {\n tags: [\"payments\"],\n summary: \"Get Stripe provider config by id\",\n description: \"Returns one Stripe provider config row by its numeric id.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: PaymentsProviderConfigsStripeGetParams;\n query: PaymentsProviderConfigsStripeGetQuery;\n body: PaymentsProviderConfigsStripeGetBody;\n response: PaymentsProviderConfigsStripeGetResponse;\n responseData: PaymentsProviderConfigsStripeGetResponseData;\n },\n },\n \"payments_provider_configs_stripe_create\": {\n method: \"POST\",\n path: \"/payments/provider-configs/admin/stripe\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"payments\"],\n summary: \"Create Stripe provider config\",\n description: \"Creates a new Stripe provider config row with period and fee settings.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: PaymentsProviderConfigsStripeCreateParams;\n query: PaymentsProviderConfigsStripeCreateQuery;\n body: PaymentsProviderConfigsStripeCreateBody;\n response: PaymentsProviderConfigsStripeCreateResponse;\n responseData: PaymentsProviderConfigsStripeCreateResponseData;\n },\n },\n \"payments_provider_configs_stripe_update\": {\n method: \"PUT\",\n path: \"/payments/provider-configs/admin/stripe/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"payments\"],\n summary: \"Update Stripe provider config\",\n description: \"Updates one existing Stripe provider config row by id.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: PaymentsProviderConfigsStripeUpdateParams;\n query: PaymentsProviderConfigsStripeUpdateQuery;\n body: PaymentsProviderConfigsStripeUpdateBody;\n response: PaymentsProviderConfigsStripeUpdateResponse;\n responseData: PaymentsProviderConfigsStripeUpdateResponseData;\n },\n },\n \"payments_provider_configs_stripe_delete\": {\n method: \"DELETE\",\n path: \"/payments/provider-configs/admin/stripe/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"payments\"],\n summary: \"Delete Stripe provider config\",\n description: \"Deletes one Stripe provider config row by id.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: PaymentsProviderConfigsStripeDeleteParams;\n query: PaymentsProviderConfigsStripeDeleteQuery;\n body: PaymentsProviderConfigsStripeDeleteBody;\n response: PaymentsProviderConfigsStripeDeleteResponse;\n responseData: PaymentsProviderConfigsStripeDeleteResponseData;\n },\n },\n \"payments_provider_configs_paypal_list\": {\n method: \"GET\",\n path: \"/payments/provider-configs/admin/paypal\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_view\"},\n meta: {\n tags: [\"payments\"],\n summary: \"List PayPal provider configs\",\n description: \"Returns PayPal fee/config rows filtered by optional region, transaction type, currency, activity state, and date.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: PaymentsProviderConfigsPaypalListParams;\n query: PaymentsProviderConfigsPaypalListQuery;\n body: PaymentsProviderConfigsPaypalListBody;\n response: PaymentsProviderConfigsPaypalListResponse;\n responseData: PaymentsProviderConfigsPaypalListResponseData;\n },\n },\n \"payments_provider_configs_paypal_get\": {\n method: \"GET\",\n path: \"/payments/provider-configs/admin/paypal/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_view\"},\n meta: {\n tags: [\"payments\"],\n summary: \"Get PayPal provider config by id\",\n description: \"Returns one PayPal provider config row by its numeric id.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: PaymentsProviderConfigsPaypalGetParams;\n query: PaymentsProviderConfigsPaypalGetQuery;\n body: PaymentsProviderConfigsPaypalGetBody;\n response: PaymentsProviderConfigsPaypalGetResponse;\n responseData: PaymentsProviderConfigsPaypalGetResponseData;\n },\n },\n \"payments_provider_configs_paypal_create\": {\n method: \"POST\",\n path: \"/payments/provider-configs/admin/paypal\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"payments\"],\n summary: \"Create PayPal provider config\",\n description: \"Creates a new PayPal provider config row with volume/period and fee settings.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: PaymentsProviderConfigsPaypalCreateParams;\n query: PaymentsProviderConfigsPaypalCreateQuery;\n body: PaymentsProviderConfigsPaypalCreateBody;\n response: PaymentsProviderConfigsPaypalCreateResponse;\n responseData: PaymentsProviderConfigsPaypalCreateResponseData;\n },\n },\n \"payments_provider_configs_paypal_update\": {\n method: \"PUT\",\n path: \"/payments/provider-configs/admin/paypal/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"payments\"],\n summary: \"Update PayPal provider config\",\n description: \"Updates one existing PayPal provider config row by id.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: PaymentsProviderConfigsPaypalUpdateParams;\n query: PaymentsProviderConfigsPaypalUpdateQuery;\n body: PaymentsProviderConfigsPaypalUpdateBody;\n response: PaymentsProviderConfigsPaypalUpdateResponse;\n responseData: PaymentsProviderConfigsPaypalUpdateResponseData;\n },\n },\n \"payments_provider_configs_paypal_delete\": {\n method: \"DELETE\",\n path: \"/payments/provider-configs/admin/paypal/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"payments\"],\n summary: \"Delete PayPal provider config\",\n description: \"Deletes one PayPal provider config row by id.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: PaymentsProviderConfigsPaypalDeleteParams;\n query: PaymentsProviderConfigsPaypalDeleteQuery;\n body: PaymentsProviderConfigsPaypalDeleteBody;\n response: PaymentsProviderConfigsPaypalDeleteResponse;\n responseData: PaymentsProviderConfigsPaypalDeleteResponseData;\n },\n },\n \"payments_invoice\": {\n method: \"GET\",\n path: \"/payments/invoice/:paymentId/:token\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"payments\"],\n summary: \"View payment invoice PDF\",\n description: \"Streams the invoice PDF for one payment when the invoice token is valid.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: PaymentsInvoiceParams;\n query: PaymentsInvoiceQuery;\n body: PaymentsInvoiceBody;\n response: PaymentsInvoiceResponse;\n responseData: PaymentsInvoiceResponseData;\n },\n },\n \"payments_provider_infos\": {\n method: \"GET\",\n path: \"/payments/providerInfos/:paymentId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"payments\"],\n summary: \"Get provider payment details\",\n description: \"Returns normalized provider-side payment/order details for one payment (Stripe or PayPal).\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: PaymentsProviderInfosParams;\n query: PaymentsProviderInfosQuery;\n body: PaymentsProviderInfosBody;\n response: PaymentsProviderInfosResponse;\n responseData: PaymentsProviderInfosResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nexport type PaypalMarkOrderAsDeliveredParams = {\n orderId: string;\n};\nexport type PaypalMarkOrderAsDeliveredQuery = {\n\n};\nexport type PaypalMarkOrderAsDeliveredBody = undefined;\nexport type PaypalMarkOrderAsDeliveredResponseData = null;\nexport type PaypalMarkOrderAsDeliveredResponse = import(\"../types\").ApiEnvelope<PaypalMarkOrderAsDeliveredResponseData>;\n\nexport type PaypalCreateCheckoutSessionParams = undefined;\nexport type PaypalCreateCheckoutSessionQuery = {\n\n};\nexport type PaypalCreateCheckoutSessionBody = {\n items: Array<{\n productItemId: number;\n variantId: number;\n quantity: number;\n preferredShippingProviderId?: number;\n}>;\n successUrl: string;\n originUrl: string;\n shippingCountry?: string;\n};\nexport type PaypalCreateCheckoutSessionResponseData = {\n orderId: string;\n approvalUrl: string;\n};\nexport type PaypalCreateCheckoutSessionResponse = import(\"../types\").ApiEnvelope<PaypalCreateCheckoutSessionResponseData>;\n\nexport type PaypalWebhookParams = undefined;\nexport type PaypalWebhookQuery = {\n\n};\nexport type PaypalWebhookBody = Record<string, any>;\nexport type PaypalWebhookResponseData = null;\nexport type PaypalWebhookResponse = import(\"../types\").ApiEnvelope<PaypalWebhookResponseData>;\n\nexport const apiRoutes_paypal = {\n \"paypal_mark_order_as_delivered\": {\n method: \"POST\",\n path: \"/paypal/mark-order-as-delivered/:orderId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"paypal\"],\n summary: \"Mark PayPal order as delivered\",\n description: \"Marks a completed digital PayPal order as delivered in PayPal tracking.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: PaypalMarkOrderAsDeliveredParams;\n query: PaypalMarkOrderAsDeliveredQuery;\n body: PaypalMarkOrderAsDeliveredBody;\n response: PaypalMarkOrderAsDeliveredResponse;\n responseData: PaypalMarkOrderAsDeliveredResponseData;\n },\n },\n \"paypal_create_checkout_session\": {\n method: \"POST\",\n path: \"/paypal/create-checkout-session\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"paypal\"],\n summary: \"Create PayPal checkout session\",\n description: \"Creates a PayPal order for one-time checkout and returns approval URL for customer redirect.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: PaypalCreateCheckoutSessionParams;\n query: PaypalCreateCheckoutSessionQuery;\n body: PaypalCreateCheckoutSessionBody;\n response: PaypalCreateCheckoutSessionResponse;\n responseData: PaypalCreateCheckoutSessionResponseData;\n },\n },\n \"paypal_webhook\": {\n method: \"POST\",\n path: \"/paypal/webhook\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"paypal\"],\n summary: \"Handle PayPal webhook\",\n description: \"Receives PayPal webhook payloads and dispatches internal webhook handlers.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: PaypalWebhookParams;\n query: PaypalWebhookQuery;\n body: PaypalWebhookBody;\n response: PaypalWebhookResponse;\n responseData: PaypalWebhookResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Permission, RolePermission } from \"../../frontend-types\";\n\nexport type PermissionsCreateParams = undefined;\nexport type PermissionsCreateQuery = undefined;\nexport type PermissionsCreateBody = {\n name: string;\n description: string;\n};\nexport type PermissionsCreateResponseData = Permission;\nexport type PermissionsCreateResponse = import(\"../types\").ApiEnvelope<PermissionsCreateResponseData>;\n\nexport type PermissionsSyncParams = undefined;\nexport type PermissionsSyncQuery = {\n\n};\nexport type PermissionsSyncBody = undefined;\nexport type PermissionsSyncResponseData = { created: Permission[]; existing: Permission[]; total: number };\nexport type PermissionsSyncResponse = import(\"../types\").ApiEnvelope<PermissionsSyncResponseData>;\n\nexport type PermissionsListParams = undefined;\nexport type PermissionsListQuery = {\n\n};\nexport type PermissionsListBody = undefined;\nexport type PermissionsListResponseData = Permission[];\nexport type PermissionsListResponse = import(\"../types\").ApiEnvelope<PermissionsListResponseData>;\n\nexport type PermissionsAssignToRoleParams = {\n roleId: number;\n permissionId: number;\n};\nexport type PermissionsAssignToRoleQuery = undefined;\nexport type PermissionsAssignToRoleBody = undefined;\nexport type PermissionsAssignToRoleResponseData = null;\nexport type PermissionsAssignToRoleResponse = import(\"../types\").ApiEnvelope<PermissionsAssignToRoleResponseData>;\n\nexport type PermissionsUnassignFromRoleParams = {\n roleId: number;\n permissionId: number;\n};\nexport type PermissionsUnassignFromRoleQuery = undefined;\nexport type PermissionsUnassignFromRoleBody = undefined;\nexport type PermissionsUnassignFromRoleResponseData = null;\nexport type PermissionsUnassignFromRoleResponse = import(\"../types\").ApiEnvelope<PermissionsUnassignFromRoleResponseData>;\n\nexport type PermissionsAssignmentsListParams = undefined;\nexport type PermissionsAssignmentsListQuery = {\n\n};\nexport type PermissionsAssignmentsListBody = undefined;\nexport type PermissionsAssignmentsListResponseData = RolePermission[];\nexport type PermissionsAssignmentsListResponse = import(\"../types\").ApiEnvelope<PermissionsAssignmentsListResponseData>;\n\nexport const apiRoutes_permissions = {\n \"permissions_create\": {\n method: \"POST\",\n path: \"/permissions/create\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"permissions_manage\"},\n meta: {\n tags: [\"permissions\"],\n summary: \"Create permission\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: PermissionsCreateParams;\n query: PermissionsCreateQuery;\n body: PermissionsCreateBody;\n response: PermissionsCreateResponse;\n responseData: PermissionsCreateResponseData;\n },\n },\n \"permissions_sync\": {\n method: \"POST\",\n path: \"/permissions/sync\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"permissions_manage\"},\n meta: {\n tags: [\"permissions\"],\n summary: \"Sync default permissions\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: PermissionsSyncParams;\n query: PermissionsSyncQuery;\n body: PermissionsSyncBody;\n response: PermissionsSyncResponse;\n responseData: PermissionsSyncResponseData;\n },\n },\n \"permissions_list\": {\n method: \"GET\",\n path: \"/permissions/getAll\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"permissions_manage\"},\n meta: {\n tags: [\"permissions\"],\n summary: \"List permissions\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: PermissionsListParams;\n query: PermissionsListQuery;\n body: PermissionsListBody;\n response: PermissionsListResponse;\n responseData: PermissionsListResponseData;\n },\n },\n \"permissions_assign_to_role\": {\n method: \"POST\",\n path: \"/permissions/assign/:roleId/:permissionId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"permissions_manage\"},\n meta: {\n tags: [\"permissions\"],\n summary: \"Assign permission to role\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: PermissionsAssignToRoleParams;\n query: PermissionsAssignToRoleQuery;\n body: PermissionsAssignToRoleBody;\n response: PermissionsAssignToRoleResponse;\n responseData: PermissionsAssignToRoleResponseData;\n },\n },\n \"permissions_unassign_from_role\": {\n method: \"DELETE\",\n path: \"/permissions/unassign/:roleId/:permissionId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"permissions_manage\"},\n meta: {\n tags: [\"permissions\"],\n summary: \"Unassign permission from role\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: PermissionsUnassignFromRoleParams;\n query: PermissionsUnassignFromRoleQuery;\n body: PermissionsUnassignFromRoleBody;\n response: PermissionsUnassignFromRoleResponse;\n responseData: PermissionsUnassignFromRoleResponseData;\n },\n },\n \"permissions_assignments_list\": {\n method: \"GET\",\n path: \"/permissions/getAssignments\",\n auth: {\"type\":\"composite_and\",\"items\":[{\"type\":\"frontend_permission_http\",\"permission\":\"permissions_manage\"},{\"type\":\"frontend_permission_http\",\"permission\":\"permissions_history_view\"}]},\n meta: {\n tags: [\"permissions\"],\n summary: \"List role-permission assignments\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: PermissionsAssignmentsListParams;\n query: PermissionsAssignmentsListQuery;\n body: PermissionsAssignmentsListBody;\n response: PermissionsAssignmentsListResponse;\n responseData: PermissionsAssignmentsListResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { FullAttributeTranslated, ProductCategory, ProductCategoryTranslated } from \"../../frontend-types\";\n\nexport type ProductCategoriesCreateParams = undefined;\nexport type ProductCategoriesCreateQuery = undefined;\nexport type ProductCategoriesCreateBody = {\n name: string;\n};\nexport type ProductCategoriesCreateResponseData = ProductCategory;\nexport type ProductCategoriesCreateResponse = import(\"../types\").ApiEnvelope<ProductCategoriesCreateResponseData>;\n\nexport type ProductCategoriesUpdateParams = {\n id: number;\n};\nexport type ProductCategoriesUpdateQuery = undefined;\nexport type ProductCategoriesUpdateBody = {\n name?: string;\n parentId?: number | null;\n};\nexport type ProductCategoriesUpdateResponseData = ProductCategory;\nexport type ProductCategoriesUpdateResponse = import(\"../types\").ApiEnvelope<ProductCategoriesUpdateResponseData>;\n\nexport type ProductCategoriesListParams = undefined;\nexport type ProductCategoriesListQuery = {\n\n};\nexport type ProductCategoriesListBody = undefined;\nexport type ProductCategoriesListResponseData = ProductCategory[];\nexport type ProductCategoriesListResponse = import(\"../types\").ApiEnvelope<ProductCategoriesListResponseData>;\n\nexport type ProductCategoriesListTranslatedParams = undefined;\nexport type ProductCategoriesListTranslatedQuery = {\n\n};\nexport type ProductCategoriesListTranslatedBody = undefined;\nexport type ProductCategoriesListTranslatedResponseData = ProductCategoryTranslated[];\nexport type ProductCategoriesListTranslatedResponse = import(\"../types\").ApiEnvelope<ProductCategoriesListTranslatedResponseData>;\n\nexport type ProductCategoriesListDataParams = undefined;\nexport type ProductCategoriesListDataQuery = {\n\n};\nexport type ProductCategoriesListDataBody = undefined;\nexport type ProductCategoriesListDataResponseData = { categories: ProductCategoryTranslated[]; attributes: FullAttributeTranslated[] };\nexport type ProductCategoriesListDataResponse = import(\"../types\").ApiEnvelope<ProductCategoriesListDataResponseData>;\n\nexport type ProductCategoriesGetByIdParams = {\n id: number;\n};\nexport type ProductCategoriesGetByIdQuery = {\n\n};\nexport type ProductCategoriesGetByIdBody = undefined;\nexport type ProductCategoriesGetByIdResponseData = ProductCategory | null;\nexport type ProductCategoriesGetByIdResponse = import(\"../types\").ApiEnvelope<ProductCategoriesGetByIdResponseData>;\n\nexport type ProductCategoriesGetByIdTranslatedParams = {\n id: number;\n};\nexport type ProductCategoriesGetByIdTranslatedQuery = {\n\n};\nexport type ProductCategoriesGetByIdTranslatedBody = undefined;\nexport type ProductCategoriesGetByIdTranslatedResponseData = ProductCategoryTranslated;\nexport type ProductCategoriesGetByIdTranslatedResponse = import(\"../types\").ApiEnvelope<ProductCategoriesGetByIdTranslatedResponseData>;\n\nexport type ProductCategoriesDeleteParams = {\n id: number;\n};\nexport type ProductCategoriesDeleteQuery = undefined;\nexport type ProductCategoriesDeleteBody = undefined;\nexport type ProductCategoriesDeleteResponseData = null;\nexport type ProductCategoriesDeleteResponse = ProductCategoriesDeleteResponseData;\n\nexport type ProductCategoriesAssignProductParams = {\n productId: number;\n categoryId: number;\n};\nexport type ProductCategoriesAssignProductQuery = undefined;\nexport type ProductCategoriesAssignProductBody = undefined;\nexport type ProductCategoriesAssignProductResponseData = null;\nexport type ProductCategoriesAssignProductResponse = ProductCategoriesAssignProductResponseData;\n\nexport type ProductCategoriesRemoveProductParams = {\n productId: number;\n categoryId: number;\n};\nexport type ProductCategoriesRemoveProductQuery = undefined;\nexport type ProductCategoriesRemoveProductBody = undefined;\nexport type ProductCategoriesRemoveProductResponseData = null;\nexport type ProductCategoriesRemoveProductResponse = ProductCategoriesRemoveProductResponseData;\n\nexport const apiRoutes_product_categories = {\n \"product_categories_create\": {\n method: \"POST\",\n path: \"/product-categories/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-categories\"],\n summary: \"Create product category\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ProductCategoriesCreateParams;\n query: ProductCategoriesCreateQuery;\n body: ProductCategoriesCreateBody;\n response: ProductCategoriesCreateResponse;\n responseData: ProductCategoriesCreateResponseData;\n },\n },\n \"product_categories_update\": {\n method: \"PUT\",\n path: \"/product-categories/update/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-categories\"],\n summary: \"Update product category\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ProductCategoriesUpdateParams;\n query: ProductCategoriesUpdateQuery;\n body: ProductCategoriesUpdateBody;\n response: ProductCategoriesUpdateResponse;\n responseData: ProductCategoriesUpdateResponseData;\n },\n },\n \"product_categories_list\": {\n method: \"GET\",\n path: \"/product-categories/getAll\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-categories\"],\n summary: \"List product categories\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductCategoriesListParams;\n query: ProductCategoriesListQuery;\n body: ProductCategoriesListBody;\n response: ProductCategoriesListResponse;\n responseData: ProductCategoriesListResponseData;\n },\n },\n \"product_categories_list_translated\": {\n method: \"GET\",\n path: \"/product-categories/getAll/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-categories\"],\n summary: \"List translated product categories\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductCategoriesListTranslatedParams;\n query: ProductCategoriesListTranslatedQuery;\n body: ProductCategoriesListTranslatedBody;\n response: ProductCategoriesListTranslatedResponse;\n responseData: ProductCategoriesListTranslatedResponseData;\n },\n },\n \"product_categories_list_data\": {\n method: \"GET\",\n path: \"/product-categories/getAll/data\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-categories\"],\n summary: \"List category data with translated attributes\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductCategoriesListDataParams;\n query: ProductCategoriesListDataQuery;\n body: ProductCategoriesListDataBody;\n response: ProductCategoriesListDataResponse;\n responseData: ProductCategoriesListDataResponseData;\n },\n },\n \"product_categories_get_by_id\": {\n method: \"GET\",\n path: \"/product-categories/getById/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-categories\"],\n summary: \"Get product category by id\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductCategoriesGetByIdParams;\n query: ProductCategoriesGetByIdQuery;\n body: ProductCategoriesGetByIdBody;\n response: ProductCategoriesGetByIdResponse;\n responseData: ProductCategoriesGetByIdResponseData;\n },\n },\n \"product_categories_get_by_id_translated\": {\n method: \"GET\",\n path: \"/product-categories/getById/:id/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-categories\"],\n summary: \"Get translated product category by id\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductCategoriesGetByIdTranslatedParams;\n query: ProductCategoriesGetByIdTranslatedQuery;\n body: ProductCategoriesGetByIdTranslatedBody;\n response: ProductCategoriesGetByIdTranslatedResponse;\n responseData: ProductCategoriesGetByIdTranslatedResponseData;\n },\n },\n \"product_categories_delete\": {\n method: \"DELETE\",\n path: \"/product-categories/delete/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-categories\"],\n summary: \"Delete product category\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ProductCategoriesDeleteParams;\n query: ProductCategoriesDeleteQuery;\n body: ProductCategoriesDeleteBody;\n response: ProductCategoriesDeleteResponse;\n responseData: ProductCategoriesDeleteResponseData;\n },\n },\n \"product_categories_assign_product\": {\n method: \"POST\",\n path: \"/product-categories/assign/:productId/:categoryId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-categories\"],\n summary: \"Assign product to category\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ProductCategoriesAssignProductParams;\n query: ProductCategoriesAssignProductQuery;\n body: ProductCategoriesAssignProductBody;\n response: ProductCategoriesAssignProductResponse;\n responseData: ProductCategoriesAssignProductResponseData;\n },\n },\n \"product_categories_remove_product\": {\n method: \"POST\",\n path: \"/product-categories/remove/:productId/:categoryId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-categories\"],\n summary: \"Remove product from category\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ProductCategoriesRemoveProductParams;\n query: ProductCategoriesRemoveProductQuery;\n body: ProductCategoriesRemoveProductBody;\n response: ProductCategoriesRemoveProductResponse;\n responseData: ProductCategoriesRemoveProductResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { FullProductItem, FullProductItemTranslated, PaginatedResult, ProductItem } from \"../../frontend-types\";\n\nexport type ProductItemsCreateParams = {\n productId: number;\n};\nexport type ProductItemsCreateQuery = undefined;\nexport type ProductItemsCreateBody = {\n name: string;\n price: number;\n salePrice?: number;\n};\nexport type ProductItemsCreateResponseData = ProductItem;\nexport type ProductItemsCreateResponse = import(\"../types\").ApiEnvelope<ProductItemsCreateResponseData>;\n\nexport type ProductItemsGetFullItemParams = {\n productItemId: number;\n};\nexport type ProductItemsGetFullItemQuery = {\n\n};\nexport type ProductItemsGetFullItemBody = undefined;\nexport type ProductItemsGetFullItemResponseData = FullProductItemTranslated;\nexport type ProductItemsGetFullItemResponse = import(\"../types\").ApiEnvelope<ProductItemsGetFullItemResponseData>;\n\nexport type ProductItemsDeleteParams = {\n productItemId: number;\n};\nexport type ProductItemsDeleteQuery = undefined;\nexport type ProductItemsDeleteBody = undefined;\nexport type ProductItemsDeleteResponseData = null;\nexport type ProductItemsDeleteResponse = import(\"../types\").ApiEnvelope<ProductItemsDeleteResponseData>;\n\nexport type ProductItemsUpdateParams = {\n productItemId: number;\n};\nexport type ProductItemsUpdateQuery = undefined;\nexport type ProductItemsUpdateBody = {\n price?: number;\n salePrice?: number;\n status?: \"draft\" | \"published\" | \"mark_deleted\" | \"deleted\" | \"mark_archived\" | \"archived\";\n isSale?: boolean;\n};\nexport type ProductItemsUpdateResponseData = ProductItem;\nexport type ProductItemsUpdateResponse = import(\"../types\").ApiEnvelope<ProductItemsUpdateResponseData>;\n\nexport type ProductItemsGetTicketItemsParams = undefined;\nexport type ProductItemsGetTicketItemsQuery = {\n\n};\nexport type ProductItemsGetTicketItemsBody = undefined;\nexport type ProductItemsGetTicketItemsResponseData = FullProductItemTranslated[];\nexport type ProductItemsGetTicketItemsResponse = import(\"../types\").ApiEnvelope<ProductItemsGetTicketItemsResponseData>;\n\nexport type ProductItemsAdminSearchParams = undefined;\nexport type ProductItemsAdminSearchQuery = {\n search?: string;\n page?: number;\n pageSize?: number;\n ticket?: boolean;\n};\nexport type ProductItemsAdminSearchBody = undefined;\nexport type ProductItemsAdminSearchResponseData = PaginatedResult<FullProductItem>;\nexport type ProductItemsAdminSearchResponse = import(\"../types\").ApiEnvelope<ProductItemsAdminSearchResponseData>;\n\nexport type ProductItemsAdminSearchTranslatedParams = undefined;\nexport type ProductItemsAdminSearchTranslatedQuery = {\n search?: string;\n page?: number;\n pageSize?: number;\n ticket?: boolean;\n};\nexport type ProductItemsAdminSearchTranslatedBody = undefined;\nexport type ProductItemsAdminSearchTranslatedResponseData = PaginatedResult<FullProductItemTranslated>;\nexport type ProductItemsAdminSearchTranslatedResponse = import(\"../types\").ApiEnvelope<ProductItemsAdminSearchTranslatedResponseData>;\n\nexport const apiRoutes_product_items = {\n \"product_items_create\": {\n method: \"POST\",\n path: \"/product-items/create/:productId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-items\"],\n summary: \"Create product item\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ProductItemsCreateParams;\n query: ProductItemsCreateQuery;\n body: ProductItemsCreateBody;\n response: ProductItemsCreateResponse;\n responseData: ProductItemsCreateResponseData;\n },\n },\n \"product_items_get_full_item\": {\n method: \"GET\",\n path: \"/product-items/getFullItem/:productItemId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-items\"],\n summary: \"Get full translated product item\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductItemsGetFullItemParams;\n query: ProductItemsGetFullItemQuery;\n body: ProductItemsGetFullItemBody;\n response: ProductItemsGetFullItemResponse;\n responseData: ProductItemsGetFullItemResponseData;\n },\n },\n \"product_items_delete\": {\n method: \"DELETE\",\n path: \"/product-items/delete/:productItemId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-items\"],\n summary: \"Delete product item\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ProductItemsDeleteParams;\n query: ProductItemsDeleteQuery;\n body: ProductItemsDeleteBody;\n response: ProductItemsDeleteResponse;\n responseData: ProductItemsDeleteResponseData;\n },\n },\n \"product_items_update\": {\n method: \"PUT\",\n path: \"/product-items/update/:productItemId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-items\"],\n summary: \"Update product item\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ProductItemsUpdateParams;\n query: ProductItemsUpdateQuery;\n body: ProductItemsUpdateBody;\n response: ProductItemsUpdateResponse;\n responseData: ProductItemsUpdateResponseData;\n },\n },\n \"product_items_get_ticket_items\": {\n method: \"GET\",\n path: \"/product-items/getTicketProductItems\",\n auth: {\"type\":\"cron_bearer_https\"},\n meta: {\n tags: [\"product-items\"],\n summary: \"List ticket product items\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductItemsGetTicketItemsParams;\n query: ProductItemsGetTicketItemsQuery;\n body: ProductItemsGetTicketItemsBody;\n response: ProductItemsGetTicketItemsResponse;\n responseData: ProductItemsGetTicketItemsResponseData;\n },\n },\n \"product_items_admin_search\": {\n method: \"GET\",\n path: \"/product-items/admin-search\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-items\"],\n summary: \"Admin search product items\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductItemsAdminSearchParams;\n query: ProductItemsAdminSearchQuery;\n body: ProductItemsAdminSearchBody;\n response: ProductItemsAdminSearchResponse;\n responseData: ProductItemsAdminSearchResponseData;\n },\n },\n \"product_items_admin_search_translated\": {\n method: \"GET\",\n path: \"/product-items/admin-search/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"product-items\"],\n summary: \"Admin search translated product items\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductItemsAdminSearchTranslatedParams;\n query: ProductItemsAdminSearchTranslatedQuery;\n body: ProductItemsAdminSearchTranslatedBody;\n response: ProductItemsAdminSearchTranslatedResponse;\n responseData: ProductItemsAdminSearchTranslatedResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { FullProduct, FullProductTranslated, FullVariantTranslated, PaginatedResult, Product } from \"../../frontend-types\";\n\nexport type ProductsCreateParams = undefined;\nexport type ProductsCreateQuery = undefined;\nexport type ProductsCreateBody = {\n name: string;\n description?: string;\n};\nexport type ProductsCreateResponseData = Product;\nexport type ProductsCreateResponse = import(\"../types\").ApiEnvelope<ProductsCreateResponseData>;\n\nexport type ProductsDeleteParams = {\n productId: number;\n};\nexport type ProductsDeleteQuery = undefined;\nexport type ProductsDeleteBody = undefined;\nexport type ProductsDeleteResponseData = null;\nexport type ProductsDeleteResponse = ProductsDeleteResponseData;\n\nexport type ProductsUpdateParams = {\n productId: number;\n};\nexport type ProductsUpdateQuery = undefined;\nexport type ProductsUpdateBody = {\n brandId?: number | null;\n status?: \"draft\" | \"published\" | \"mark_deleted\" | \"deleted\" | \"mark_archived\" | \"archived\";\n};\nexport type ProductsUpdateResponseData = Product;\nexport type ProductsUpdateResponse = import(\"../types\").ApiEnvelope<ProductsUpdateResponseData>;\n\nexport type ProductsListParams = undefined;\nexport type ProductsListQuery = {\n\n};\nexport type ProductsListBody = undefined;\nexport type ProductsListResponseData = Product[];\nexport type ProductsListResponse = import(\"../types\").ApiEnvelope<ProductsListResponseData>;\n\nexport type ProductsGetByIdParams = {\n productId: number;\n};\nexport type ProductsGetByIdQuery = undefined;\nexport type ProductsGetByIdBody = undefined;\nexport type ProductsGetByIdResponseData = Product | null;\nexport type ProductsGetByIdResponse = import(\"../types\").ApiEnvelope<ProductsGetByIdResponseData>;\n\nexport type ProductsGetFullByIdParams = {\n productId: number;\n};\nexport type ProductsGetFullByIdQuery = undefined;\nexport type ProductsGetFullByIdBody = undefined;\nexport type ProductsGetFullByIdResponseData = FullProduct | null;\nexport type ProductsGetFullByIdResponse = import(\"../types\").ApiEnvelope<ProductsGetFullByIdResponseData>;\n\nexport type ProductsGetFullByIdTranslatedParams = {\n productId: number;\n};\nexport type ProductsGetFullByIdTranslatedQuery = undefined;\nexport type ProductsGetFullByIdTranslatedBody = undefined;\nexport type ProductsGetFullByIdTranslatedResponseData = FullProductTranslated | null;\nexport type ProductsGetFullByIdTranslatedResponse = import(\"../types\").ApiEnvelope<ProductsGetFullByIdTranslatedResponseData>;\n\nexport type ProductsListFullParams = undefined;\nexport type ProductsListFullQuery = {\n\n};\nexport type ProductsListFullBody = undefined;\nexport type ProductsListFullResponseData = FullProduct[];\nexport type ProductsListFullResponse = import(\"../types\").ApiEnvelope<ProductsListFullResponseData>;\n\nexport type ProductsListFullTranslatedParams = undefined;\nexport type ProductsListFullTranslatedQuery = {\n\n};\nexport type ProductsListFullTranslatedBody = undefined;\nexport type ProductsListFullTranslatedResponseData = FullProductTranslated[];\nexport type ProductsListFullTranslatedResponse = import(\"../types\").ApiEnvelope<ProductsListFullTranslatedResponseData>;\n\nexport type ProductsSearchParams = undefined;\nexport type ProductsSearchQuery = {\n page?: number;\n query?: string;\n sortBy?: \"name\" | \"price_asc\" | \"price_desc\" | \"newest\";\n categories?: string | Array<string>;\n attributeFilters?: string;\n};\nexport type ProductsSearchBody = undefined;\nexport type ProductsSearchResponseData = { items: Array<FullVariantTranslated & { productId: number; itemId: number; productName: string; itemName: string; categories: Array<{ id: number; name: string }> }>; page: number; pageSize: number; total: number; totalPages: number; filters: { categories: Array<{ id: number; name: string; productCount: number }>; attributes: Array<{ attributeId: number; code: string; name: string; groupLabel: string | null; options: Array<{ id: number; name: string; count: number; featureValue: string | null }> }> } };\nexport type ProductsSearchResponse = import(\"../types\").ApiEnvelope<ProductsSearchResponseData>;\n\nexport type ProductsPublicSearchParams = undefined;\nexport type ProductsPublicSearchQuery = {\n page?: number;\n query?: string;\n sortBy?: \"name\" | \"price_asc\" | \"price_desc\" | \"newest\";\n categories?: string | Array<string>;\n attributeFilters?: string;\n};\nexport type ProductsPublicSearchBody = undefined;\nexport type ProductsPublicSearchResponseData = { items: Array<FullVariantTranslated & { productId: number; itemId: number; productName: string; itemName: string; categories: Array<{ id: number; name: string }> }>; page: number; pageSize: number; total: number; totalPages: number; filters: { categories: Array<{ id: number; name: string; productCount: number }>; attributes: Array<{ attributeId: number; code: string; name: string; groupLabel: string | null; options: Array<{ id: number; name: string; count: number; featureValue: string | null }> }> } };\nexport type ProductsPublicSearchResponse = import(\"../types\").ApiEnvelope<ProductsPublicSearchResponseData>;\n\nexport type ProductsAdminSearchParams = undefined;\nexport type ProductsAdminSearchQuery = {\n search?: string;\n page?: number;\n pageSize?: number;\n};\nexport type ProductsAdminSearchBody = undefined;\nexport type ProductsAdminSearchResponseData = PaginatedResult<FullProduct>;\nexport type ProductsAdminSearchResponse = import(\"../types\").ApiEnvelope<ProductsAdminSearchResponseData>;\n\nexport type ProductsAdminSearchTranslatedParams = undefined;\nexport type ProductsAdminSearchTranslatedQuery = {\n search?: string;\n page?: number;\n pageSize?: number;\n};\nexport type ProductsAdminSearchTranslatedBody = undefined;\nexport type ProductsAdminSearchTranslatedResponseData = PaginatedResult<FullProductTranslated>;\nexport type ProductsAdminSearchTranslatedResponse = import(\"../types\").ApiEnvelope<ProductsAdminSearchTranslatedResponseData>;\n\nexport const apiRoutes_products = {\n \"products_create\": {\n method: \"POST\",\n path: \"/products/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"products\"],\n summary: \"Create product\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ProductsCreateParams;\n query: ProductsCreateQuery;\n body: ProductsCreateBody;\n response: ProductsCreateResponse;\n responseData: ProductsCreateResponseData;\n },\n },\n \"products_delete\": {\n method: \"DELETE\",\n path: \"/products/delete/:productId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"products\"],\n summary: \"Delete product\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ProductsDeleteParams;\n query: ProductsDeleteQuery;\n body: ProductsDeleteBody;\n response: ProductsDeleteResponse;\n responseData: ProductsDeleteResponseData;\n },\n },\n \"products_update\": {\n method: \"PUT\",\n path: \"/products/update/:productId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"products\"],\n summary: \"Update product\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: ProductsUpdateParams;\n query: ProductsUpdateQuery;\n body: ProductsUpdateBody;\n response: ProductsUpdateResponse;\n responseData: ProductsUpdateResponseData;\n },\n },\n \"products_list\": {\n method: \"GET\",\n path: \"/products/getAll\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"products\"],\n summary: \"List products\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductsListParams;\n query: ProductsListQuery;\n body: ProductsListBody;\n response: ProductsListResponse;\n responseData: ProductsListResponseData;\n },\n },\n \"products_get_by_id\": {\n method: \"GET\",\n path: \"/products/getById/:productId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"products\"],\n summary: \"Get product by id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ProductsGetByIdParams;\n query: ProductsGetByIdQuery;\n body: ProductsGetByIdBody;\n response: ProductsGetByIdResponse;\n responseData: ProductsGetByIdResponseData;\n },\n },\n \"products_get_full_by_id\": {\n method: \"GET\",\n path: \"/products/getById/:productId/full\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"products\"],\n summary: \"Get full product by id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ProductsGetFullByIdParams;\n query: ProductsGetFullByIdQuery;\n body: ProductsGetFullByIdBody;\n response: ProductsGetFullByIdResponse;\n responseData: ProductsGetFullByIdResponseData;\n },\n },\n \"products_get_full_by_id_translated\": {\n method: \"GET\",\n path: \"/products/getById/:productId/full/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"products\"],\n summary: \"Get full translated product by id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: ProductsGetFullByIdTranslatedParams;\n query: ProductsGetFullByIdTranslatedQuery;\n body: ProductsGetFullByIdTranslatedBody;\n response: ProductsGetFullByIdTranslatedResponse;\n responseData: ProductsGetFullByIdTranslatedResponseData;\n },\n },\n \"products_list_full\": {\n method: \"GET\",\n path: \"/products/getAll/full\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"products\"],\n summary: \"List full products\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductsListFullParams;\n query: ProductsListFullQuery;\n body: ProductsListFullBody;\n response: ProductsListFullResponse;\n responseData: ProductsListFullResponseData;\n },\n },\n \"products_list_full_translated\": {\n method: \"GET\",\n path: \"/products/getAll/full/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"products\"],\n summary: \"List full translated products\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductsListFullTranslatedParams;\n query: ProductsListFullTranslatedQuery;\n body: ProductsListFullTranslatedBody;\n response: ProductsListFullTranslatedResponse;\n responseData: ProductsListFullTranslatedResponseData;\n },\n },\n \"products_search\": {\n method: \"GET\",\n path: \"/products/search\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"products\"],\n summary: \"Search products\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductsSearchParams;\n query: ProductsSearchQuery;\n body: ProductsSearchBody;\n response: ProductsSearchResponse;\n responseData: ProductsSearchResponseData;\n },\n },\n \"products_public_search\": {\n method: \"GET\",\n path: \"/products/public-search\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"products\"],\n summary: \"Search products (public, brand-scoped frontends without their own backend)\",\n description: \"Wie products_search, aber ohne Login: Auth ueber x-public-api-key statt JWT, Marke kommt serverseitig aus dem Key (nicht aus der Query). Fuer statische Frontends wie geilemukke.de.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductsPublicSearchParams;\n query: ProductsPublicSearchQuery;\n body: ProductsPublicSearchBody;\n response: ProductsPublicSearchResponse;\n responseData: ProductsPublicSearchResponseData;\n },\n },\n \"products_admin_search\": {\n method: \"GET\",\n path: \"/products/admin-search\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"products\"],\n summary: \"Admin search products\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductsAdminSearchParams;\n query: ProductsAdminSearchQuery;\n body: ProductsAdminSearchBody;\n response: ProductsAdminSearchResponse;\n responseData: ProductsAdminSearchResponseData;\n },\n },\n \"products_admin_search_translated\": {\n method: \"GET\",\n path: \"/products/admin-search/translated\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"products\"],\n summary: \"Admin search translated products\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: ProductsAdminSearchTranslatedParams;\n query: ProductsAdminSearchTranslatedQuery;\n body: ProductsAdminSearchTranslatedBody;\n response: ProductsAdminSearchTranslatedResponse;\n responseData: ProductsAdminSearchTranslatedResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Permission, Role, RoleAssignment, RolePermission } from \"../../frontend-types\";\n\nexport type RolesCreateParams = undefined;\nexport type RolesCreateQuery = undefined;\nexport type RolesCreateBody = {\n name: string;\n description: string;\n isSellable?: boolean;\n};\nexport type RolesCreateResponseData = null;\nexport type RolesCreateResponse = import(\"../types\").ApiEnvelope<RolesCreateResponseData>;\n\nexport type RolesDeleteParams = {\n roleId: number;\n};\nexport type RolesDeleteQuery = undefined;\nexport type RolesDeleteBody = undefined;\nexport type RolesDeleteResponseData = Role;\nexport type RolesDeleteResponse = import(\"../types\").ApiEnvelope<RolesDeleteResponseData>;\n\nexport type RolesUpdateParams = {\n roleId: number;\n};\nexport type RolesUpdateQuery = undefined;\nexport type RolesUpdateBody = {\n name: string;\n description: string;\n};\nexport type RolesUpdateResponseData = Role;\nexport type RolesUpdateResponse = import(\"../types\").ApiEnvelope<RolesUpdateResponseData>;\n\nexport type RolesGetByIdParams = {\n roleId: number;\n};\nexport type RolesGetByIdQuery = undefined;\nexport type RolesGetByIdBody = undefined;\nexport type RolesGetByIdResponseData = Role;\nexport type RolesGetByIdResponse = import(\"../types\").ApiEnvelope<RolesGetByIdResponseData>;\n\nexport type RolesListParams = undefined;\nexport type RolesListQuery = {\n\n};\nexport type RolesListBody = undefined;\nexport type RolesListResponseData = { roles: Role[]; roleAssignments: RoleAssignment[]; permissions: Permission[]; rolePermissions: RolePermission[]; canSeeHistory: boolean };\nexport type RolesListResponse = import(\"../types\").ApiEnvelope<RolesListResponseData>;\n\nexport type RoleAssignmentsCreateParams = {\n userId: number;\n roleId: number;\n};\nexport type RoleAssignmentsCreateQuery = undefined;\nexport type RoleAssignmentsCreateBody = {\n validFrom?: string;\n};\nexport type RoleAssignmentsCreateResponseData = RoleAssignment;\nexport type RoleAssignmentsCreateResponse = import(\"../types\").ApiEnvelope<RoleAssignmentsCreateResponseData>;\n\nexport type RoleAssignmentsRevokeParams = {\n userId: number;\n roleId: number;\n};\nexport type RoleAssignmentsRevokeQuery = undefined;\nexport type RoleAssignmentsRevokeBody = undefined;\nexport type RoleAssignmentsRevokeResponseData = null;\nexport type RoleAssignmentsRevokeResponse = import(\"../types\").ApiEnvelope<RoleAssignmentsRevokeResponseData>;\n\nexport type RoleAssignmentsListParams = undefined;\nexport type RoleAssignmentsListQuery = {\n\n};\nexport type RoleAssignmentsListBody = undefined;\nexport type RoleAssignmentsListResponseData = RoleAssignment[];\nexport type RoleAssignmentsListResponse = import(\"../types\").ApiEnvelope<RoleAssignmentsListResponseData>;\n\nexport type RoleAssignmentsGetUserAssignmentsParams = {\n userId: number;\n};\nexport type RoleAssignmentsGetUserAssignmentsQuery = undefined;\nexport type RoleAssignmentsGetUserAssignmentsBody = undefined;\nexport type RoleAssignmentsGetUserAssignmentsResponseData = RoleAssignment[];\nexport type RoleAssignmentsGetUserAssignmentsResponse = import(\"../types\").ApiEnvelope<RoleAssignmentsGetUserAssignmentsResponseData>;\n\nexport const apiRoutes_roles = {\n \"roles_create\": {\n method: \"POST\",\n path: \"/roles/create\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"roles_manage\"},\n meta: {\n tags: [\"roles\"],\n summary: \"Create role\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: RolesCreateParams;\n query: RolesCreateQuery;\n body: RolesCreateBody;\n response: RolesCreateResponse;\n responseData: RolesCreateResponseData;\n },\n },\n \"roles_delete\": {\n method: \"DELETE\",\n path: \"/roles/delete/:roleId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"roles_manage\"},\n meta: {\n tags: [\"roles\"],\n summary: \"Delete role\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: RolesDeleteParams;\n query: RolesDeleteQuery;\n body: RolesDeleteBody;\n response: RolesDeleteResponse;\n responseData: RolesDeleteResponseData;\n },\n },\n \"roles_update\": {\n method: \"PUT\",\n path: \"/roles/update/:roleId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"roles_manage\"},\n meta: {\n tags: [\"roles\"],\n summary: \"Update role\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: RolesUpdateParams;\n query: RolesUpdateQuery;\n body: RolesUpdateBody;\n response: RolesUpdateResponse;\n responseData: RolesUpdateResponseData;\n },\n },\n \"roles_get_by_id\": {\n method: \"GET\",\n path: \"/roles/getById/:roleId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"roles_manage\"},\n meta: {\n tags: [\"roles\"],\n summary: \"Get role by id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: RolesGetByIdParams;\n query: RolesGetByIdQuery;\n body: RolesGetByIdBody;\n response: RolesGetByIdResponse;\n responseData: RolesGetByIdResponseData;\n },\n },\n \"roles_list\": {\n method: \"GET\",\n path: \"/roles/getAll\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"roles_manage\"},\n meta: {\n tags: [\"roles\"],\n summary: \"Get role base data\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: RolesListParams;\n query: RolesListQuery;\n body: RolesListBody;\n response: RolesListResponse;\n responseData: RolesListResponseData;\n },\n },\n \"role_assignments_create\": {\n method: \"POST\",\n path: \"/role-assignments/create/:userId/:roleId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"roles_manage\"},\n meta: {\n tags: [\"roles\",\"role-assignments\"],\n summary: \"Assign role to user\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: RoleAssignmentsCreateParams;\n query: RoleAssignmentsCreateQuery;\n body: RoleAssignmentsCreateBody;\n response: RoleAssignmentsCreateResponse;\n responseData: RoleAssignmentsCreateResponseData;\n },\n },\n \"role_assignments_revoke\": {\n method: \"DELETE\",\n path: \"/role-assignments/delete/:userId/:roleId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"roles_manage\"},\n meta: {\n tags: [\"roles\",\"role-assignments\"],\n summary: \"Revoke role from user\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: RoleAssignmentsRevokeParams;\n query: RoleAssignmentsRevokeQuery;\n body: RoleAssignmentsRevokeBody;\n response: RoleAssignmentsRevokeResponse;\n responseData: RoleAssignmentsRevokeResponseData;\n },\n },\n \"role_assignments_list\": {\n method: \"GET\",\n path: \"/role-assignments/getAll\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"roles_history_view\"},\n meta: {\n tags: [\"roles\",\"role-assignments\"],\n summary: \"List all role assignments\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: RoleAssignmentsListParams;\n query: RoleAssignmentsListQuery;\n body: RoleAssignmentsListBody;\n response: RoleAssignmentsListResponse;\n responseData: RoleAssignmentsListResponseData;\n },\n },\n \"role_assignments_get_user_assignments\": {\n method: \"GET\",\n path: \"/role-assignments/getUserAssignments/:userId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"roles_manage\"},\n meta: {\n tags: [\"roles\",\"role-assignments\"],\n summary: \"List active role assignments for one user\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: RoleAssignmentsGetUserAssignmentsParams;\n query: RoleAssignmentsGetUserAssignmentsQuery;\n body: RoleAssignmentsGetUserAssignmentsBody;\n response: RoleAssignmentsGetUserAssignmentsResponse;\n responseData: RoleAssignmentsGetUserAssignmentsResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { SenderBrand } from \"../../frontend-types\";\n\nexport type SenderBrandsListParams = undefined;\nexport type SenderBrandsListQuery = {\n\n};\nexport type SenderBrandsListBody = undefined;\nexport type SenderBrandsListResponseData = SenderBrand[];\nexport type SenderBrandsListResponse = import(\"../types\").ApiEnvelope<SenderBrandsListResponseData>;\n\nexport type SenderBrandsGetByIdParams = {\n id: number;\n};\nexport type SenderBrandsGetByIdQuery = {\n\n};\nexport type SenderBrandsGetByIdBody = undefined;\nexport type SenderBrandsGetByIdResponseData = SenderBrand;\nexport type SenderBrandsGetByIdResponse = import(\"../types\").ApiEnvelope<SenderBrandsGetByIdResponseData>;\n\nexport type SenderBrandsCreateParams = undefined;\nexport type SenderBrandsCreateQuery = undefined;\nexport type SenderBrandsCreateBody = {\n slug: string;\n brandName: string;\n senderName?: string | null;\n senderEmail: string;\n supportEmail: string;\n websiteUrl: string;\n logoUrl?: string | null;\n accentColor?: string;\n legalName: string;\n manageSubscriptionsUrl?: string | null;\n isActive?: boolean;\n};\nexport type SenderBrandsCreateResponseData = SenderBrand;\nexport type SenderBrandsCreateResponse = import(\"../types\").ApiEnvelope<SenderBrandsCreateResponseData>;\n\nexport type SenderBrandsUpdateParams = {\n id: number;\n};\nexport type SenderBrandsUpdateQuery = undefined;\nexport type SenderBrandsUpdateBody = {\n slug?: string;\n brandName?: string;\n senderName?: string | null;\n senderEmail?: string;\n supportEmail?: string;\n websiteUrl?: string;\n logoUrl?: string | null;\n accentColor?: string;\n legalName?: string;\n manageSubscriptionsUrl?: string | null;\n isActive?: boolean;\n};\nexport type SenderBrandsUpdateResponseData = SenderBrand;\nexport type SenderBrandsUpdateResponse = import(\"../types\").ApiEnvelope<SenderBrandsUpdateResponseData>;\n\nexport type SenderBrandsDeleteParams = {\n id: number;\n};\nexport type SenderBrandsDeleteQuery = undefined;\nexport type SenderBrandsDeleteBody = undefined;\nexport type SenderBrandsDeleteResponseData = SenderBrand;\nexport type SenderBrandsDeleteResponse = import(\"../types\").ApiEnvelope<SenderBrandsDeleteResponseData>;\n\nexport type SenderBrandsSyncSendingCapabilityParams = undefined;\nexport type SenderBrandsSyncSendingCapabilityQuery = {\n\n};\nexport type SenderBrandsSyncSendingCapabilityBody = undefined;\nexport type SenderBrandsSyncSendingCapabilityResponseData = {\n checked: number;\n ampReachable: boolean;\n changed: Array<{\n slug: string;\n from: string;\n to: string;\n}>;\n};\nexport type SenderBrandsSyncSendingCapabilityResponse = import(\"../types\").ApiEnvelope<SenderBrandsSyncSendingCapabilityResponseData>;\n\nexport const apiRoutes_sender_brands = {\n \"sender_brands_list\": {\n method: \"GET\",\n path: \"/sender-brands/getAll\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"sender_brands_manage\"},\n meta: {\n tags: [\"sender-brands\"],\n summary: \"List sender brands\",\n description: \"Absender-Marken = unsere eigenen Haus-Marken als Mail-Identitaet. Getrennt von /brands (Katalog-Marken), weil eine Katalog-Marke auch eine Fremdmarke sein kann (Rohling-Hersteller) und die niemals Absender werden darf.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SenderBrandsListParams;\n query: SenderBrandsListQuery;\n body: SenderBrandsListBody;\n response: SenderBrandsListResponse;\n responseData: SenderBrandsListResponseData;\n },\n },\n \"sender_brands_get_by_id\": {\n method: \"GET\",\n path: \"/sender-brands/getById/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"sender_brands_manage\"},\n meta: {\n tags: [\"sender-brands\"],\n summary: \"Get sender brand by id\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SenderBrandsGetByIdParams;\n query: SenderBrandsGetByIdQuery;\n body: SenderBrandsGetByIdBody;\n response: SenderBrandsGetByIdResponse;\n responseData: SenderBrandsGetByIdResponseData;\n },\n },\n \"sender_brands_create\": {\n method: \"POST\",\n path: \"/sender-brands/create\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"sender_brands_manage\"},\n meta: {\n tags: [\"sender-brands\"],\n summary: \"Create sender brand\",\n description: \"sendingDomain wird aus senderEmail abgeleitet, sendingStatus startet auf \\\"unknown\\\". Bis AMP die Domain freigibt, versendet der Shop weiter ueber die Fallback-Adresse.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: SenderBrandsCreateParams;\n query: SenderBrandsCreateQuery;\n body: SenderBrandsCreateBody;\n response: SenderBrandsCreateResponse;\n responseData: SenderBrandsCreateResponseData;\n },\n },\n \"sender_brands_update\": {\n method: \"PUT\",\n path: \"/sender-brands/update/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"sender_brands_manage\"},\n meta: {\n tags: [\"sender-brands\"],\n summary: \"Update sender brand\",\n description: \"Aendert sich senderEmail, faellt sendingStatus zurueck auf \\\"unknown\\\" - eine alte Freigabe gilt nicht fuer eine neue Adresse.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: SenderBrandsUpdateParams;\n query: SenderBrandsUpdateQuery;\n body: SenderBrandsUpdateBody;\n response: SenderBrandsUpdateResponse;\n responseData: SenderBrandsUpdateResponseData;\n },\n },\n \"sender_brands_delete\": {\n method: \"DELETE\",\n path: \"/sender-brands/delete/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"sender_brands_manage\"},\n meta: {\n tags: [\"sender-brands\"],\n summary: \"Delete sender brand\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: SenderBrandsDeleteParams;\n query: SenderBrandsDeleteQuery;\n body: SenderBrandsDeleteBody;\n response: SenderBrandsDeleteResponse;\n responseData: SenderBrandsDeleteResponseData;\n },\n },\n \"sender_brands_sync_sending_capability\": {\n method: \"POST\",\n path: \"/sender-brands/sync-sending-capability\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"sender_brands_manage\"},\n meta: {\n tags: [\"sender-brands\"],\n summary: \"Re-check sending domains against AMP\",\n description: \"Fragt AMP (gf_domains.capabilities) ab, ob wir unter den hinterlegten Absender-Domains senden duerfen, und schreibt das Ergebnis an den Marken fest. Ist AMP nicht erreichbar, bleibt der letzte bekannte Stand stehen (ampReachable = false) - eine Stoerung darf keine Marke stillschweigend herabstufen.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SenderBrandsSyncSendingCapabilityParams;\n query: SenderBrandsSyncSendingCapabilityQuery;\n body: SenderBrandsSyncSendingCapabilityBody;\n response: SenderBrandsSyncSendingCapabilityResponse;\n responseData: SenderBrandsSyncSendingCapabilityResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { AppSettings } from \"../../frontend-types\";\n\nexport type SettingsListParams = undefined;\nexport type SettingsListQuery = {\n\n};\nexport type SettingsListBody = undefined;\nexport type SettingsListResponseData = { settings: AppSettings[]; canEdit: boolean };\nexport type SettingsListResponse = import(\"../types\").ApiEnvelope<SettingsListResponseData>;\n\nexport type SettingsUpdateParams = {\n settingId: number;\n key: \"main_variant_id\" | \"application_name\" | \"company_name\" | \"company_street\" | \"company_postal_code\" | \"company_city\" | \"company_country\" | \"company_tax_number\" | \"company_vat_id\" | \"company_email\" | \"company_iban\" | \"company_bic\" | \"zugferd_enable\" | \"zugferd_default_profile\";\n};\nexport type SettingsUpdateQuery = undefined;\nexport type SettingsUpdateBody = {\n value: string | number | boolean | Array<any> | Record<string, any> | null;\n};\nexport type SettingsUpdateResponseData = AppSettings;\nexport type SettingsUpdateResponse = import(\"../types\").ApiEnvelope<SettingsUpdateResponseData>;\n\nexport const apiRoutes_settings = {\n \"settings_list\": {\n method: \"GET\",\n path: \"/settings/getAll\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"settings\"],\n summary: \"List app settings\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SettingsListParams;\n query: SettingsListQuery;\n body: SettingsListBody;\n response: SettingsListResponse;\n responseData: SettingsListResponseData;\n },\n },\n \"settings_update\": {\n method: \"PUT\",\n path: \"/settings/update/:settingId/:key\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"settings_edit\"},\n meta: {\n tags: [\"settings\"],\n summary: \"Update one app setting\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: SettingsUpdateParams;\n query: SettingsUpdateQuery;\n body: SettingsUpdateBody;\n response: SettingsUpdateResponse;\n responseData: SettingsUpdateResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { ProductStatus, StatusChange } from \"../../frontend-types\";\n\nexport type StatusChangesScheduleParams = {\n table: \"products\" | \"product_items\" | \"product_item_variants\";\n recordId: number;\n};\nexport type StatusChangesScheduleQuery = {\n\n};\nexport type StatusChangesScheduleBody = {\n newStatus: \"draft\" | \"published\" | \"mark_archived\" | \"archived\" | \"mark_deleted\" | \"deleted\";\n scheduledAt?: string | null;\n};\nexport type StatusChangesScheduleResponseData = { status: ProductStatus; wasScheduled: boolean };\nexport type StatusChangesScheduleResponse = import(\"../types\").ApiEnvelope<StatusChangesScheduleResponseData>;\n\nexport type StatusChangesGetPendingParams = {\n table: \"products\" | \"product_items\" | \"product_item_variants\";\n recordId: number;\n};\nexport type StatusChangesGetPendingQuery = {\n\n};\nexport type StatusChangesGetPendingBody = undefined;\nexport type StatusChangesGetPendingResponseData = { change: StatusChange | null; canDelete: boolean };\nexport type StatusChangesGetPendingResponse = import(\"../types\").ApiEnvelope<StatusChangesGetPendingResponseData>;\n\nexport type StatusChangesGetHistoryParams = {\n table: \"products\" | \"product_items\" | \"product_item_variants\";\n recordId: number;\n};\nexport type StatusChangesGetHistoryQuery = {\n\n};\nexport type StatusChangesGetHistoryBody = undefined;\nexport type StatusChangesGetHistoryResponseData = StatusChange[];\nexport type StatusChangesGetHistoryResponse = import(\"../types\").ApiEnvelope<StatusChangesGetHistoryResponseData>;\n\nexport type StatusChangesCancelParams = {\n table: \"products\" | \"product_items\" | \"product_item_variants\";\n recordId: number;\n};\nexport type StatusChangesCancelQuery = {\n\n};\nexport type StatusChangesCancelBody = undefined;\nexport type StatusChangesCancelResponseData = null;\nexport type StatusChangesCancelResponse = import(\"../types\").ApiEnvelope<StatusChangesCancelResponseData>;\n\nexport const apiRoutes_status_changes = {\n \"status_changes_schedule\": {\n method: \"POST\",\n path: \"/status-changes/schedule/:table/:recordId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"status-changes\"],\n summary: \"Schedule or run a status change\",\n description: \"Schedules a product/item/variant status transition or applies it immediately when no future schedule is provided.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: StatusChangesScheduleParams;\n query: StatusChangesScheduleQuery;\n body: StatusChangesScheduleBody;\n response: StatusChangesScheduleResponse;\n responseData: StatusChangesScheduleResponseData;\n },\n },\n \"status_changes_get_pending\": {\n method: \"GET\",\n path: \"/status-changes/pending/:table/:recordId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"status-changes\"],\n summary: \"Get pending status change\",\n description: \"Returns the currently open (not processed) status change entry for a record plus whether deletion is currently allowed.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: StatusChangesGetPendingParams;\n query: StatusChangesGetPendingQuery;\n body: StatusChangesGetPendingBody;\n response: StatusChangesGetPendingResponse;\n responseData: StatusChangesGetPendingResponseData;\n },\n },\n \"status_changes_get_history\": {\n method: \"GET\",\n path: \"/status-changes/history/:table/:recordId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"status-changes\"],\n summary: \"Get status change history\",\n description: \"Returns all status change records (processed and pending) for a table record.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: StatusChangesGetHistoryParams;\n query: StatusChangesGetHistoryQuery;\n body: StatusChangesGetHistoryBody;\n response: StatusChangesGetHistoryResponse;\n responseData: StatusChangesGetHistoryResponseData;\n },\n },\n \"status_changes_cancel\": {\n method: \"DELETE\",\n path: \"/status-changes/cancel/:table/:recordId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"status-changes\"],\n summary: \"Cancel pending status change\",\n description: \"Deletes the current pending status change for the target record.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: StatusChangesCancelParams;\n query: StatusChangesCancelQuery;\n body: StatusChangesCancelBody;\n response: StatusChangesCancelResponse;\n responseData: StatusChangesCancelResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nexport type StripeCreateCheckoutSessionParams = undefined;\nexport type StripeCreateCheckoutSessionQuery = {\n discountCode?: string;\n couponCode?: string;\n promotionCode?: string;\n voucherCode?: string;\n};\nexport type StripeCreateCheckoutSessionBody = {\n items: Array<{\n productItemId: number;\n variantId: number;\n quantity: number;\n preferredShippingProviderId?: number;\n}>;\n successUrl: string;\n originUrl: string;\n shippingCountry?: string;\n discountCode?: string;\n couponCode?: string;\n promotionCode?: string;\n voucherCode?: string;\n discount?: {\n code: string;\n};\n};\nexport type StripeCreateCheckoutSessionResponseData = {\n sessionId: string;\n sessionUrl: string;\n};\nexport type StripeCreateCheckoutSessionResponse = import(\"../types\").ApiEnvelope<StripeCreateCheckoutSessionResponseData>;\n\nexport const apiRoutes_stripe = {\n \"stripe_create_checkout_session\": {\n method: \"POST\",\n path: \"/stripe/create-checkout-session\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"stripe\"],\n summary: \"Create Stripe checkout session\",\n description: \"Creates one Stripe checkout session for one-time order checkout and applies optional discount codes.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: StripeCreateCheckoutSessionParams;\n query: StripeCreateCheckoutSessionQuery;\n body: StripeCreateCheckoutSessionBody;\n response: StripeCreateCheckoutSessionResponse;\n responseData: StripeCreateCheckoutSessionResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Customer, CustomerSubscription, PaginatedResult, SubscriptionPlan } from \"../../frontend-types\";\n\nexport type SubscriptionsListPlansParams = undefined;\nexport type SubscriptionsListPlansQuery = {\n provider?: \"Stripe\" | \"PayPal\";\n tag?: string;\n tier?: string;\n backendAppKey?: string;\n includeInactive?: string;\n};\nexport type SubscriptionsListPlansBody = undefined;\nexport type SubscriptionsListPlansResponseData = {\n byTag: Record<string, {\n tag: string;\n plans: Array<{\n id: number;\n tier: string;\n displayName: string;\n description: string | null;\n features: Record<string, any> | null;\n upgradePathTiers: Array<string> | null;\n downgradePathTiers: Array<string> | null;\n pricing: {\n amount: number;\n currency: string;\n interval: string;\n intervalCount: number;\n displayPrice: string;\n};\n tag: string | null;\n sortOrder: number;\n isActive: boolean;\n isPublic: boolean;\n}>;\n}>;\n all: Array<{\n id: number;\n tier: string;\n displayName: string;\n description: string | null;\n features: Record<string, any> | null;\n upgradePathTiers: Array<string> | null;\n downgradePathTiers: Array<string> | null;\n pricing: {\n amount: number;\n currency: string;\n interval: string;\n intervalCount: number;\n displayPrice: string;\n};\n tag: string | null;\n sortOrder: number;\n isActive: boolean;\n isPublic: boolean;\n}>;\n};\nexport type SubscriptionsListPlansResponse = import(\"../types\").ApiEnvelope<SubscriptionsListPlansResponseData>;\n\nexport type SubscriptionsGetMySubscriptionsParams = undefined;\nexport type SubscriptionsGetMySubscriptionsQuery = {\n\n};\nexport type SubscriptionsGetMySubscriptionsBody = undefined;\nexport type SubscriptionsGetMySubscriptionsResponseData = Array<CustomerSubscription & { discountOverview: { discountCodeId: number; code: string; duration: 'once' | 'repeating' | 'forever'; durationInMonths: number | null; totalDiscountedBillingCycles: number | null; usedDiscountedBillingCycles: number; remainingDiscountedBillingCycles: number | null; isUnlimited: boolean; isExpectedForNextInvoice: boolean; lastDiscountAmount: number; currency: string; lastRedeemedAt: Date; } | null; }>;\nexport type SubscriptionsGetMySubscriptionsResponse = import(\"../types\").ApiEnvelope<SubscriptionsGetMySubscriptionsResponseData>;\n\nexport type SubscriptionsGetAvailableChangesParams = {\n subscriptionId: number;\n};\nexport type SubscriptionsGetAvailableChangesQuery = {\n\n};\nexport type SubscriptionsGetAvailableChangesBody = undefined;\nexport type SubscriptionsGetAvailableChangesResponseData = {\n current: {\n id: number;\n tier: string;\n displayName: string;\n description: string | null;\n features: Record<string, any> | null;\n upgradePathTiers: Array<string> | null;\n downgradePathTiers: Array<string> | null;\n pricing: {\n amount: number;\n currency: string;\n interval: string;\n intervalCount: number;\n displayPrice: string;\n};\n tag: string | null;\n sortOrder: number;\n isActive: boolean;\n isPublic: boolean;\n} | null;\n upgrades: Array<{\n id: number;\n tier: string;\n displayName: string;\n description: string | null;\n features: Record<string, any> | null;\n upgradePathTiers: Array<string> | null;\n downgradePathTiers: Array<string> | null;\n pricing: {\n amount: number;\n currency: string;\n interval: string;\n intervalCount: number;\n displayPrice: string;\n};\n tag: string | null;\n sortOrder: number;\n isActive: boolean;\n isPublic: boolean;\n changeType: \"upgrade\" | \"downgrade\";\n}>;\n downgrades: Array<{\n id: number;\n tier: string;\n displayName: string;\n description: string | null;\n features: Record<string, any> | null;\n upgradePathTiers: Array<string> | null;\n downgradePathTiers: Array<string> | null;\n pricing: {\n amount: number;\n currency: string;\n interval: string;\n intervalCount: number;\n displayPrice: string;\n};\n tag: string | null;\n sortOrder: number;\n isActive: boolean;\n isPublic: boolean;\n changeType: \"upgrade\" | \"downgrade\";\n}>;\n availableChanges: Array<{\n id: number;\n tier: string;\n displayName: string;\n description: string | null;\n features: Record<string, any> | null;\n upgradePathTiers: Array<string> | null;\n downgradePathTiers: Array<string> | null;\n pricing: {\n amount: number;\n currency: string;\n interval: string;\n intervalCount: number;\n displayPrice: string;\n};\n tag: string | null;\n sortOrder: number;\n isActive: boolean;\n isPublic: boolean;\n changeType: \"upgrade\" | \"downgrade\";\n}>;\n};\nexport type SubscriptionsGetAvailableChangesResponse = import(\"../types\").ApiEnvelope<SubscriptionsGetAvailableChangesResponseData>;\n\nexport type SubscriptionsAdminSearchParams = undefined;\nexport type SubscriptionsAdminSearchQuery = {\n page?: number;\n pageSize?: number;\n query?: string;\n status?: \"pending\" | \"trialing\" | \"active\" | \"past_due\" | \"unpaid\" | \"cancelled\" | \"incomplete\" | \"incomplete_expired\" | \"paused\";\n provider?: \"Stripe\" | \"PayPal\";\n planId?: number;\n variantId?: number;\n customerId?: number;\n externalUserId?: string;\n onlyActive?: boolean;\n};\nexport type SubscriptionsAdminSearchBody = undefined;\nexport type SubscriptionsAdminSearchResponseData = PaginatedResult<{ subscription: CustomerSubscription; customer: Customer | null; }>;\nexport type SubscriptionsAdminSearchResponse = import(\"../types\").ApiEnvelope<SubscriptionsAdminSearchResponseData>;\n\nexport type SubscriptionsStripeCreateCheckoutSessionParams = undefined;\nexport type SubscriptionsStripeCreateCheckoutSessionQuery = {\n\n};\nexport type SubscriptionsStripeCreateCheckoutSessionBody = {\n planId: number;\n successUrl: string;\n cancelUrl: string;\n discountCode?: string;\n metadata?: Record<string, string>;\n};\nexport type SubscriptionsStripeCreateCheckoutSessionResponseData = {\n subscriptionId: number;\n checkoutSessionId: string;\n checkoutUrl: string;\n};\nexport type SubscriptionsStripeCreateCheckoutSessionResponse = import(\"../types\").ApiEnvelope<SubscriptionsStripeCreateCheckoutSessionResponseData>;\n\nexport type SubscriptionsStripeConfirmCheckoutSessionParams = undefined;\nexport type SubscriptionsStripeConfirmCheckoutSessionQuery = {\n\n};\nexport type SubscriptionsStripeConfirmCheckoutSessionBody = {\n checkoutSessionId: string;\n};\nexport type SubscriptionsStripeConfirmCheckoutSessionResponseData = { subscription: CustomerSubscription; plan: SubscriptionPlan | null; checkout: { sessionId: string; status: string | null; paymentStatus: string | null; subscriptionId: string | null; }; pricing: { amount: number | null; currency: string | null; interval: string | null; intervalCount: number | null; }; };\nexport type SubscriptionsStripeConfirmCheckoutSessionResponse = import(\"../types\").ApiEnvelope<SubscriptionsStripeConfirmCheckoutSessionResponseData>;\n\nexport type SubscriptionsSetCancelAtPeriodEndParams = {\n subscriptionId: number;\n};\nexport type SubscriptionsSetCancelAtPeriodEndQuery = {\n\n};\nexport type SubscriptionsSetCancelAtPeriodEndBody = {\n cancelAtPeriodEnd?: boolean;\n};\nexport type SubscriptionsSetCancelAtPeriodEndResponseData = CustomerSubscription;\nexport type SubscriptionsSetCancelAtPeriodEndResponse = import(\"../types\").ApiEnvelope<SubscriptionsSetCancelAtPeriodEndResponseData>;\n\nexport type SubscriptionsChangePlanParams = {\n subscriptionId: number;\n};\nexport type SubscriptionsChangePlanQuery = {\n\n};\nexport type SubscriptionsChangePlanBody = {\n targetPlanId: number;\n effectiveDate?: \"immediate\" | \"period_end\";\n};\nexport type SubscriptionsChangePlanResponseData = { subscription: CustomerSubscription; changeType: 'upgrade' | 'downgrade' | 'lateral'; effectiveDate: 'immediate' | 'period_end'; proratedAmount?: number; };\nexport type SubscriptionsChangePlanResponse = import(\"../types\").ApiEnvelope<SubscriptionsChangePlanResponseData>;\n\nexport type SubscriptionsAdminCreatePlanParams = undefined;\nexport type SubscriptionsAdminCreatePlanQuery = {\n\n};\nexport type SubscriptionsAdminCreatePlanBody = {\n variantId: number;\n provider?: \"Stripe\" | \"PayPal\";\n interval: \"day\" | \"week\" | \"month\" | \"year\";\n tier: string;\n displayName: string;\n intervalCount?: number;\n trialPeriodDays?: number | null;\n tag?: string | null;\n description?: string | null;\n features?: Record<string, any> | Array<any> | null;\n amount?: number;\n currency?: string;\n sortOrder?: number;\n upgradePathTiers?: Array<string> | null;\n downgradePathTiers?: Array<string> | null;\n isPublic?: boolean;\n isActive?: boolean;\n metadata?: Record<string, any> | null;\n};\nexport type SubscriptionsAdminCreatePlanResponseData = SubscriptionPlan;\nexport type SubscriptionsAdminCreatePlanResponse = import(\"../types\").ApiEnvelope<SubscriptionsAdminCreatePlanResponseData>;\n\nexport type SubscriptionsAdminUpdatePlanParams = {\n id: number;\n};\nexport type SubscriptionsAdminUpdatePlanQuery = {\n\n};\nexport type SubscriptionsAdminUpdatePlanBody = {\n tier?: string;\n displayName?: string;\n description?: string | null;\n features?: Record<string, any> | Array<any> | null;\n interval?: \"day\" | \"week\" | \"month\" | \"year\";\n intervalCount?: number;\n trialPeriodDays?: number | null;\n tag?: string | null;\n amount?: number;\n currency?: string;\n sortOrder?: number;\n upgradePathTiers?: Array<string> | null;\n downgradePathTiers?: Array<string> | null;\n isPublic?: boolean;\n isActive?: boolean;\n metadata?: Record<string, any> | null;\n};\nexport type SubscriptionsAdminUpdatePlanResponseData = SubscriptionPlan;\nexport type SubscriptionsAdminUpdatePlanResponse = import(\"../types\").ApiEnvelope<SubscriptionsAdminUpdatePlanResponseData>;\n\nexport type SubscriptionsAdminDeletePlanParams = {\n id: number;\n};\nexport type SubscriptionsAdminDeletePlanQuery = {\n\n};\nexport type SubscriptionsAdminDeletePlanBody = undefined;\nexport type SubscriptionsAdminDeletePlanResponseData = null;\nexport type SubscriptionsAdminDeletePlanResponse = import(\"../types\").ApiEnvelope<SubscriptionsAdminDeletePlanResponseData>;\n\nexport type SubscriptionsAdminMetricsParams = undefined;\nexport type SubscriptionsAdminMetricsQuery = {\n windowDays?: number;\n primaryAppId?: number;\n};\nexport type SubscriptionsAdminMetricsBody = undefined;\nexport type SubscriptionsAdminMetricsResponseData = {\n generatedAt: string;\n windowDays: number;\n counts: {\n total: number;\n active: number;\n trialing: number;\n pastDue: number;\n paused: number;\n pendingCancellation: number;\n cancelledInWindow: number;\n newInWindow: number;\n};\n mrr: Array<{\n currency: string;\n amountMinor: number;\n subscriptionCount: number;\n}>;\n churnRate: number;\n growthRate: number;\n byPlan: Array<{\n planId: number;\n tier: string;\n displayName: string;\n activeCount: number;\n}>;\n byProvider: Array<{\n provider: \"Stripe\" | \"PayPal\";\n activeCount: number;\n}>;\n};\nexport type SubscriptionsAdminMetricsResponse = import(\"../types\").ApiEnvelope<SubscriptionsAdminMetricsResponseData>;\n\nexport type SubscriptionsAdminPauseParams = {\n subscriptionId: number;\n};\nexport type SubscriptionsAdminPauseQuery = {\n\n};\nexport type SubscriptionsAdminPauseBody = {\n reason?: string;\n};\nexport type SubscriptionsAdminPauseResponseData = CustomerSubscription;\nexport type SubscriptionsAdminPauseResponse = import(\"../types\").ApiEnvelope<SubscriptionsAdminPauseResponseData>;\n\nexport type SubscriptionsAdminResumeParams = {\n subscriptionId: number;\n};\nexport type SubscriptionsAdminResumeQuery = {\n\n};\nexport type SubscriptionsAdminResumeBody = {\n\n};\nexport type SubscriptionsAdminResumeResponseData = CustomerSubscription;\nexport type SubscriptionsAdminResumeResponse = import(\"../types\").ApiEnvelope<SubscriptionsAdminResumeResponseData>;\n\nexport type SubscriptionsAdminCancelParams = {\n subscriptionId: number;\n};\nexport type SubscriptionsAdminCancelQuery = {\n\n};\nexport type SubscriptionsAdminCancelBody = {\n immediate?: boolean;\n reason: string;\n reasonCategory?: \"too_expensive\" | \"not_using\" | \"missing_features\" | \"switched_competitor\" | \"customer_request\" | \"fraud\" | \"trial_ended\" | \"other\";\n};\nexport type SubscriptionsAdminCancelResponseData = CustomerSubscription;\nexport type SubscriptionsAdminCancelResponse = import(\"../types\").ApiEnvelope<SubscriptionsAdminCancelResponseData>;\n\nexport type SubscriptionsAdminReorderPlansParams = undefined;\nexport type SubscriptionsAdminReorderPlansQuery = {\n\n};\nexport type SubscriptionsAdminReorderPlansBody = {\n orders: Array<{\n id: number;\n sortOrder: number;\n}>;\n};\nexport type SubscriptionsAdminReorderPlansResponseData = {\n updated: number;\n};\nexport type SubscriptionsAdminReorderPlansResponse = import(\"../types\").ApiEnvelope<SubscriptionsAdminReorderPlansResponseData>;\n\nexport type SubscriptionsAdminExportParams = undefined;\nexport type SubscriptionsAdminExportQuery = {\n status?: \"pending\" | \"trialing\" | \"active\" | \"past_due\" | \"unpaid\" | \"cancelled\" | \"incomplete\" | \"incomplete_expired\" | \"paused\";\n provider?: \"Stripe\" | \"PayPal\";\n planId?: number;\n onlyActive?: boolean;\n};\nexport type SubscriptionsAdminExportBody = undefined;\nexport type SubscriptionsAdminExportResponseData = Blob;\nexport type SubscriptionsAdminExportResponse = Blob;\n\nexport const apiRoutes_subscriptions = {\n \"subscriptions_list_plans\": {\n method: \"GET\",\n path: \"/subscriptions/plans\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"List subscription plans for storefront\",\n description: \"Returns subscription plans grouped by tag and formatted for display. Can be filtered by provider/tag/tier.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SubscriptionsListPlansParams;\n query: SubscriptionsListPlansQuery;\n body: SubscriptionsListPlansBody;\n response: SubscriptionsListPlansResponse;\n responseData: SubscriptionsListPlansResponseData;\n },\n },\n \"subscriptions_get_my_subscriptions\": {\n method: \"GET\",\n path: \"/subscriptions/me\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Get current user's subscriptions\",\n description: \"Returns visible subscriptions of the authenticated frontend user, including discount-cycle overview data.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SubscriptionsGetMySubscriptionsParams;\n query: SubscriptionsGetMySubscriptionsQuery;\n body: SubscriptionsGetMySubscriptionsBody;\n response: SubscriptionsGetMySubscriptionsResponse;\n responseData: SubscriptionsGetMySubscriptionsResponseData;\n },\n },\n \"subscriptions_get_available_changes\": {\n method: \"GET\",\n path: \"/subscriptions/available-changes/:subscriptionId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Get available upgrades/downgrades for subscription\",\n description: \"Returns the current formatted plan and all currently allowed upgrade/downgrade options for one subscription.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SubscriptionsGetAvailableChangesParams;\n query: SubscriptionsGetAvailableChangesQuery;\n body: SubscriptionsGetAvailableChangesBody;\n response: SubscriptionsGetAvailableChangesResponse;\n responseData: SubscriptionsGetAvailableChangesResponseData;\n },\n },\n \"subscriptions_admin_search\": {\n method: \"GET\",\n path: \"/subscriptions/admin/search\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_view\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Search subscriptions for admin\",\n description: \"Admin endpoint for paginated subscription search/filtering across customers, providers, statuses, plans and variants.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SubscriptionsAdminSearchParams;\n query: SubscriptionsAdminSearchQuery;\n body: SubscriptionsAdminSearchBody;\n response: SubscriptionsAdminSearchResponse;\n responseData: SubscriptionsAdminSearchResponseData;\n },\n },\n \"subscriptions_stripe_create_checkout_session\": {\n method: \"POST\",\n path: \"/subscriptions/stripe/create-checkout-session\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Create Stripe subscription checkout session\",\n description: \"Creates a subscription checkout session for one plan and returns session URL/id plus internal subscription id.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: SubscriptionsStripeCreateCheckoutSessionParams;\n query: SubscriptionsStripeCreateCheckoutSessionQuery;\n body: SubscriptionsStripeCreateCheckoutSessionBody;\n response: SubscriptionsStripeCreateCheckoutSessionResponse;\n responseData: SubscriptionsStripeCreateCheckoutSessionResponseData;\n },\n },\n \"subscriptions_stripe_confirm_checkout_session\": {\n method: \"POST\",\n path: \"/subscriptions/stripe/confirm-checkout-session\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Confirm Stripe subscription checkout session\",\n description: \"Confirms one Stripe checkout session, synchronizes local subscription state and returns checkout/pricing summary.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: SubscriptionsStripeConfirmCheckoutSessionParams;\n query: SubscriptionsStripeConfirmCheckoutSessionQuery;\n body: SubscriptionsStripeConfirmCheckoutSessionBody;\n response: SubscriptionsStripeConfirmCheckoutSessionResponse;\n responseData: SubscriptionsStripeConfirmCheckoutSessionResponseData;\n },\n },\n \"subscriptions_set_cancel_at_period_end\": {\n method: \"POST\",\n path: \"/subscriptions/cancel/:subscriptionId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Set subscription cancel-at-period-end\",\n description: \"Toggles `cancelAtPeriodEnd` for one subscription that belongs to the authenticated frontend user.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: SubscriptionsSetCancelAtPeriodEndParams;\n query: SubscriptionsSetCancelAtPeriodEndQuery;\n body: SubscriptionsSetCancelAtPeriodEndBody;\n response: SubscriptionsSetCancelAtPeriodEndResponse;\n responseData: SubscriptionsSetCancelAtPeriodEndResponseData;\n },\n },\n \"subscriptions_change_plan\": {\n method: \"POST\",\n path: \"/subscriptions/change-plan/:subscriptionId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Change subscription plan\",\n description: \"Initiates an immediate or period-end plan change for one subscription owned by the authenticated frontend user.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: SubscriptionsChangePlanParams;\n query: SubscriptionsChangePlanQuery;\n body: SubscriptionsChangePlanBody;\n response: SubscriptionsChangePlanResponse;\n responseData: SubscriptionsChangePlanResponseData;\n },\n },\n \"subscriptions_admin_create_plan\": {\n method: \"POST\",\n path: \"/subscriptions/admin/plans\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Create subscription plan (admin)\",\n description: \"Creates a new subscription plan and links it to the configured billing provider (currently Stripe).\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: SubscriptionsAdminCreatePlanParams;\n query: SubscriptionsAdminCreatePlanQuery;\n body: SubscriptionsAdminCreatePlanBody;\n response: SubscriptionsAdminCreatePlanResponse;\n responseData: SubscriptionsAdminCreatePlanResponseData;\n },\n },\n \"subscriptions_admin_update_plan\": {\n method: \"PUT\",\n path: \"/subscriptions/admin/plans/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Update subscription plan (admin)\",\n description: \"Updates plan metadata/billing settings and synchronizes provider pricing when interval or amount changed.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: SubscriptionsAdminUpdatePlanParams;\n query: SubscriptionsAdminUpdatePlanQuery;\n body: SubscriptionsAdminUpdatePlanBody;\n response: SubscriptionsAdminUpdatePlanResponse;\n responseData: SubscriptionsAdminUpdatePlanResponseData;\n },\n },\n \"subscriptions_admin_delete_plan\": {\n method: \"DELETE\",\n path: \"/subscriptions/admin/plans/:id\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Delete subscription plan (admin)\",\n description: \"Deletes a subscription plan if business constraints allow deletion (e.g. no historical purchases for variant).\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SubscriptionsAdminDeletePlanParams;\n query: SubscriptionsAdminDeletePlanQuery;\n body: SubscriptionsAdminDeletePlanBody;\n response: SubscriptionsAdminDeletePlanResponse;\n responseData: SubscriptionsAdminDeletePlanResponseData;\n },\n },\n \"subscriptions_admin_metrics\": {\n method: \"GET\",\n path: \"/subscriptions/admin/metrics\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_view\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Subscription KPIs and aggregates\",\n description: \"Returns rolling-window subscription metrics: status histogram, MRR per currency, churn/growth rate, breakdowns per plan and provider. Window defaults to 30 days.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SubscriptionsAdminMetricsParams;\n query: SubscriptionsAdminMetricsQuery;\n body: SubscriptionsAdminMetricsBody;\n response: SubscriptionsAdminMetricsResponse;\n responseData: SubscriptionsAdminMetricsResponseData;\n },\n },\n \"subscriptions_admin_pause\": {\n method: \"PUT\",\n path: \"/subscriptions/admin/:subscriptionId/pause\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Pause subscription (admin)\",\n description: \"Marks the subscription as 'paused' locally and records the pause reason in metadata. Does not call the billing provider.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: SubscriptionsAdminPauseParams;\n query: SubscriptionsAdminPauseQuery;\n body: SubscriptionsAdminPauseBody;\n response: SubscriptionsAdminPauseResponse;\n responseData: SubscriptionsAdminPauseResponseData;\n },\n },\n \"subscriptions_admin_resume\": {\n method: \"PUT\",\n path: \"/subscriptions/admin/:subscriptionId/resume\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Resume paused subscription (admin)\",\n description: \"Restores a paused subscription to its previous status (defaults to 'active' if previous status is unknown).\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: SubscriptionsAdminResumeParams;\n query: SubscriptionsAdminResumeQuery;\n body: SubscriptionsAdminResumeBody;\n response: SubscriptionsAdminResumeResponse;\n responseData: SubscriptionsAdminResumeResponseData;\n },\n },\n \"subscriptions_admin_cancel\": {\n method: \"PUT\",\n path: \"/subscriptions/admin/:subscriptionId/cancel\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Cancel subscription (admin)\",\n description: \"Cancels a subscription either immediately or at period end. Reason and reasonCategory are stored in metadata for churn analysis.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: SubscriptionsAdminCancelParams;\n query: SubscriptionsAdminCancelQuery;\n body: SubscriptionsAdminCancelBody;\n response: SubscriptionsAdminCancelResponse;\n responseData: SubscriptionsAdminCancelResponseData;\n },\n },\n \"subscriptions_admin_reorder_plans\": {\n method: \"POST\",\n path: \"/subscriptions/admin/plans/reorder\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_manage\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Reorder subscription plans (admin)\",\n description: \"Bulk updates the sortOrder for multiple plans in one transaction.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: SubscriptionsAdminReorderPlansParams;\n query: SubscriptionsAdminReorderPlansQuery;\n body: SubscriptionsAdminReorderPlansBody;\n response: SubscriptionsAdminReorderPlansResponse;\n responseData: SubscriptionsAdminReorderPlansResponseData;\n },\n },\n \"subscriptions_admin_export\": {\n method: \"GET\",\n path: \"/subscriptions/admin/export\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"orders_view\"},\n meta: {\n tags: [\"subscriptions\"],\n summary: \"Export subscriptions as CSV (admin)\",\n description: \"Streams all matching subscriptions as a CSV file with customer, plan, billing and lifecycle columns.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SubscriptionsAdminExportParams;\n query: SubscriptionsAdminExportQuery;\n body: SubscriptionsAdminExportBody;\n response: SubscriptionsAdminExportResponse;\n responseData: SubscriptionsAdminExportResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nexport type SuppliersPrintfulProductsListParams = undefined;\nexport type SuppliersPrintfulProductsListQuery = {\n\n};\nexport type SuppliersPrintfulProductsListBody = undefined;\nexport type SuppliersPrintfulProductsListResponseData = Array<{\n product: {\n id: number;\n external_id: string;\n name: string;\n variants: number;\n synced: number;\n thumbnail_url?: string;\n is_ignored?: boolean;\n};\n variants: Array<{\n id: number;\n external_id: string;\n name: string;\n retail_price: string;\n sku: string;\n size: string;\n color: string;\n variant_id: number;\n sync_product_id: number;\n sync_variant_id: number;\n}>;\n}>;\nexport type SuppliersPrintfulProductsListResponse = import(\"../types\").ApiEnvelope<SuppliersPrintfulProductsListResponseData>;\n\nexport type SuppliersPrintfulWebhookParams = undefined;\nexport type SuppliersPrintfulWebhookQuery = undefined;\nexport type SuppliersPrintfulWebhookBody = {\n type?: string;\n data?: {\n\n};\n};\nexport type SuppliersPrintfulWebhookResponseData = null;\nexport type SuppliersPrintfulWebhookResponse = import(\"../types\").ApiEnvelope<SuppliersPrintfulWebhookResponseData>;\n\nexport type SuppliersPrintfulWebhookSecuredParams = {\n secret: string;\n};\nexport type SuppliersPrintfulWebhookSecuredQuery = undefined;\nexport type SuppliersPrintfulWebhookSecuredBody = {\n type?: string;\n data?: {\n\n};\n};\nexport type SuppliersPrintfulWebhookSecuredResponseData = null;\nexport type SuppliersPrintfulWebhookSecuredResponse = import(\"../types\").ApiEnvelope<SuppliersPrintfulWebhookSecuredResponseData>;\n\nexport type SuppliersPrintfulOauthConnectParams = undefined;\nexport type SuppliersPrintfulOauthConnectQuery = {\n\n};\nexport type SuppliersPrintfulOauthConnectBody = undefined;\nexport type SuppliersPrintfulOauthConnectResponseData = {\n authorizeUrl: string;\n};\nexport type SuppliersPrintfulOauthConnectResponse = import(\"../types\").ApiEnvelope<SuppliersPrintfulOauthConnectResponseData>;\n\nexport type SuppliersPrintfulOauthCallbackParams = undefined;\nexport type SuppliersPrintfulOauthCallbackQuery = {\n code?: string;\n state?: string;\n error?: string;\n error_description?: string;\n};\nexport type SuppliersPrintfulOauthCallbackBody = undefined;\nexport type SuppliersPrintfulOauthCallbackResponseData = null;\nexport type SuppliersPrintfulOauthCallbackResponse = import(\"../types\").ApiEnvelope<SuppliersPrintfulOauthCallbackResponseData>;\n\nexport type SuppliersPrintfulOauthStatusParams = undefined;\nexport type SuppliersPrintfulOauthStatusQuery = {\n\n};\nexport type SuppliersPrintfulOauthStatusBody = undefined;\nexport type SuppliersPrintfulOauthStatusResponseData = {\n connected: boolean;\n connectedAt: string | null;\n scope: string | null;\n accessTokenExpiresAt: string | null;\n refreshTokenExpiresAt: string | null;\n webhookUrl: string | null;\n};\nexport type SuppliersPrintfulOauthStatusResponse = import(\"../types\").ApiEnvelope<SuppliersPrintfulOauthStatusResponseData>;\n\nexport type SuppliersPrintfulOauthDisconnectParams = undefined;\nexport type SuppliersPrintfulOauthDisconnectQuery = {\n\n};\nexport type SuppliersPrintfulOauthDisconnectBody = undefined;\nexport type SuppliersPrintfulOauthDisconnectResponseData = null;\nexport type SuppliersPrintfulOauthDisconnectResponse = import(\"../types\").ApiEnvelope<SuppliersPrintfulOauthDisconnectResponseData>;\n\nexport const apiRoutes_suppliers = {\n \"suppliers_printful_products_list\": {\n method: \"GET\",\n path: \"/suppliers/printful/getAllProducts\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"suppliers_manage\"},\n meta: {\n tags: [\"suppliers\"],\n summary: \"List Printful products\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SuppliersPrintfulProductsListParams;\n query: SuppliersPrintfulProductsListQuery;\n body: SuppliersPrintfulProductsListBody;\n response: SuppliersPrintfulProductsListResponse;\n responseData: SuppliersPrintfulProductsListResponseData;\n },\n },\n \"suppliers_printful_webhook\": {\n method: \"POST\",\n path: \"/suppliers/printful/webhook\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"suppliers\"],\n summary: \"Handle Printful webhook (DEPRECATED - unauthenticated, use /webhook/:secret)\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: SuppliersPrintfulWebhookParams;\n query: SuppliersPrintfulWebhookQuery;\n body: SuppliersPrintfulWebhookBody;\n response: SuppliersPrintfulWebhookResponse;\n responseData: SuppliersPrintfulWebhookResponseData;\n },\n },\n \"suppliers_printful_webhook_secured\": {\n method: \"POST\",\n path: \"/suppliers/printful/webhook/:secret\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"suppliers\"],\n summary: \"Handle Printful webhook (secret-path secured)\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: SuppliersPrintfulWebhookSecuredParams;\n query: SuppliersPrintfulWebhookSecuredQuery;\n body: SuppliersPrintfulWebhookSecuredBody;\n response: SuppliersPrintfulWebhookSecuredResponse;\n responseData: SuppliersPrintfulWebhookSecuredResponseData;\n },\n },\n \"suppliers_printful_oauth_connect\": {\n method: \"GET\",\n path: \"/suppliers/printful/oauth/connect\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"suppliers_manage\"},\n meta: {\n tags: [\"suppliers\"],\n summary: \"Start Printful OAuth connect flow\",\n description: \"Returns the Printful authorize URL to redirect the admin's browser to.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SuppliersPrintfulOauthConnectParams;\n query: SuppliersPrintfulOauthConnectQuery;\n body: SuppliersPrintfulOauthConnectBody;\n response: SuppliersPrintfulOauthConnectResponse;\n responseData: SuppliersPrintfulOauthConnectResponseData;\n },\n },\n \"suppliers_printful_oauth_callback\": {\n method: \"GET\",\n path: \"/suppliers/printful/oauth/callback\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"suppliers\"],\n summary: \"Printful OAuth callback (redirect target, called by Printful directly)\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SuppliersPrintfulOauthCallbackParams;\n query: SuppliersPrintfulOauthCallbackQuery;\n body: SuppliersPrintfulOauthCallbackBody;\n response: SuppliersPrintfulOauthCallbackResponse;\n responseData: SuppliersPrintfulOauthCallbackResponseData;\n },\n },\n \"suppliers_printful_oauth_status\": {\n method: \"GET\",\n path: \"/suppliers/printful/oauth/status\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"suppliers_manage\"},\n meta: {\n tags: [\"suppliers\"],\n summary: \"Printful OAuth connection status\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SuppliersPrintfulOauthStatusParams;\n query: SuppliersPrintfulOauthStatusQuery;\n body: SuppliersPrintfulOauthStatusBody;\n response: SuppliersPrintfulOauthStatusResponse;\n responseData: SuppliersPrintfulOauthStatusResponseData;\n },\n },\n \"suppliers_printful_oauth_disconnect\": {\n method: \"POST\",\n path: \"/suppliers/printful/oauth/disconnect\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"suppliers_manage\"},\n meta: {\n tags: [\"suppliers\"],\n summary: \"Disconnect Printful OAuth connection\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: SuppliersPrintfulOauthDisconnectParams;\n query: SuppliersPrintfulOauthDisconnectQuery;\n body: SuppliersPrintfulOauthDisconnectBody;\n response: SuppliersPrintfulOauthDisconnectResponse;\n responseData: SuppliersPrintfulOauthDisconnectResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Ticket } from \"../../frontend-types\";\n\nexport type TicketsListParams = undefined;\nexport type TicketsListQuery = {\n\n};\nexport type TicketsListBody = undefined;\nexport type TicketsListResponseData = { tickets: Ticket[]; canDelete: boolean; canCreate: boolean };\nexport type TicketsListResponse = import(\"../types\").ApiEnvelope<TicketsListResponseData>;\n\nexport type TicketsGetByIdParams = {\n ticketId: number;\n token: string;\n};\nexport type TicketsGetByIdQuery = undefined;\nexport type TicketsGetByIdBody = undefined;\nexport type TicketsGetByIdResponseData = Ticket;\nexport type TicketsGetByIdResponse = import(\"../types\").ApiEnvelope<TicketsGetByIdResponseData>;\n\nexport type TicketsCheckInParams = {\n ticketId: number;\n};\nexport type TicketsCheckInQuery = undefined;\nexport type TicketsCheckInBody = undefined;\nexport type TicketsCheckInResponseData = Ticket;\nexport type TicketsCheckInResponse = import(\"../types\").ApiEnvelope<TicketsCheckInResponseData>;\n\nexport type TicketsViewPdfParams = {\n ticketId: number;\n token: string;\n};\nexport type TicketsViewPdfQuery = undefined;\nexport type TicketsViewPdfBody = undefined;\nexport type TicketsViewPdfResponseData = Blob;\nexport type TicketsViewPdfResponse = Blob;\n\nexport type TicketsDeleteParams = {\n ticketId: number;\n};\nexport type TicketsDeleteQuery = undefined;\nexport type TicketsDeleteBody = undefined;\nexport type TicketsDeleteResponseData = Ticket;\nexport type TicketsDeleteResponse = import(\"../types\").ApiEnvelope<TicketsDeleteResponseData>;\n\nexport type TicketsCreateParams = {\n eventId: number;\n};\nexport type TicketsCreateQuery = undefined;\nexport type TicketsCreateBody = {\n email: string;\n name?: string;\n surname?: string;\n};\nexport type TicketsCreateResponseData = Ticket;\nexport type TicketsCreateResponse = import(\"../types\").ApiEnvelope<TicketsCreateResponseData>;\n\nexport const apiRoutes_tickets = {\n \"tickets_list\": {\n method: \"GET\",\n path: \"/tickets/getAll\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"tickets_validate\"},\n meta: {\n tags: [\"tickets\"],\n summary: \"List tickets\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: TicketsListParams;\n query: TicketsListQuery;\n body: TicketsListBody;\n response: TicketsListResponse;\n responseData: TicketsListResponseData;\n },\n },\n \"tickets_get_by_id\": {\n method: \"GET\",\n path: \"/tickets/get/:ticketId/:token\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"tickets_validate\"},\n meta: {\n tags: [\"tickets\"],\n summary: \"Get ticket by id and token\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: TicketsGetByIdParams;\n query: TicketsGetByIdQuery;\n body: TicketsGetByIdBody;\n response: TicketsGetByIdResponse;\n responseData: TicketsGetByIdResponseData;\n },\n },\n \"tickets_check_in\": {\n method: \"POST\",\n path: \"/tickets/checkIn/:ticketId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"tickets_validate\"},\n meta: {\n tags: [\"tickets\"],\n summary: \"Check in ticket\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: TicketsCheckInParams;\n query: TicketsCheckInQuery;\n body: TicketsCheckInBody;\n response: TicketsCheckInResponse;\n responseData: TicketsCheckInResponseData;\n },\n },\n \"tickets_view_pdf\": {\n method: \"GET\",\n path: \"/tickets/view/:ticketId/:token\",\n auth: {\"type\":\"public\"},\n meta: {\n tags: [\"tickets\"],\n summary: \"View ticket PDF\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: TicketsViewPdfParams;\n query: TicketsViewPdfQuery;\n body: TicketsViewPdfBody;\n response: TicketsViewPdfResponse;\n responseData: TicketsViewPdfResponseData;\n },\n },\n \"tickets_delete\": {\n method: \"DELETE\",\n path: \"/tickets/delete/:ticketId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"tickets_delete\"},\n meta: {\n tags: [\"tickets\"],\n summary: \"Delete ticket\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: TicketsDeleteParams;\n query: TicketsDeleteQuery;\n body: TicketsDeleteBody;\n response: TicketsDeleteResponse;\n responseData: TicketsDeleteResponseData;\n },\n },\n \"tickets_create\": {\n method: \"POST\",\n path: \"/tickets/create/:eventId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"tickets_create\"},\n meta: {\n tags: [\"tickets\"],\n summary: \"Create ticket\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: TicketsCreateParams;\n query: TicketsCreateQuery;\n body: TicketsCreateBody;\n response: TicketsCreateResponse;\n responseData: TicketsCreateResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { Translation, TranslationKey } from \"../../frontend-types\";\n\nexport type TranslationsCreateParams = {\n translationKey: number;\n language: \"DE\" | \"EN\";\n};\nexport type TranslationsCreateQuery = {\n\n};\nexport type TranslationsCreateBody = {\n translation: string;\n};\nexport type TranslationsCreateResponseData = Translation;\nexport type TranslationsCreateResponse = import(\"../types\").ApiEnvelope<TranslationsCreateResponseData>;\n\nexport type TranslationsGetByLanguageAndKeyParams = {\n keyId: number;\n language: \"DE\" | \"EN\";\n};\nexport type TranslationsGetByLanguageAndKeyQuery = {\n\n};\nexport type TranslationsGetByLanguageAndKeyBody = undefined;\nexport type TranslationsGetByLanguageAndKeyResponseData = Translation | null;\nexport type TranslationsGetByLanguageAndKeyResponse = import(\"../types\").ApiEnvelope<TranslationsGetByLanguageAndKeyResponseData>;\n\nexport type TranslationsGetByKeyParams = {\n keyId: number;\n};\nexport type TranslationsGetByKeyQuery = {\n\n};\nexport type TranslationsGetByKeyBody = undefined;\nexport type TranslationsGetByKeyResponseData = Translation[];\nexport type TranslationsGetByKeyResponse = import(\"../types\").ApiEnvelope<TranslationsGetByKeyResponseData>;\n\nexport type TranslationsUpdateParams = {\n translationKey: number;\n language: \"DE\" | \"EN\";\n};\nexport type TranslationsUpdateQuery = {\n\n};\nexport type TranslationsUpdateBody = {\n translation: string;\n};\nexport type TranslationsUpdateResponseData = Translation;\nexport type TranslationsUpdateResponse = import(\"../types\").ApiEnvelope<TranslationsUpdateResponseData>;\n\nexport type TranslationsUpdateKeyParams = {\n keyId: number;\n};\nexport type TranslationsUpdateKeyQuery = {\n\n};\nexport type TranslationsUpdateKeyBody = {\n needsTranslation: boolean;\n};\nexport type TranslationsUpdateKeyResponseData = TranslationKey;\nexport type TranslationsUpdateKeyResponse = import(\"../types\").ApiEnvelope<TranslationsUpdateKeyResponseData>;\n\nexport type TranslationsGetIncompleteParams = undefined;\nexport type TranslationsGetIncompleteQuery = {\n\n};\nexport type TranslationsGetIncompleteBody = undefined;\nexport type TranslationsGetIncompleteResponseData = { result: Array<{ key: TranslationKey; translations: Translation[]; }>; missingTranslationsPrompt: string; };\nexport type TranslationsGetIncompleteResponse = import(\"../types\").ApiEnvelope<TranslationsGetIncompleteResponseData>;\n\nexport type TranslationsGetByItemParams = {\n itemId: number;\n table: \"products\" | \"product_categories\" | \"product_items\" | \"brands\" | \"attributes\" | \"attribute_options\" | \"events\" | \"locations\" | \"shipping_rates\";\n};\nexport type TranslationsGetByItemQuery = {\n column: string;\n};\nexport type TranslationsGetByItemBody = undefined;\nexport type TranslationsGetByItemResponseData = { keyData: TranslationKey; translations: Translation[] };\nexport type TranslationsGetByItemResponse = import(\"../types\").ApiEnvelope<TranslationsGetByItemResponseData>;\n\nexport type TranslationsCreateFromPromptParams = undefined;\nexport type TranslationsCreateFromPromptQuery = {\n\n};\nexport type TranslationsCreateFromPromptBody = {\n prompt: string;\n};\nexport type TranslationsCreateFromPromptResponseData = null;\nexport type TranslationsCreateFromPromptResponse = import(\"../types\").ApiEnvelope<TranslationsCreateFromPromptResponseData>;\n\nexport const apiRoutes_translations = {\n \"translations_create\": {\n method: \"POST\",\n path: \"/translations/create/:translationKey/:language\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"translations\"],\n summary: \"Create translation value\",\n description: \"Creates a translation entry for an existing translation key and target language.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: TranslationsCreateParams;\n query: TranslationsCreateQuery;\n body: TranslationsCreateBody;\n response: TranslationsCreateResponse;\n responseData: TranslationsCreateResponseData;\n },\n },\n \"translations_get_by_language_and_key\": {\n method: \"GET\",\n path: \"/translations/getByLanguageAndKey/:keyId/:language\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"translations\"],\n summary: \"Get translation by key and language\",\n description: \"Returns one translation entry for a key in a specific language.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: TranslationsGetByLanguageAndKeyParams;\n query: TranslationsGetByLanguageAndKeyQuery;\n body: TranslationsGetByLanguageAndKeyBody;\n response: TranslationsGetByLanguageAndKeyResponse;\n responseData: TranslationsGetByLanguageAndKeyResponseData;\n },\n },\n \"translations_get_by_key\": {\n method: \"GET\",\n path: \"/translations/getByKey/:keyId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"translations\"],\n summary: \"Get all translations by key\",\n description: \"Returns all available language entries for one translation key.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: TranslationsGetByKeyParams;\n query: TranslationsGetByKeyQuery;\n body: TranslationsGetByKeyBody;\n response: TranslationsGetByKeyResponse;\n responseData: TranslationsGetByKeyResponseData;\n },\n },\n \"translations_update\": {\n method: \"POST\",\n path: \"/translations/update/:translationKey/:language\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"translations\"],\n summary: \"Update translation value\",\n description: \"Updates one translation value and applies side effects (e.g. Stripe sync for product names).\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: TranslationsUpdateParams;\n query: TranslationsUpdateQuery;\n body: TranslationsUpdateBody;\n response: TranslationsUpdateResponse;\n responseData: TranslationsUpdateResponseData;\n },\n },\n \"translations_update_key\": {\n method: \"PUT\",\n path: \"/translations/updateKey/:keyId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"translations\"],\n summary: \"Update translation key metadata\",\n description: \"Updates translation key flags such as `needsTranslation`.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: TranslationsUpdateKeyParams;\n query: TranslationsUpdateKeyQuery;\n body: TranslationsUpdateKeyBody;\n response: TranslationsUpdateKeyResponse;\n responseData: TranslationsUpdateKeyResponseData;\n },\n },\n \"translations_get_incomplete\": {\n method: \"GET\",\n path: \"/translations/incompleteTranslations\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"translations\"],\n summary: \"List incomplete translations\",\n description: \"Returns translation keys with missing language entries plus a generated prompt scaffold for batch completion.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: TranslationsGetIncompleteParams;\n query: TranslationsGetIncompleteQuery;\n body: TranslationsGetIncompleteBody;\n response: TranslationsGetIncompleteResponse;\n responseData: TranslationsGetIncompleteResponseData;\n },\n },\n \"translations_get_by_item\": {\n method: \"GET\",\n path: \"/translations/translationsByItem/:itemId/:table\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"translations\"],\n summary: \"Get translations for one item field\",\n description: \"Resolves the translation key for one table/item/column and returns the key metadata with all language values.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: TranslationsGetByItemParams;\n query: TranslationsGetByItemQuery;\n body: TranslationsGetByItemBody;\n response: TranslationsGetByItemResponse;\n responseData: TranslationsGetByItemResponseData;\n },\n },\n \"translations_create_from_prompt\": {\n method: \"POST\",\n path: \"/translations/createFromPrompt\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"translations\"],\n summary: \"Create translations from prompt JSON payload\",\n description: \"Parses prompt-embedded JSON translation instructions and creates non-empty translation values per set/language.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: TranslationsCreateFromPromptParams;\n query: TranslationsCreateFromPromptQuery;\n body: TranslationsCreateFromPromptBody;\n response: TranslationsCreateFromPromptResponse;\n responseData: TranslationsCreateFromPromptResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { AppOveragePricingRule, UsageAlertConfig, UsageAlertHistory, UsageOverageReport } from \"../../frontend-types\";\n\nexport type UsageReportsGetOverviewParams = undefined;\nexport type UsageReportsGetOverviewQuery = {\n appId?: number;\n customerId?: number;\n limit?: number;\n issuesLimit?: number;\n};\nexport type UsageReportsGetOverviewBody = undefined;\nexport type UsageReportsGetOverviewResponseData = {\n scannedReports: number;\n settlementCutoff: string;\n counts: {\n pendingSettled: number;\n pendingUnsettled: number;\n pendingBlocked: number;\n pendingReview: number;\n invoicedUnpaid: number;\n invoicedPaid: number;\n waived: number;\n};\n totalsByCurrency: Record<string, {\n pendingSettled: number;\n pendingUnsettled: number;\n pendingBlocked: number;\n pendingReview: number;\n invoicedUnpaid: number;\n invoicedPaid: number;\n waived: number;\n}>;\n netOpenBillableByCurrency: Record<string, number>;\n netOpenIncludingUnsettledByCurrency: Record<string, number>;\n byApp: Record<string, {\n pendingSettled: number;\n pendingUnsettled: number;\n pendingBlocked: number;\n pendingReview: number;\n invoicedUnpaid: number;\n invoicedPaid: number;\n waived: number;\n reports: number;\n}>;\n criticalIssues: Array<{\n reportId: number;\n externalEventId: string;\n externalAppIdentifier: string;\n customerId: number | null;\n amount: string;\n currency: string;\n warnings: Array<string>;\n reportedAt: string;\n}>;\n};\nexport type UsageReportsGetOverviewResponse = import(\"../types\").ApiEnvelope<UsageReportsGetOverviewResponseData>;\n\nexport type UsageReportsGetPendingParams = undefined;\nexport type UsageReportsGetPendingQuery = {\n appId?: number;\n customerId?: number;\n limit?: number;\n settledOnly?: boolean;\n};\nexport type UsageReportsGetPendingBody = undefined;\nexport type UsageReportsGetPendingResponseData = { reports: UsageOverageReport[]; total: number; };\nexport type UsageReportsGetPendingResponse = import(\"../types\").ApiEnvelope<UsageReportsGetPendingResponseData>;\n\nexport type UsageReportsGetMappingIssuesParams = undefined;\nexport type UsageReportsGetMappingIssuesQuery = {\n appId?: number;\n customerId?: number;\n limit?: number;\n settledOnly?: boolean;\n};\nexport type UsageReportsGetMappingIssuesBody = undefined;\nexport type UsageReportsGetMappingIssuesResponseData = {\n settlementCutoff: string;\n total: number;\n issues: Array<{\n reportId: number;\n externalEventId: string;\n app: string;\n customerId: number | null;\n assignmentId: number | null;\n externalUserId: string;\n externalIdentifier: string;\n entitlementType: \"role\" | \"area\";\n amount: string;\n currency: string;\n periodStart: string | null;\n periodEnd: string | null;\n reportedAt: string;\n warnings: Array<string>;\n}>;\n};\nexport type UsageReportsGetMappingIssuesResponse = import(\"../types\").ApiEnvelope<UsageReportsGetMappingIssuesResponseData>;\n\nexport type UsageReportsGetOpenExposureParams = undefined;\nexport type UsageReportsGetOpenExposureQuery = {\n appId?: number;\n customerId?: number;\n scanLimit?: number;\n top?: number;\n};\nexport type UsageReportsGetOpenExposureBody = undefined;\nexport type UsageReportsGetOpenExposureResponseData = {\n settlementCutoff: string;\n scannedReports: number;\n customers: Array<{\n customerId: number;\n billableOpenByCurrency: Record<string, number>;\n unsettledByCurrency: Record<string, number>;\n blockedByCurrency: Record<string, number>;\n pendingReviewByCurrency: Record<string, number>;\n invoicedUnpaidByCurrency: Record<string, number>;\n reportCount: number;\n rankScore: number;\n}>;\n totalCustomers: number;\n};\nexport type UsageReportsGetOpenExposureResponse = import(\"../types\").ApiEnvelope<UsageReportsGetOpenExposureResponseData>;\n\nexport type UsageReportsGetCustomerReportsParams = {\n customerId: number;\n};\nexport type UsageReportsGetCustomerReportsQuery = {\n appId?: number;\n customerId?: number;\n limit?: number;\n settledOnly?: boolean;\n};\nexport type UsageReportsGetCustomerReportsBody = undefined;\nexport type UsageReportsGetCustomerReportsResponseData = { reports: UsageOverageReport[]; total: number; };\nexport type UsageReportsGetCustomerReportsResponse = import(\"../types\").ApiEnvelope<UsageReportsGetCustomerReportsResponseData>;\n\nexport type UsageReportsGetCustomerExposureParams = {\n customerId: number;\n};\nexport type UsageReportsGetCustomerExposureQuery = {\n limit?: number;\n};\nexport type UsageReportsGetCustomerExposureBody = undefined;\nexport type UsageReportsGetCustomerExposureResponseData = {\n customerId: number;\n settlementCutoff: string;\n scannedReports: number;\n counts: {\n pendingSettled: number;\n pendingUnsettled: number;\n invoicedUnpaid: number;\n invoicedPaid: number;\n waived: number;\n};\n totalsByCurrency: Record<string, {\n pendingSettled: number;\n pendingUnsettled: number;\n invoicedUnpaid: number;\n invoicedPaid: number;\n waived: number;\n}>;\n netOpenByCurrency: Record<string, number>;\n};\nexport type UsageReportsGetCustomerExposureResponse = import(\"../types\").ApiEnvelope<UsageReportsGetCustomerExposureResponseData>;\n\nexport type UsageReportsWaiveReportParams = {\n reportId: number;\n};\nexport type UsageReportsWaiveReportQuery = {\n\n};\nexport type UsageReportsWaiveReportBody = {\n note?: string | null;\n};\nexport type UsageReportsWaiveReportResponseData = UsageOverageReport;\nexport type UsageReportsWaiveReportResponse = import(\"../types\").ApiEnvelope<UsageReportsWaiveReportResponseData>;\n\nexport type UsageReportsListPricingRulesParams = undefined;\nexport type UsageReportsListPricingRulesQuery = {\n appId?: number;\n isActive?: boolean;\n};\nexport type UsageReportsListPricingRulesBody = undefined;\nexport type UsageReportsListPricingRulesResponseData = { rules: AppOveragePricingRule[]; total: number; };\nexport type UsageReportsListPricingRulesResponse = import(\"../types\").ApiEnvelope<UsageReportsListPricingRulesResponseData>;\n\nexport type UsageReportsCreatePricingRuleParams = undefined;\nexport type UsageReportsCreatePricingRuleQuery = {\n\n};\nexport type UsageReportsCreatePricingRuleBody = {\n externalAppId: number;\n metricKey: string;\n unit?: string | null;\n pricePerUnit: string;\n currency?: string;\n maxDeviationPercent?: string;\n};\nexport type UsageReportsCreatePricingRuleResponseData = AppOveragePricingRule;\nexport type UsageReportsCreatePricingRuleResponse = import(\"../types\").ApiEnvelope<UsageReportsCreatePricingRuleResponseData>;\n\nexport type UsageReportsUpdatePricingRuleParams = {\n id: number;\n};\nexport type UsageReportsUpdatePricingRuleQuery = {\n\n};\nexport type UsageReportsUpdatePricingRuleBody = {\n pricePerUnit?: string;\n maxDeviationPercent?: string;\n isActive?: boolean;\n unit?: string | null;\n};\nexport type UsageReportsUpdatePricingRuleResponseData = AppOveragePricingRule;\nexport type UsageReportsUpdatePricingRuleResponse = import(\"../types\").ApiEnvelope<UsageReportsUpdatePricingRuleResponseData>;\n\nexport type UsageReportsDeletePricingRuleParams = {\n id: number;\n};\nexport type UsageReportsDeletePricingRuleQuery = {\n\n};\nexport type UsageReportsDeletePricingRuleBody = undefined;\nexport type UsageReportsDeletePricingRuleResponseData = AppOveragePricingRule;\nexport type UsageReportsDeletePricingRuleResponse = import(\"../types\").ApiEnvelope<UsageReportsDeletePricingRuleResponseData>;\n\nexport type UsageReportsGetPendingReviewParams = undefined;\nexport type UsageReportsGetPendingReviewQuery = {\n appId?: number;\n customerId?: number;\n limit?: number;\n};\nexport type UsageReportsGetPendingReviewBody = undefined;\nexport type UsageReportsGetPendingReviewResponseData = { reports: UsageOverageReport[]; total: number; };\nexport type UsageReportsGetPendingReviewResponse = import(\"../types\").ApiEnvelope<UsageReportsGetPendingReviewResponseData>;\n\nexport type UsageReportsApproveReviewParams = {\n reportId: number;\n};\nexport type UsageReportsApproveReviewQuery = {\n\n};\nexport type UsageReportsApproveReviewBody = undefined;\nexport type UsageReportsApproveReviewResponseData = UsageOverageReport;\nexport type UsageReportsApproveReviewResponse = import(\"../types\").ApiEnvelope<UsageReportsApproveReviewResponseData>;\n\nexport type UsageReportsListAlertConfigsParams = undefined;\nexport type UsageReportsListAlertConfigsQuery = {\n appId?: number;\n isActive?: boolean;\n};\nexport type UsageReportsListAlertConfigsBody = undefined;\nexport type UsageReportsListAlertConfigsResponseData = { configs: UsageAlertConfig[]; total: number; };\nexport type UsageReportsListAlertConfigsResponse = import(\"../types\").ApiEnvelope<UsageReportsListAlertConfigsResponseData>;\n\nexport type UsageReportsCreateAlertConfigParams = undefined;\nexport type UsageReportsCreateAlertConfigQuery = {\n\n};\nexport type UsageReportsCreateAlertConfigBody = {\n externalAppId: number;\n metricKey: string;\n thresholdPercent: string;\n alertType: \"approaching_limit\" | \"limit_reached\" | \"in_overage\";\n notificationChannel: \"shop_email\" | \"target_app_webhook\" | \"both\";\n};\nexport type UsageReportsCreateAlertConfigResponseData = UsageAlertConfig;\nexport type UsageReportsCreateAlertConfigResponse = import(\"../types\").ApiEnvelope<UsageReportsCreateAlertConfigResponseData>;\n\nexport type UsageReportsUpdateAlertConfigParams = {\n id: number;\n};\nexport type UsageReportsUpdateAlertConfigQuery = {\n\n};\nexport type UsageReportsUpdateAlertConfigBody = {\n thresholdPercent?: string;\n alertType?: \"approaching_limit\" | \"limit_reached\" | \"in_overage\";\n notificationChannel?: \"shop_email\" | \"target_app_webhook\" | \"both\";\n isActive?: boolean;\n};\nexport type UsageReportsUpdateAlertConfigResponseData = UsageAlertConfig;\nexport type UsageReportsUpdateAlertConfigResponse = import(\"../types\").ApiEnvelope<UsageReportsUpdateAlertConfigResponseData>;\n\nexport type UsageReportsListAlertHistoryParams = undefined;\nexport type UsageReportsListAlertHistoryQuery = {\n configId?: number;\n customerId?: number;\n limit?: number;\n};\nexport type UsageReportsListAlertHistoryBody = undefined;\nexport type UsageReportsListAlertHistoryResponseData = { history: UsageAlertHistory[]; total: number; };\nexport type UsageReportsListAlertHistoryResponse = import(\"../types\").ApiEnvelope<UsageReportsListAlertHistoryResponseData>;\n\nexport const apiRoutes_usage_reports = {\n \"usage_reports_get_overview\": {\n method: \"GET\",\n path: \"/usage-reports/overview\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"Get usage-overage operations overview\",\n description: \"Returns operational billing overview including pending/invoiced/waived buckets, app aggregates and critical mapping issues.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsageReportsGetOverviewParams;\n query: UsageReportsGetOverviewQuery;\n body: UsageReportsGetOverviewBody;\n response: UsageReportsGetOverviewResponse;\n responseData: UsageReportsGetOverviewResponseData;\n },\n },\n \"usage_reports_get_pending\": {\n method: \"GET\",\n path: \"/usage-reports/pending\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"List pending usage-overage reports\",\n description: \"Returns pending usage-overage reports with optional filtering by app/customer and optional settled-only cutoff.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsageReportsGetPendingParams;\n query: UsageReportsGetPendingQuery;\n body: UsageReportsGetPendingBody;\n response: UsageReportsGetPendingResponse;\n responseData: UsageReportsGetPendingResponseData;\n },\n },\n \"usage_reports_get_mapping_issues\": {\n method: \"GET\",\n path: \"/usage-reports/mapping-issues\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"List critical usage mapping issues\",\n description: \"Returns pending usage reports with critical mapping warnings that block reliable billing assignment.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsageReportsGetMappingIssuesParams;\n query: UsageReportsGetMappingIssuesQuery;\n body: UsageReportsGetMappingIssuesBody;\n response: UsageReportsGetMappingIssuesResponse;\n responseData: UsageReportsGetMappingIssuesResponseData;\n },\n },\n \"usage_reports_get_open_exposure\": {\n method: \"GET\",\n path: \"/usage-reports/open-exposure\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"Get open usage exposure by customers\",\n description: \"Aggregates open/billable/unsettled/blocked exposure per customer for operational monitoring and prioritization.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsageReportsGetOpenExposureParams;\n query: UsageReportsGetOpenExposureQuery;\n body: UsageReportsGetOpenExposureBody;\n response: UsageReportsGetOpenExposureResponse;\n responseData: UsageReportsGetOpenExposureResponseData;\n },\n },\n \"usage_reports_get_customer_reports\": {\n method: \"GET\",\n path: \"/usage-reports/customer/:customerId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"List usage reports by customer\",\n description: \"Returns usage-overage report records for a single customer, optionally limited.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsageReportsGetCustomerReportsParams;\n query: UsageReportsGetCustomerReportsQuery;\n body: UsageReportsGetCustomerReportsBody;\n response: UsageReportsGetCustomerReportsResponse;\n responseData: UsageReportsGetCustomerReportsResponseData;\n },\n },\n \"usage_reports_get_customer_exposure\": {\n method: \"GET\",\n path: \"/usage-reports/customer/:customerId/exposure\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"Get customer exposure summary\",\n description: \"Returns billing exposure summary for one customer grouped by currency and settlement state.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsageReportsGetCustomerExposureParams;\n query: UsageReportsGetCustomerExposureQuery;\n body: UsageReportsGetCustomerExposureBody;\n response: UsageReportsGetCustomerExposureResponse;\n responseData: UsageReportsGetCustomerExposureResponseData;\n },\n },\n \"usage_reports_waive_report\": {\n method: \"PUT\",\n path: \"/usage-reports/waive/:reportId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"Waive usage-overage report\",\n description: \"Marks one usage-overage report as waived with optional note, excluding it from billable pending exposure.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: UsageReportsWaiveReportParams;\n query: UsageReportsWaiveReportQuery;\n body: UsageReportsWaiveReportBody;\n response: UsageReportsWaiveReportResponse;\n responseData: UsageReportsWaiveReportResponseData;\n },\n },\n \"usage_reports_list_pricing_rules\": {\n method: \"GET\",\n path: \"/usage-reports/pricing-rules\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"List overage pricing rules\",\n description: \"Returns configured pricing rules for overage amount validation, optionally filtered by app.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsageReportsListPricingRulesParams;\n query: UsageReportsListPricingRulesQuery;\n body: UsageReportsListPricingRulesBody;\n response: UsageReportsListPricingRulesResponse;\n responseData: UsageReportsListPricingRulesResponseData;\n },\n },\n \"usage_reports_create_pricing_rule\": {\n method: \"POST\",\n path: \"/usage-reports/pricing-rules\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"Create overage pricing rule\",\n description: \"Creates a new pricing rule used to validate overage amounts from external apps.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: UsageReportsCreatePricingRuleParams;\n query: UsageReportsCreatePricingRuleQuery;\n body: UsageReportsCreatePricingRuleBody;\n response: UsageReportsCreatePricingRuleResponse;\n responseData: UsageReportsCreatePricingRuleResponseData;\n },\n },\n \"usage_reports_update_pricing_rule\": {\n method: \"PUT\",\n path: \"/usage-reports/pricing-rules/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"Update overage pricing rule\",\n description: \"Updates an existing pricing rule (price, deviation threshold, active status).\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: UsageReportsUpdatePricingRuleParams;\n query: UsageReportsUpdatePricingRuleQuery;\n body: UsageReportsUpdatePricingRuleBody;\n response: UsageReportsUpdatePricingRuleResponse;\n responseData: UsageReportsUpdatePricingRuleResponseData;\n },\n },\n \"usage_reports_delete_pricing_rule\": {\n method: \"DELETE\",\n path: \"/usage-reports/pricing-rules/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"Deactivate overage pricing rule\",\n description: \"Soft-deletes a pricing rule by setting isActive to false.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsageReportsDeletePricingRuleParams;\n query: UsageReportsDeletePricingRuleQuery;\n body: UsageReportsDeletePricingRuleBody;\n response: UsageReportsDeletePricingRuleResponse;\n responseData: UsageReportsDeletePricingRuleResponseData;\n },\n },\n \"usage_reports_get_pending_review\": {\n method: \"GET\",\n path: \"/usage-reports/pending-review\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"List reports pending pricing review\",\n description: \"Returns usage-overage reports with billing status pending_review due to pricing deviation >50%.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsageReportsGetPendingReviewParams;\n query: UsageReportsGetPendingReviewQuery;\n body: UsageReportsGetPendingReviewBody;\n response: UsageReportsGetPendingReviewResponse;\n responseData: UsageReportsGetPendingReviewResponseData;\n },\n },\n \"usage_reports_approve_review\": {\n method: \"PUT\",\n path: \"/usage-reports/approve-review/:reportId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"Approve pending-review report for billing\",\n description: \"Transitions a report from pending_review to pending, allowing it to be invoiced.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsageReportsApproveReviewParams;\n query: UsageReportsApproveReviewQuery;\n body: UsageReportsApproveReviewBody;\n response: UsageReportsApproveReviewResponse;\n responseData: UsageReportsApproveReviewResponseData;\n },\n },\n \"usage_reports_list_alert_configs\": {\n method: \"GET\",\n path: \"/usage-reports/alert-configs\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"List usage alert configurations\",\n description: \"Returns configured usage alert thresholds for limit warnings.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsageReportsListAlertConfigsParams;\n query: UsageReportsListAlertConfigsQuery;\n body: UsageReportsListAlertConfigsBody;\n response: UsageReportsListAlertConfigsResponse;\n responseData: UsageReportsListAlertConfigsResponseData;\n },\n },\n \"usage_reports_create_alert_config\": {\n method: \"POST\",\n path: \"/usage-reports/alert-configs\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"Create usage alert configuration\",\n description: \"Creates a new alert threshold for usage limit warnings.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: UsageReportsCreateAlertConfigParams;\n query: UsageReportsCreateAlertConfigQuery;\n body: UsageReportsCreateAlertConfigBody;\n response: UsageReportsCreateAlertConfigResponse;\n responseData: UsageReportsCreateAlertConfigResponseData;\n },\n },\n \"usage_reports_update_alert_config\": {\n method: \"PUT\",\n path: \"/usage-reports/alert-configs/:id\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"Update usage alert configuration\",\n description: \"Updates an existing alert threshold configuration.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: UsageReportsUpdateAlertConfigParams;\n query: UsageReportsUpdateAlertConfigQuery;\n body: UsageReportsUpdateAlertConfigBody;\n response: UsageReportsUpdateAlertConfigResponse;\n responseData: UsageReportsUpdateAlertConfigResponseData;\n },\n },\n \"usage_reports_list_alert_history\": {\n method: \"GET\",\n path: \"/usage-reports/alert-history\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"usage-reports\"],\n summary: \"List usage alert history\",\n description: \"Returns sent usage alert records for audit and monitoring.\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsageReportsListAlertHistoryParams;\n query: UsageReportsListAlertHistoryQuery;\n body: UsageReportsListAlertHistoryBody;\n response: UsageReportsListAlertHistoryResponse;\n responseData: UsageReportsListAlertHistoryResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { ShopUser, UserWithStats } from \"../../frontend-types\";\n\nexport type UserActivityUsersStatsListParams = undefined;\nexport type UserActivityUsersStatsListQuery = {\n\n};\nexport type UserActivityUsersStatsListBody = undefined;\nexport type UserActivityUsersStatsListResponseData = UserWithStats[];\nexport type UserActivityUsersStatsListResponse = import(\"../types\").ApiEnvelope<UserActivityUsersStatsListResponseData>;\n\nexport type UserActivityOverviewGetParams = {\n userId: number;\n};\nexport type UserActivityOverviewGetQuery = undefined;\nexport type UserActivityOverviewGetBody = {\n search?: string;\n page?: number;\n resultsPerPage?: number;\n statusCodes?: Array<number>;\n date?: string;\n startDate?: string;\n endDate?: string;\n days?: number;\n};\nexport type UserActivityOverviewGetResponseData = { data: Array<{ user: ShopUser; activityOverview: any }>; pagination: { page: number; resultsPerPage: number; totalPages: number; totalResults: number; availableStatusCodes: number[] } };\nexport type UserActivityOverviewGetResponse = import(\"../types\").ApiEnvelope<UserActivityOverviewGetResponseData>;\n\nexport const apiRoutes_user_activity = {\n \"user_activity_users_stats_list\": {\n method: \"GET\",\n path: \"/user-activity/users\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"users_view\"},\n meta: {\n tags: [\"user-activity\"],\n summary: \"List users with activity stats\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UserActivityUsersStatsListParams;\n query: UserActivityUsersStatsListQuery;\n body: UserActivityUsersStatsListBody;\n response: UserActivityUsersStatsListResponse;\n responseData: UserActivityUsersStatsListResponseData;\n },\n },\n \"user_activity_overview_get\": {\n method: \"POST\",\n path: \"/user-activity/user/:userId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"users_view\"},\n meta: {\n tags: [\"user-activity\"],\n summary: \"Get detailed activity overview for a user\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: UserActivityOverviewGetParams;\n query: UserActivityOverviewGetQuery;\n body: UserActivityOverviewGetBody;\n response: UserActivityOverviewGetResponse;\n responseData: UserActivityOverviewGetResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { PaginatedResult, ShopUser } from \"../../frontend-types\";\n\nexport type UsersCreateParams = undefined;\nexport type UsersCreateQuery = undefined;\nexport type UsersCreateBody = {\n externalUserId: string;\n email?: string;\n firstName?: string;\n lastName?: string;\n};\nexport type UsersCreateResponseData = ShopUser;\nexport type UsersCreateResponse = import(\"../types\").ApiEnvelope<UsersCreateResponseData>;\n\nexport type UsersDeleteExternalParams = {\n frontendUserId: number;\n};\nexport type UsersDeleteExternalQuery = undefined;\nexport type UsersDeleteExternalBody = undefined;\nexport type UsersDeleteExternalResponseData = ShopUser;\nexport type UsersDeleteExternalResponse = import(\"../types\").ApiEnvelope<UsersDeleteExternalResponseData>;\n\nexport type UsersUpdateExternalParams = {\n frontendUserId: number;\n};\nexport type UsersUpdateExternalQuery = undefined;\nexport type UsersUpdateExternalBody = {\n firstName?: string;\n lastName?: string;\n};\nexport type UsersUpdateExternalResponseData = ShopUser;\nexport type UsersUpdateExternalResponse = import(\"../types\").ApiEnvelope<UsersUpdateExternalResponseData>;\n\nexport type UsersDeleteParams = {\n userId: number;\n};\nexport type UsersDeleteQuery = undefined;\nexport type UsersDeleteBody = undefined;\nexport type UsersDeleteResponseData = ShopUser;\nexport type UsersDeleteResponse = import(\"../types\").ApiEnvelope<UsersDeleteResponseData>;\n\nexport type UsersListParams = undefined;\nexport type UsersListQuery = {\n\n};\nexport type UsersListBody = undefined;\nexport type UsersListResponseData = ShopUser[];\nexport type UsersListResponse = import(\"../types\").ApiEnvelope<UsersListResponseData>;\n\nexport type UsersGetByEmailParams = {\n email: string;\n};\nexport type UsersGetByEmailQuery = undefined;\nexport type UsersGetByEmailBody = undefined;\nexport type UsersGetByEmailResponseData = ShopUser;\nexport type UsersGetByEmailResponse = import(\"../types\").ApiEnvelope<UsersGetByEmailResponseData>;\n\nexport type UsersGetByExternalUserIdParams = {\n externalUserId: number;\n};\nexport type UsersGetByExternalUserIdQuery = undefined;\nexport type UsersGetByExternalUserIdBody = undefined;\nexport type UsersGetByExternalUserIdResponseData = ShopUser;\nexport type UsersGetByExternalUserIdResponse = import(\"../types\").ApiEnvelope<UsersGetByExternalUserIdResponseData>;\n\nexport type UsersGetByIdParams = {\n userId: number;\n};\nexport type UsersGetByIdQuery = {\n\n};\nexport type UsersGetByIdBody = undefined;\nexport type UsersGetByIdResponseData = ShopUser;\nexport type UsersGetByIdResponse = import(\"../types\").ApiEnvelope<UsersGetByIdResponseData>;\n\nexport type UsersSearchParams = undefined;\nexport type UsersSearchQuery = {\n search?: string;\n page?: number;\n pageSize?: number;\n};\nexport type UsersSearchBody = undefined;\nexport type UsersSearchResponseData = PaginatedResult<ShopUser>;\nexport type UsersSearchResponse = import(\"../types\").ApiEnvelope<UsersSearchResponseData>;\n\nexport const apiRoutes_users = {\n \"users_create\": {\n method: \"POST\",\n path: \"/users/create\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"users\"],\n summary: \"Create user\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: UsersCreateParams;\n query: UsersCreateQuery;\n body: UsersCreateBody;\n response: UsersCreateResponse;\n responseData: UsersCreateResponseData;\n },\n },\n \"users_delete_external\": {\n method: \"DELETE\",\n path: \"/users/delete/external/:frontendUserId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"users\"],\n summary: \"Delete own user via external user id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: UsersDeleteExternalParams;\n query: UsersDeleteExternalQuery;\n body: UsersDeleteExternalBody;\n response: UsersDeleteExternalResponse;\n responseData: UsersDeleteExternalResponseData;\n },\n },\n \"users_update_external\": {\n method: \"PUT\",\n path: \"/users/update/external/:frontendUserId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"users\"],\n summary: \"Update own user profile via external user id\",\n bodyContentType: \"application/json\",\n validated: {\"params\":true,\"query\":false,\"body\":true},\n },\n types: null as unknown as {\n params: UsersUpdateExternalParams;\n query: UsersUpdateExternalQuery;\n body: UsersUpdateExternalBody;\n response: UsersUpdateExternalResponse;\n responseData: UsersUpdateExternalResponseData;\n },\n },\n \"users_delete\": {\n method: \"DELETE\",\n path: \"/users/delete/:userId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"users_manage\"},\n meta: {\n tags: [\"users\"],\n summary: \"Delete user by internal id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: UsersDeleteParams;\n query: UsersDeleteQuery;\n body: UsersDeleteBody;\n response: UsersDeleteResponse;\n responseData: UsersDeleteResponseData;\n },\n },\n \"users_list\": {\n method: \"GET\",\n path: \"/users/getAll\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"users_view\"},\n meta: {\n tags: [\"users\"],\n summary: \"List all users\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsersListParams;\n query: UsersListQuery;\n body: UsersListBody;\n response: UsersListResponse;\n responseData: UsersListResponseData;\n },\n },\n \"users_get_by_email\": {\n method: \"GET\",\n path: \"/users/getByEmail/:email\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"users_view\"},\n meta: {\n tags: [\"users\"],\n summary: \"Get user by email\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: UsersGetByEmailParams;\n query: UsersGetByEmailQuery;\n body: UsersGetByEmailBody;\n response: UsersGetByEmailResponse;\n responseData: UsersGetByEmailResponseData;\n },\n },\n \"users_get_by_external_user_id\": {\n method: \"GET\",\n path: \"/users/getByExternalUserId/:externalUserId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"users\"],\n summary: \"Get user by external user id\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: UsersGetByExternalUserIdParams;\n query: UsersGetByExternalUserIdQuery;\n body: UsersGetByExternalUserIdBody;\n response: UsersGetByExternalUserIdResponse;\n responseData: UsersGetByExternalUserIdResponseData;\n },\n },\n \"users_get_by_id\": {\n method: \"GET\",\n path: \"/users/getById/:userId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"users\"],\n summary: \"Get user by internal id\",\n description: \"Controller enforces self-access or `users_view` permission.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsersGetByIdParams;\n query: UsersGetByIdQuery;\n body: UsersGetByIdBody;\n response: UsersGetByIdResponse;\n responseData: UsersGetByIdResponseData;\n },\n },\n \"users_search\": {\n method: \"GET\",\n path: \"/users/search\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"users_view\"},\n meta: {\n tags: [\"users\"],\n summary: \"Search users\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: UsersSearchParams;\n query: UsersSearchQuery;\n body: UsersSearchBody;\n response: UsersSearchResponse;\n responseData: UsersSearchResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { VariantEntitlement } from \"../../frontend-types\";\n\nexport type VariantEntitlementsAssignParams = undefined;\nexport type VariantEntitlementsAssignQuery = {\n\n};\nexport type VariantEntitlementsAssignBody = {\n variantId: number;\n entitlementId: number;\n validFrom?: string | null;\n expiresAt?: string | null;\n};\nexport type VariantEntitlementsAssignResponseData = VariantEntitlement;\nexport type VariantEntitlementsAssignResponse = import(\"../types\").ApiEnvelope<VariantEntitlementsAssignResponseData>;\n\nexport type VariantEntitlementsRemoveParams = {\n variantId: number;\n entitlementId: number;\n};\nexport type VariantEntitlementsRemoveQuery = {\n\n};\nexport type VariantEntitlementsRemoveBody = undefined;\nexport type VariantEntitlementsRemoveResponseData = null;\nexport type VariantEntitlementsRemoveResponse = import(\"../types\").ApiEnvelope<VariantEntitlementsRemoveResponseData>;\n\nexport type VariantEntitlementsGetVariantsUsingParams = {\n entitlementId: number;\n};\nexport type VariantEntitlementsGetVariantsUsingQuery = {\n\n};\nexport type VariantEntitlementsGetVariantsUsingBody = undefined;\nexport type VariantEntitlementsGetVariantsUsingResponseData = {\n variantIds: Array<number>;\n variantCount: number;\n};\nexport type VariantEntitlementsGetVariantsUsingResponse = import(\"../types\").ApiEnvelope<VariantEntitlementsGetVariantsUsingResponseData>;\n\nexport type VariantEntitlementsGetForVariantParams = {\n variantId: number;\n};\nexport type VariantEntitlementsGetForVariantQuery = {\n\n};\nexport type VariantEntitlementsGetForVariantBody = undefined;\nexport type VariantEntitlementsGetForVariantResponseData = VariantEntitlement[];\nexport type VariantEntitlementsGetForVariantResponse = import(\"../types\").ApiEnvelope<VariantEntitlementsGetForVariantResponseData>;\n\nexport const apiRoutes_variant_entitlements = {\n \"variant_entitlements_assign\": {\n method: \"POST\",\n path: \"/variant-entitlements/assign\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"variant-entitlements\"],\n summary: \"Assign entitlement to variant\",\n description: \"Creates one variant-entitlement assignment. Validation ensures the variant and entitlement are compatible and active.\",\n bodyContentType: \"application/json\",\n validated: {\"params\":false,\"query\":true,\"body\":true},\n },\n types: null as unknown as {\n params: VariantEntitlementsAssignParams;\n query: VariantEntitlementsAssignQuery;\n body: VariantEntitlementsAssignBody;\n response: VariantEntitlementsAssignResponse;\n responseData: VariantEntitlementsAssignResponseData;\n },\n },\n \"variant_entitlements_remove\": {\n method: \"DELETE\",\n path: \"/variant-entitlements/remove/:variantId/:entitlementId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"variant-entitlements\"],\n summary: \"Remove entitlement from variant\",\n description: \"Removes one entitlement assignment from a variant when safety checks allow it.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: VariantEntitlementsRemoveParams;\n query: VariantEntitlementsRemoveQuery;\n body: VariantEntitlementsRemoveBody;\n response: VariantEntitlementsRemoveResponse;\n responseData: VariantEntitlementsRemoveResponseData;\n },\n },\n \"variant_entitlements_get_variants_using\": {\n method: \"GET\",\n path: \"/variant-entitlements/variants-using/:entitlementId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"variant-entitlements\"],\n summary: \"List variants using entitlement\",\n description: \"Returns variant ids currently linked to one entitlement id.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: VariantEntitlementsGetVariantsUsingParams;\n query: VariantEntitlementsGetVariantsUsingQuery;\n body: VariantEntitlementsGetVariantsUsingBody;\n response: VariantEntitlementsGetVariantsUsingResponse;\n responseData: VariantEntitlementsGetVariantsUsingResponseData;\n },\n },\n \"variant_entitlements_get_for_variant\": {\n method: \"GET\",\n path: \"/variant-entitlements/entitlements-for-variant/:variantId\",\n auth: {\"type\":\"frontend_bearer_http\"},\n meta: {\n tags: [\"variant-entitlements\"],\n summary: \"List entitlements for variant\",\n description: \"Returns all entitlement assignments for one variant, including expired ones.\",\n validated: {\"params\":true,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: VariantEntitlementsGetForVariantParams;\n query: VariantEntitlementsGetForVariantQuery;\n body: VariantEntitlementsGetForVariantBody;\n response: VariantEntitlementsGetForVariantResponse;\n responseData: VariantEntitlementsGetForVariantResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nimport type { PaginatedResult, Webhook } from \"../../frontend-types\";\n\nexport type WebhooksListParams = undefined;\nexport type WebhooksListQuery = {\n search?: string;\n page?: number;\n pageSize?: number;\n provider?: string;\n eventType?: string;\n status?: \"pending\" | \"processed\" | \"failed\" | \"skipped\";\n processed?: boolean;\n externalId?: string;\n dateFrom?: string;\n dateTo?: string;\n sortBy?: \"createdAt\" | \"processedAt\" | \"status\";\n sortOrder?: \"asc\" | \"desc\";\n};\nexport type WebhooksListBody = undefined;\nexport type WebhooksListResponseData = { webhooks: PaginatedResult<Webhook>; canDelete: boolean };\nexport type WebhooksListResponse = import(\"../types\").ApiEnvelope<WebhooksListResponseData>;\n\nexport type WebhooksDeleteParams = {\n webhookId: number;\n};\nexport type WebhooksDeleteQuery = undefined;\nexport type WebhooksDeleteBody = undefined;\nexport type WebhooksDeleteResponseData = null;\nexport type WebhooksDeleteResponse = WebhooksDeleteResponseData;\n\nexport type WebhooksDeleteBulkParams = {\n webhookIds: string;\n};\nexport type WebhooksDeleteBulkQuery = undefined;\nexport type WebhooksDeleteBulkBody = undefined;\nexport type WebhooksDeleteBulkResponseData = null;\nexport type WebhooksDeleteBulkResponse = WebhooksDeleteBulkResponseData;\n\nexport const apiRoutes_webhooks = {\n \"webhooks_list\": {\n method: \"GET\",\n path: \"/webhooks/search\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"webhook_view\"},\n meta: {\n tags: [\"webhooks\"],\n summary: \"Search webhooks\",\n validated: {\"params\":false,\"query\":true,\"body\":false},\n },\n types: null as unknown as {\n params: WebhooksListParams;\n query: WebhooksListQuery;\n body: WebhooksListBody;\n response: WebhooksListResponse;\n responseData: WebhooksListResponseData;\n },\n },\n \"webhooks_delete\": {\n method: \"DELETE\",\n path: \"/webhooks/delete/:webhookId\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"webhook_delete\"},\n meta: {\n tags: [\"webhooks\"],\n summary: \"Delete one webhook\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: WebhooksDeleteParams;\n query: WebhooksDeleteQuery;\n body: WebhooksDeleteBody;\n response: WebhooksDeleteResponse;\n responseData: WebhooksDeleteResponseData;\n },\n },\n \"webhooks_delete_bulk\": {\n method: \"DELETE\",\n path: \"/webhooks/delete/mass/:webhookIds\",\n auth: {\"type\":\"frontend_permission_http\",\"permission\":\"webhook_delete\"},\n meta: {\n tags: [\"webhooks\"],\n summary: \"Delete multiple webhooks\",\n validated: {\"params\":true,\"query\":false,\"body\":false},\n },\n types: null as unknown as {\n params: WebhooksDeleteBulkParams;\n query: WebhooksDeleteBulkQuery;\n body: WebhooksDeleteBulkBody;\n response: WebhooksDeleteBulkResponse;\n responseData: WebhooksDeleteBulkResponseData;\n },\n },\n} as const;","// AUTO-GENERATED FILE - DO NOT EDIT MANUALLY\n// Run `pnpm run api:generate` to regenerate\n\nexport * from \"./types\";\nexport * from \"./catalog\";\nexport * from \"./base/routes.api\";\nexport * from \"./base/routes.app_info\";\nexport * from \"./features/routes.assigned_entitlements\";\nexport * from \"./features/routes.attribute_assignments\";\nexport * from \"./features/routes.attribute_categories\";\nexport * from \"./features/routes.attribute_options\";\nexport * from \"./features/routes.attributes\";\nexport * from \"./features/routes.b2b\";\nexport * from \"./features/routes.brands\";\nexport * from \"./features/routes.credits\";\nexport * from \"./features/routes.customers\";\nexport * from \"./features/routes.data_exchange\";\nexport * from \"./features/routes.designs\";\nexport * from \"./features/routes.discount_codes\";\nexport * from \"./features/routes.entitlement_limits\";\nexport * from \"./base/routes.entitlements\";\nexport * from \"./features/routes.events\";\nexport * from \"./features/routes.external_apps\";\nexport * from \"./features/routes.fulfillment\";\nexport * from \"./features/routes.iap\";\nexport * from \"./features/routes.invoices\";\nexport * from \"./features/routes.item_variants\";\nexport * from \"./features/routes.lager_inventory\";\nexport * from \"./features/routes.logs\";\nexport * from \"./features/routes.media_sets\";\nexport * from \"./features/routes.oauth2\";\nexport * from \"./features/routes.orders\";\nexport * from \"./features/routes.payments\";\nexport * from \"./features/routes.paypal\";\nexport * from \"./base/routes.permissions\";\nexport * from \"./features/routes.product_categories\";\nexport * from \"./features/routes.product_items\";\nexport * from \"./features/routes.products\";\nexport * from \"./base/routes.roles\";\nexport * from \"./features/routes.sender_brands\";\nexport * from \"./base/routes.settings\";\nexport * from \"./features/routes.status_changes\";\nexport * from \"./features/routes.stripe\";\nexport * from \"./features/routes.subscriptions\";\nexport * from \"./features/routes.suppliers\";\nexport * from \"./features/routes.tickets\";\nexport * from \"./features/routes.translations\";\nexport * from \"./features/routes.usage_reports\";\nexport * from \"./base/routes.user_activity\";\nexport * from \"./base/routes.users\";\nexport * from \"./features/routes.variant_entitlements\";\nexport * from \"./base/routes.webhooks\";\n\nimport type { ApiEnvelope } from \"./types\";\nimport { apiRoutes_api } from \"./base/routes.api\";\nimport { apiRoutes_app_info } from \"./base/routes.app_info\";\nimport { apiRoutes_assigned_entitlements } from \"./features/routes.assigned_entitlements\";\nimport { apiRoutes_attribute_assignments } from \"./features/routes.attribute_assignments\";\nimport { apiRoutes_attribute_categories } from \"./features/routes.attribute_categories\";\nimport { apiRoutes_attribute_options } from \"./features/routes.attribute_options\";\nimport { apiRoutes_attributes } from \"./features/routes.attributes\";\nimport { apiRoutes_b2b } from \"./features/routes.b2b\";\nimport { apiRoutes_brands } from \"./features/routes.brands\";\nimport { apiRoutes_credits } from \"./features/routes.credits\";\nimport { apiRoutes_customers } from \"./features/routes.customers\";\nimport { apiRoutes_data_exchange } from \"./features/routes.data_exchange\";\nimport { apiRoutes_designs } from \"./features/routes.designs\";\nimport { apiRoutes_discount_codes } from \"./features/routes.discount_codes\";\nimport { apiRoutes_entitlement_limits } from \"./features/routes.entitlement_limits\";\nimport { apiRoutes_entitlements } from \"./base/routes.entitlements\";\nimport { apiRoutes_events } from \"./features/routes.events\";\nimport { apiRoutes_external_apps } from \"./features/routes.external_apps\";\nimport { apiRoutes_fulfillment } from \"./features/routes.fulfillment\";\nimport { apiRoutes_iap } from \"./features/routes.iap\";\nimport { apiRoutes_invoices } from \"./features/routes.invoices\";\nimport { apiRoutes_item_variants } from \"./features/routes.item_variants\";\nimport { apiRoutes_lager_inventory } from \"./features/routes.lager_inventory\";\nimport { apiRoutes_logs } from \"./features/routes.logs\";\nimport { apiRoutes_media_sets } from \"./features/routes.media_sets\";\nimport { apiRoutes_oauth2 } from \"./features/routes.oauth2\";\nimport { apiRoutes_orders } from \"./features/routes.orders\";\nimport { apiRoutes_payments } from \"./features/routes.payments\";\nimport { apiRoutes_paypal } from \"./features/routes.paypal\";\nimport { apiRoutes_permissions } from \"./base/routes.permissions\";\nimport { apiRoutes_product_categories } from \"./features/routes.product_categories\";\nimport { apiRoutes_product_items } from \"./features/routes.product_items\";\nimport { apiRoutes_products } from \"./features/routes.products\";\nimport { apiRoutes_roles } from \"./base/routes.roles\";\nimport { apiRoutes_sender_brands } from \"./features/routes.sender_brands\";\nimport { apiRoutes_settings } from \"./base/routes.settings\";\nimport { apiRoutes_status_changes } from \"./features/routes.status_changes\";\nimport { apiRoutes_stripe } from \"./features/routes.stripe\";\nimport { apiRoutes_subscriptions } from \"./features/routes.subscriptions\";\nimport { apiRoutes_suppliers } from \"./features/routes.suppliers\";\nimport { apiRoutes_tickets } from \"./features/routes.tickets\";\nimport { apiRoutes_translations } from \"./features/routes.translations\";\nimport { apiRoutes_usage_reports } from \"./features/routes.usage_reports\";\nimport { apiRoutes_user_activity } from \"./base/routes.user_activity\";\nimport { apiRoutes_users } from \"./base/routes.users\";\nimport { apiRoutes_variant_entitlements } from \"./features/routes.variant_entitlements\";\nimport { apiRoutes_webhooks } from \"./base/routes.webhooks\";\n\nexport const apiRoutes = {\n ...apiRoutes_api,\n ...apiRoutes_app_info,\n ...apiRoutes_assigned_entitlements,\n ...apiRoutes_attribute_assignments,\n ...apiRoutes_attribute_categories,\n ...apiRoutes_attribute_options,\n ...apiRoutes_attributes,\n ...apiRoutes_b2b,\n ...apiRoutes_brands,\n ...apiRoutes_credits,\n ...apiRoutes_customers,\n ...apiRoutes_data_exchange,\n ...apiRoutes_designs,\n ...apiRoutes_discount_codes,\n ...apiRoutes_entitlement_limits,\n ...apiRoutes_entitlements,\n ...apiRoutes_events,\n ...apiRoutes_external_apps,\n ...apiRoutes_fulfillment,\n ...apiRoutes_iap,\n ...apiRoutes_invoices,\n ...apiRoutes_item_variants,\n ...apiRoutes_lager_inventory,\n ...apiRoutes_logs,\n ...apiRoutes_media_sets,\n ...apiRoutes_oauth2,\n ...apiRoutes_orders,\n ...apiRoutes_payments,\n ...apiRoutes_paypal,\n ...apiRoutes_permissions,\n ...apiRoutes_product_categories,\n ...apiRoutes_product_items,\n ...apiRoutes_products,\n ...apiRoutes_roles,\n ...apiRoutes_sender_brands,\n ...apiRoutes_settings,\n ...apiRoutes_status_changes,\n ...apiRoutes_stripe,\n ...apiRoutes_subscriptions,\n ...apiRoutes_suppliers,\n ...apiRoutes_tickets,\n ...apiRoutes_translations,\n ...apiRoutes_usage_reports,\n ...apiRoutes_user_activity,\n ...apiRoutes_users,\n ...apiRoutes_variant_entitlements,\n ...apiRoutes_webhooks,\n} as const;\n\nexport type ApiRouteKey = keyof typeof apiRoutes;\nexport type ApiRoute<K extends ApiRouteKey> = (typeof apiRoutes)[K];\nexport type ApiRequest<K extends ApiRouteKey> = ApiRoute<K>[\"types\"];\nexport type ApiResponse<K extends ApiRouteKey> = ApiRoute<K>[\"types\"][\"response\"];\nexport type ApiResponseData<K extends ApiRouteKey> = ApiRoute<K>[\"types\"][\"responseData\"];\n\nexport type { ApiEnvelope };","/** Stable production endpoint used when no override or resolver is supplied. */\nexport const SHOP_API_URL = \"https://node-shop-production-86b7.up.railway.app\";\n","export type ShopErrorDetails = {\n status: number;\n method: string;\n path: string;\n routeKey: string;\n requestId?: string;\n responseBody?: unknown;\n cause?: unknown;\n};\n\nexport class ShopApiError extends Error {\n readonly status: number;\n readonly method: string;\n readonly path: string;\n readonly routeKey: string;\n readonly requestId?: string;\n readonly responseBody?: unknown;\n\n constructor(message: string, details: ShopErrorDetails) {\n super(message, { cause: details.cause });\n this.name = \"ShopApiError\";\n this.status = details.status;\n this.method = details.method;\n this.path = details.path;\n this.routeKey = details.routeKey;\n this.requestId = details.requestId;\n this.responseBody = details.responseBody;\n }\n}\n\nexport class ShopConfigurationError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"ShopConfigurationError\";\n }\n}\n","import { ShopConfigurationError } from \"./error\";\n\ntype QueryValue = string | number | boolean | bigint | Date | null | undefined;\n\nexport function normalizeBaseUrl(value: string): string {\n const trimmed = value.trim().replace(/\\/+$/, \"\");\n if (!trimmed) throw new ShopConfigurationError(\"node-shop base URL must not be empty\");\n\n let url: URL;\n try {\n url = new URL(trimmed);\n } catch {\n throw new ShopConfigurationError(`Invalid node-shop base URL: ${trimmed}`);\n }\n\n if (url.protocol !== \"https:\" && url.protocol !== \"http:\") {\n throw new ShopConfigurationError(\"node-shop base URL must use http or https\");\n }\n\n return trimmed;\n}\n\nexport function buildPath(\n template: string,\n params?: Record<string, unknown>,\n query?: Record<string, unknown>,\n): string {\n const used = new Set<string>();\n const path = template.replace(/:([A-Za-z0-9_]+)/g, (_, key: string) => {\n const value = params?.[key];\n if (value === undefined || value === null || value === \"\") {\n throw new ShopConfigurationError(`Missing path parameter \\\"${key}\\\" for ${template}`);\n }\n used.add(key);\n return encodeURIComponent(String(value));\n });\n\n for (const key of Object.keys(params ?? {})) {\n if (!used.has(key)) throw new ShopConfigurationError(`Unexpected path parameter \\\"${key}\\\" for ${template}`);\n }\n\n const search = new URLSearchParams();\n for (const [key, rawValue] of Object.entries(query ?? {})) {\n const values = Array.isArray(rawValue) ? rawValue : [rawValue];\n for (const value of values as QueryValue[]) {\n if (value === undefined || value === null) continue;\n search.append(key, value instanceof Date ? value.toISOString() : String(value));\n }\n }\n\n const suffix = search.toString();\n return suffix ? `${path}?${suffix}` : path;\n}\n","import { apiRoutes } from \"../generated/api/index\";\nimport { SHOP_API_URL } from \"../constants\";\nimport { ShopApiError, ShopConfigurationError } from \"./error\";\nimport type {\n HeaderProvider,\n ShopClient,\n ShopClientOptions,\n ShopRequestContext,\n ShopRequestOptions,\n ShopRouteInput,\n ShopRouteKey,\n ShopRouteResponseData,\n} from \"./types\";\nimport { buildPath, normalizeBaseUrl } from \"./url\";\n\nconst RETRYABLE_STATUS = new Set([408, 425, 429, 500, 502, 503, 504]);\nconst SAFE_METHODS = new Set([\"GET\", \"HEAD\", \"OPTIONS\"]);\n\ntype Envelope = { success?: unknown; message?: unknown; data?: unknown; error?: unknown };\n\nfunction mergeHeaders(...sources: Array<HeadersInit | undefined>): Headers {\n const result = new Headers();\n for (const source of sources) {\n if (!source) continue;\n new Headers(source).forEach((value, key) => result.set(key, value));\n }\n return result;\n}\n\nfunction parseRetryAfter(value: string | null): number | undefined {\n if (!value) return undefined;\n const seconds = Number(value);\n if (Number.isFinite(seconds)) return Math.max(0, seconds * 1_000);\n const at = Date.parse(value);\n return Number.isNaN(at) ? undefined : Math.max(0, at - Date.now());\n}\n\nfunction delay(ms: number, signal?: AbortSignal): Promise<void> {\n if (signal?.aborted) return Promise.reject(signal.reason);\n return new Promise((resolve, reject) => {\n const timer = setTimeout(resolve, ms);\n signal?.addEventListener(\"abort\", () => {\n clearTimeout(timer);\n reject(signal.reason);\n }, { once: true });\n });\n}\n\nfunction createRequestSignal(signal: AbortSignal | undefined, timeoutMs: number): {\n signal: AbortSignal;\n cleanup: () => void;\n} {\n const controller = new AbortController();\n const onAbort = () => controller.abort(signal?.reason);\n signal?.addEventListener(\"abort\", onAbort, { once: true });\n if (signal?.aborted) controller.abort(signal.reason);\n const timer = setTimeout(() => controller.abort(new Error(`Request timed out after ${timeoutMs}ms`)), timeoutMs);\n return {\n signal: controller.signal,\n cleanup: () => {\n clearTimeout(timer);\n signal?.removeEventListener(\"abort\", onAbort);\n },\n };\n}\n\nasync function readBody(response: Response): Promise<unknown> {\n if (response.status === 204) return null;\n const text = await response.text();\n if (!text) return null;\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n if (!contentType.includes(\"json\")) return text;\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n}\n\nfunction errorMessage(body: unknown, fallback: string): string {\n if (body && typeof body === \"object\") {\n const value = body as Envelope;\n if (typeof value.message === \"string\" && value.message) return value.message;\n if (typeof value.error === \"string\" && value.error) return value.error;\n }\n return fallback;\n}\n\nasync function resolveHeaders(\n provider: HeadersInit | HeaderProvider | undefined,\n context: ShopRequestContext,\n): Promise<HeadersInit | undefined> {\n return typeof provider === \"function\" ? provider(context) : provider;\n}\n\nexport function createShopClient(options: ShopClientOptions = {}): ShopClient {\n const baseUrl = options.baseUrl ?? SHOP_API_URL;\n const fetchImpl = options.fetch ?? globalThis.fetch;\n if (!fetchImpl) throw new ShopConfigurationError(\"No fetch implementation is available\");\n const defaultTimeoutMs = options.timeoutMs ?? 30_000;\n const defaultRetries = options.retries ?? 2;\n const retryDelayMs = options.retryDelayMs ?? 250;\n\n async function resolveBaseUrl(): Promise<string> {\n const value = typeof baseUrl === \"function\" ? await baseUrl() : baseUrl;\n return normalizeBaseUrl(value);\n }\n\n async function requestRaw<K extends ShopRouteKey>(\n routeKey: K,\n input: ShopRouteInput<K>,\n requestOptions: ShopRequestOptions = {},\n ): Promise<Response> {\n const route = apiRoutes[routeKey];\n if (!route) throw new ShopConfigurationError(`Unknown node-shop route: ${String(routeKey)}`);\n const values = input as { params?: Record<string, unknown>; query?: Record<string, unknown>; body?: unknown };\n const path = buildPath(route.path, values.params, values.query);\n const context: ShopRequestContext = {\n routeKey,\n method: route.method,\n path,\n authType: route.auth.type,\n };\n const configuredHeaders = await resolveHeaders(options.headers, context);\n const headers = mergeHeaders({ Accept: \"application/json\" }, configuredHeaders, requestOptions.headers);\n const hasBody = values.body !== undefined && route.method !== \"GET\";\n if (hasBody && !headers.has(\"content-type\")) headers.set(\"content-type\", \"application/json\");\n const body = hasBody ? JSON.stringify(values.body) : undefined;\n const retries = Math.max(0, requestOptions.retries ?? defaultRetries);\n const canRetry = SAFE_METHODS.has(route.method) || requestOptions.retryUnsafe === true;\n const resolvedBaseUrl = await resolveBaseUrl();\n\n for (let attempt = 0; ; attempt += 1) {\n const timeout = createRequestSignal(requestOptions.signal, requestOptions.timeoutMs ?? defaultTimeoutMs);\n try {\n const response = await fetchImpl(`${resolvedBaseUrl}${path}`, {\n method: route.method,\n headers,\n body,\n signal: timeout.signal,\n });\n if (!canRetry || attempt >= retries || !RETRYABLE_STATUS.has(response.status)) return response;\n await response.body?.cancel();\n const wait = parseRetryAfter(response.headers.get(\"retry-after\")) ?? retryDelayMs * 2 ** attempt;\n await delay(wait, requestOptions.signal);\n } catch (cause) {\n if (!canRetry || attempt >= retries || requestOptions.signal?.aborted) {\n throw new ShopApiError(\n cause instanceof Error ? cause.message : \"node-shop request failed\",\n { status: 0, method: route.method, path, routeKey, cause },\n );\n }\n await delay(retryDelayMs * 2 ** attempt, requestOptions.signal);\n } finally {\n timeout.cleanup();\n }\n }\n }\n\n async function request<K extends ShopRouteKey>(\n routeKey: K,\n input: ShopRouteInput<K>,\n requestOptions?: ShopRequestOptions,\n ): Promise<ShopRouteResponseData<K>> {\n const response = await requestRaw(routeKey, input, requestOptions);\n const body = await readBody(response);\n const route = apiRoutes[routeKey];\n const requestId = response.headers.get(\"x-request-id\") ?? response.headers.get(\"trace-id\") ?? undefined;\n if (!response.ok) {\n throw new ShopApiError(errorMessage(body, `${route.method} ${route.path} failed with ${response.status}`), {\n status: response.status,\n method: route.method,\n path: route.path,\n routeKey,\n requestId,\n responseBody: body,\n });\n }\n if (body && typeof body === \"object\" && \"success\" in body) {\n const envelope = body as Envelope;\n if (envelope.success === false) {\n throw new ShopApiError(errorMessage(body, `${route.method} ${route.path} returned an error`), {\n status: response.status,\n method: route.method,\n path: route.path,\n routeKey,\n requestId,\n responseBody: body,\n });\n }\n return envelope.data as ShopRouteResponseData<K>;\n }\n return body as ShopRouteResponseData<K>;\n }\n\n async function requestText<K extends ShopRouteKey>(\n routeKey: K,\n input: ShopRouteInput<K>,\n requestOptions?: ShopRequestOptions,\n ): Promise<string> {\n const response = await requestRaw(routeKey, input, requestOptions);\n const text = await response.text();\n if (!response.ok) {\n const route = apiRoutes[routeKey];\n throw new ShopApiError(`${route.method} ${route.path} failed with ${response.status}`, {\n status: response.status,\n method: route.method,\n path: route.path,\n routeKey,\n requestId: response.headers.get(\"x-request-id\") ?? undefined,\n responseBody: text,\n });\n }\n return text;\n }\n\n return { baseUrl, request, requestText, requestRaw };\n}\n","import { createShopClient } from \"./client/client\";\nimport { ShopConfigurationError } from \"./client/error\";\nimport type { HeaderProvider, ShopClientOptions } from \"./client/types\";\n\nexport type ShopBrowserClientOptions = Omit<ShopClientOptions, \"headers\"> & {\n headers?: HeadersInit | HeaderProvider;\n /** Permit authenticated routes when your app provides its own short-lived user headers. */\n allowAuthenticatedRoutes?: boolean;\n};\n\nexport function createShopBrowserClient(options: ShopBrowserClientOptions = {}) {\n const configured = options.headers;\n return createShopClient({\n ...options,\n headers: async (context) => {\n if (context.authType !== \"public\" && !options.allowAuthenticatedRoutes) {\n throw new ShopConfigurationError(\n `Route ${context.routeKey} requires ${context.authType}; browser clients allow public routes by default`,\n );\n }\n return typeof configured === \"function\" ? configured(context) : configured;\n },\n });\n}\n\nexport { SHOP_API_URL } from \"./constants\";\nexport { ShopApiError, ShopConfigurationError } from \"./client/error\";\nexport type * from \"./client/types\";\n"]}