{"openapi":"3.1.0","info":{"title":"Lithe Public API","description":"Public read-only endpoints for Lithe, a custom DTF apparel store in San Salvador, El Salvador. Use /api/v1 for stable public integrations. Order and lead submission routes remain protected by validation, bot protection, and rate limits.","version":"1.0.0"},"paths":{"/api":{"get":{"tags":["public"],"summary":"Discover the Lithe public API","description":"Returns the stable API version and links to its documentation and public endpoints.","operationId":"api_index","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Api Index"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1":{"get":{"tags":["public-v1"],"summary":"Discover version 1 of the Lithe public API","description":"Returns the stable version 1 endpoints intended for public integrations and agents.","operationId":"api_index_v1","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Api Index V1"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/health":{"get":{"tags":["public"],"summary":"Check Lithe API health","description":"Returns status ok when the API can reach its database.","operationId":"healthcheck_legacy","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Healthcheck Legacy"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/health":{"get":{"tags":["public-v1"],"summary":"Check Lithe API health (v1)","description":"Returns status ok when the version 1 API can reach its database.","operationId":"healthcheck_v1","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Healthcheck V1"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/public-config":{"get":{"tags":["public"],"summary":"Read public storefront configuration","description":"Returns the public checkout configuration shown by the storefront, including support channels and meetup zones.","operationId":"get_public_config_legacy","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicConfigResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/public-config":{"get":{"tags":["public-v1"],"summary":"Read public storefront configuration (v1)","description":"Returns the stable public checkout configuration used by the storefront, including public payment instructions.","operationId":"get_public_config_v1","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicConfigResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/orders":{"post":{"tags":["storefront"],"summary":"Submit a storefront order","description":"Creates an order after the customer submits the validated storefront checkout and payment details.","operationId":"create_storefront_order","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderRecord"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/contact-leads":{"post":{"tags":["storefront"],"summary":"Submit a contact request","description":"Stores a customer email or WhatsApp contact request from the storefront after bot protection.","operationId":"create_contact_lead","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactLeadCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactLeadSubmitResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/login":{"post":{"summary":"Post Admin Login","operationId":"post_admin_login_api_admin_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminSessionResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/session":{"get":{"summary":"Get Admin Session","operationId":"get_admin_session_api_admin_session_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminSessionResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/logout":{"post":{"summary":"Post Admin Logout","operationId":"post_admin_logout_api_admin_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminSessionResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/users":{"get":{"summary":"Get Admin Users","operationId":"get_admin_users_api_admin_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AdminUserRecord"},"type":"array","title":"Response Get Admin Users Api Admin Users Get"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"summary":"Post Admin User","operationId":"post_admin_user_api_admin_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserCreateRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserRecord"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/audit-log":{"get":{"summary":"Get Admin Audit Log","operationId":"get_admin_audit_log_api_admin_audit_log_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AdminAuditLogRecord"},"title":"Response Get Admin Audit Log Api Admin Audit Log Get"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"summary":"Post Admin Audit Log","operationId":"post_admin_audit_log_api_admin_audit_log_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminAuditLogCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminAuditLogRecord"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/metrics":{"get":{"summary":"Get Admin Metrics Summary","operationId":"get_admin_metrics_summary_api_admin_metrics_get","parameters":[{"name":"dateFrom","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Datefrom"}},{"name":"dateTo","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Dateto"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminMetricsResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/operations":{"get":{"summary":"Get Admin Operations Dashboard","operationId":"get_admin_operations_dashboard_api_admin_operations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperationsDashboardResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/print-zones":{"get":{"summary":"Get Admin Print Zones","operationId":"get_admin_print_zones_api_admin_print_zones_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminPrintZoneSettingsResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"put":{"summary":"Put Admin Print Zones","operationId":"put_admin_print_zones_api_admin_print_zones_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminPrintZoneSettingsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminPrintZoneSettingsResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/inventory-items":{"post":{"summary":"Post Inventory Item","operationId":"post_inventory_item_api_admin_inventory_items_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InventoryItemCreateRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InventoryItemRecord"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/inventory-movements":{"post":{"summary":"Post Inventory Movement","operationId":"post_inventory_movement_api_admin_inventory_movements_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InventoryMovementCreateRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InventoryMovementRecord"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/cost-entries":{"post":{"summary":"Post Cost Entry","operationId":"post_cost_entry_api_admin_cost_entries_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CostEntryCreateRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CostEntryRecord"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/railway/sync":{"post":{"summary":"Post Railway Usage Sync","operationId":"post_railway_usage_sync_api_admin_railway_sync_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RailwayUsageSnapshotRecord"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/operations/export":{"get":{"summary":"Get Admin Operations Export","operationId":"get_admin_operations_export_api_admin_operations_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/users/{admin_user_id}/status":{"patch":{"summary":"Patch Admin User Status","operationId":"patch_admin_user_status_api_admin_users__admin_user_id__status_patch","parameters":[{"name":"admin_user_id","in":"path","required":true,"schema":{"type":"string","title":"Admin User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserStatusUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserRecord"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/users/{admin_user_id}/reset-password":{"post":{"summary":"Post Admin User Password Reset","operationId":"post_admin_user_password_reset_api_admin_users__admin_user_id__reset_password_post","parameters":[{"name":"admin_user_id","in":"path","required":true,"schema":{"type":"string","title":"Admin User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserPasswordResetRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserRecord"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/orders":{"get":{"summary":"Get Admin Orders","operationId":"get_admin_orders_api_admin_orders_get","parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","default":24,"title":"Hours"}},{"name":"includeTrashed","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Includetrashed"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrderRecord"},"title":"Response Get Admin Orders Api Admin Orders Get"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/orders/{order_id}/customer-history":{"get":{"summary":"Get Admin Customer History","operationId":"get_admin_customer_history_api_admin_orders__order_id__customer_history_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomerHistoryRecord"},"title":"Response Get Admin Customer History Api Admin Orders  Order Id  Customer History Get"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/orders/{order_id}/status":{"post":{"summary":"Post Admin Order Status","operationId":"post_admin_order_status_api_admin_orders__order_id__status_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderAdminStatusUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderRecord"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/orders/complete":{"post":{"summary":"Post Admin Complete Orders","operationId":"post_admin_complete_orders_api_admin_orders_complete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderAdminCompleteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OrderRecord"},"type":"array","title":"Response Post Admin Complete Orders Api Admin Orders Complete Post"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/orders/{order_id}":{"delete":{"summary":"Delete Admin Order","operationId":"delete_admin_order_api_admin_orders__order_id__delete","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderDeleteResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/orders/{order_id}/restore":{"post":{"summary":"Restore Admin Order","operationId":"restore_admin_order_api_admin_orders__order_id__restore_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderDeleteResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/admin/orders/{order_id}/payment-review":{"post":{"summary":"Post Admin Payment Review","operationId":"post_admin_payment_review_api_admin_orders__order_id__payment_review_post","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderPaymentReviewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderRecord"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/tracking/request-code":{"post":{"tags":["tracking"],"summary":"Request an order tracking code","description":"Starts the storefront order tracking flow for a matching order number and email.","operationId":"request_tracking_code","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderTrackingCodeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackingCodeResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/tracking/verify-code":{"post":{"tags":["tracking"],"summary":"Verify an order tracking code","description":"Returns tracking details after the short-lived storefront verification code is validated.","operationId":"verify_tracking_code","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderTrackingCodeVerify"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackedOrderResponse"}}}},"400":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"405":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Structured JSON error with a stable code and recovery guidance.","headers":{"RateLimit-Limit":{"description":"Maximum requests allowed in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests remaining in the current rate-limit window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"502":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"503":{"description":"Structured JSON error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}}},"components":{"schemas":{"AdminAuditLogCreateRequest":{"properties":{"action":{"type":"string","maxLength":80,"minLength":2,"title":"Action"},"entityType":{"type":"string","maxLength":80,"minLength":2,"title":"Entitytype"},"entityId":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Entityid"},"entityLabel":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Entitylabel"},"detail":{"type":"string","maxLength":1000,"title":"Detail","default":""},"metadata":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["action","entityType"],"title":"AdminAuditLogCreateRequest"},"AdminAuditLogRecord":{"properties":{"id":{"type":"string","title":"Id"},"adminUserId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adminuserid"},"actorName":{"type":"string","title":"Actorname"},"actorRole":{"anyOf":[{"type":"string","enum":["owner","operator"]},{"type":"null"}],"title":"Actorrole"},"action":{"type":"string","title":"Action"},"entityType":{"type":"string","title":"Entitytype"},"entityId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entityid"},"entityLabel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entitylabel"},"detail":{"type":"string","title":"Detail"},"metadata":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"type":"object","required":["id","actorName","action","entityType","detail","createdAt"],"title":"AdminAuditLogRecord"},"AdminLoginRequest":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"}},"type":"object","required":["username","password"],"title":"AdminLoginRequest"},"AdminMetricsResponse":{"properties":{"totalOrders":{"type":"integer","title":"Totalorders"},"awaitingReviewCount":{"type":"integer","title":"Awaitingreviewcount"},"paidQueueCount":{"type":"integer","title":"Paidqueuecount"},"completedOrdersCount":{"type":"integer","title":"Completedorderscount"},"trashedOrdersCount":{"type":"integer","title":"Trashedorderscount"},"rejectedCount":{"type":"integer","title":"Rejectedcount"},"grossRevenue":{"type":"number","title":"Grossrevenue"},"paidRevenue":{"type":"number","title":"Paidrevenue"},"averageOrderValue":{"type":"number","title":"Averageordervalue"},"leadCount":{"type":"integer","title":"Leadcount"},"emailLeadCount":{"type":"integer","title":"Emailleadcount"},"whatsappLeadCount":{"type":"integer","title":"Whatsappleadcount"},"conversionRate":{"type":"number","title":"Conversionrate"},"windowStart":{"type":"string","format":"date","title":"Windowstart"},"windowEnd":{"type":"string","format":"date","title":"Windowend"},"orderTrend":{"items":{"$ref":"#/components/schemas/MetricsTimeBucket"},"type":"array","title":"Ordertrend"},"paymentMix":{"items":{"$ref":"#/components/schemas/MetricsPoint"},"type":"array","title":"Paymentmix"},"placementMix":{"items":{"$ref":"#/components/schemas/MetricsPoint"},"type":"array","title":"Placementmix"},"orderTypeMix":{"items":{"$ref":"#/components/schemas/MetricsPoint"},"type":"array","title":"Ordertypemix"},"leadTypeMix":{"items":{"$ref":"#/components/schemas/MetricsPoint"},"type":"array","title":"Leadtypemix"}},"type":"object","required":["totalOrders","awaitingReviewCount","paidQueueCount","completedOrdersCount","trashedOrdersCount","rejectedCount","grossRevenue","paidRevenue","averageOrderValue","leadCount","emailLeadCount","whatsappLeadCount","conversionRate","windowStart","windowEnd","orderTrend","paymentMix","placementMix","orderTypeMix","leadTypeMix"],"title":"AdminMetricsResponse"},"AdminPrintZoneSettingsRequest":{"properties":{"printZones":{"$ref":"#/components/schemas/PrintZoneConfig"}},"type":"object","required":["printZones"],"title":"AdminPrintZoneSettingsRequest"},"AdminPrintZoneSettingsResponse":{"properties":{"printZones":{"$ref":"#/components/schemas/PrintZoneConfig"},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updatedat"}},"type":"object","required":["printZones"],"title":"AdminPrintZoneSettingsResponse"},"AdminSessionResponse":{"properties":{"authenticated":{"type":"boolean","title":"Authenticated"},"authMode":{"type":"string","enum":["password","oauth"],"title":"Authmode"},"passwordLoginEnabled":{"type":"boolean","title":"Passwordloginenabled"},"adminUserId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adminuserid"},"adminRole":{"anyOf":[{"type":"string","enum":["owner","operator"]},{"type":"null"}],"title":"Adminrole"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Displayname"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"csrfToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Csrftoken"},"loginUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Loginurl"},"logoutUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logouturl"}},"type":"object","required":["authenticated","authMode","passwordLoginEnabled"],"title":"AdminSessionResponse"},"AdminUserCreateRequest":{"properties":{"username":{"type":"string","maxLength":80,"minLength":3,"title":"Username"},"password":{"type":"string","maxLength":256,"minLength":8,"title":"Password"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"role":{"type":"string","enum":["owner","operator"],"title":"Role","default":"operator"}},"type":"object","required":["username","password"],"title":"AdminUserCreateRequest"},"AdminUserPasswordResetRequest":{"properties":{"password":{"type":"string","maxLength":256,"minLength":8,"title":"Password"}},"type":"object","required":["password"],"title":"AdminUserPasswordResetRequest"},"AdminUserRecord":{"properties":{"id":{"type":"string","title":"Id"},"username":{"type":"string","title":"Username"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"role":{"type":"string","enum":["owner","operator"],"title":"Role"},"isActive":{"type":"boolean","title":"Isactive"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"}},"type":"object","required":["id","username","role","isActive","createdAt","updatedAt"],"title":"AdminUserRecord"},"AdminUserStatusUpdateRequest":{"properties":{"isActive":{"type":"boolean","title":"Isactive"}},"type":"object","required":["isActive"],"title":"AdminUserStatusUpdateRequest"},"ApiErrorPayload":{"properties":{"code":{"type":"string","title":"Code","description":"Stable machine-readable error code."},"message":{"type":"string","title":"Message","description":"Human-readable explanation of the failure."},"resolution":{"type":"string","title":"Resolution","description":"Action an API client can take to recover."},"details":{"anyOf":[{},{"type":"null"}],"title":"Details","description":"Optional structured validation details."}},"type":"object","required":["code","message","resolution"],"title":"ApiErrorPayload"},"ApiErrorResponse":{"properties":{"error":{"$ref":"#/components/schemas/ApiErrorPayload"},"detail":{"title":"Detail","description":"Legacy-compatible error detail value."}},"type":"object","required":["error","detail"],"title":"ApiErrorResponse"},"ContactLeadCreate":{"properties":{"contact":{"type":"string","maxLength":255,"minLength":3,"title":"Contact"},"source":{"type":"string","maxLength":80,"minLength":1,"title":"Source","default":"homepage_quote"},"botToken":{"type":"string","title":"Bottoken","default":""},"website":{"type":"string","title":"Website","default":""}},"type":"object","required":["contact"],"title":"ContactLeadCreate"},"ContactLeadRecord":{"properties":{"id":{"type":"string","title":"Id"},"source":{"type":"string","title":"Source"},"contactValue":{"type":"string","title":"Contactvalue"},"contactType":{"type":"string","enum":["email","whatsapp"],"title":"Contacttype"},"contactEmail":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Contactemail"},"contactPhone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contactphone"},"requestCount":{"type":"integer","title":"Requestcount"},"lastRequestedAt":{"type":"string","format":"date-time","title":"Lastrequestedat"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"}},"type":"object","required":["id","source","contactValue","contactType","requestCount","lastRequestedAt","createdAt","updatedAt"],"title":"ContactLeadRecord"},"ContactLeadSubmitResponse":{"properties":{"lead":{"$ref":"#/components/schemas/ContactLeadRecord"},"emailSent":{"type":"boolean","title":"Emailsent"},"message":{"type":"string","title":"Message"}},"type":"object","required":["lead","emailSent","message"],"title":"ContactLeadSubmitResponse"},"CostEntryCreateRequest":{"properties":{"category":{"type":"string","maxLength":80,"minLength":2,"title":"Category"},"vendor":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}],"title":"Vendor"},"description":{"type":"string","maxLength":255,"minLength":2,"title":"Description"},"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount"},"source":{"type":"string","enum":["manual","railway"],"title":"Source","default":"manual"},"reference":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}],"title":"Reference"},"incurredOn":{"type":"string","format":"date","title":"Incurredon"}},"type":"object","required":["category","description","amount","incurredOn"],"title":"CostEntryCreateRequest"},"CostEntryRecord":{"properties":{"id":{"type":"string","title":"Id"},"category":{"type":"string","title":"Category"},"vendor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor"},"description":{"type":"string","title":"Description"},"amount":{"type":"number","title":"Amount"},"source":{"type":"string","enum":["manual","railway"],"title":"Source"},"reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference"},"incurredOn":{"type":"string","format":"date","title":"Incurredon"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"}},"type":"object","required":["id","category","description","amount","source","incurredOn","createdAt","updatedAt"],"title":"CostEntryRecord"},"CustomerHistoryRecord":{"properties":{"id":{"type":"string","title":"Id"},"orderNumber":{"type":"string","title":"Ordernumber"},"orderType":{"type":"string","enum":["custom","predesign"],"title":"Ordertype","default":"custom"},"customerName":{"type":"string","title":"Customername"},"customerEmail":{"type":"string","format":"email","title":"Customeremail"},"customerPhone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customerphone"},"garmentType":{"type":"string","enum":["classic_pima","slimfit","oversize","premium_dtf","jennie_mantra_front_back"],"title":"Garmenttype","default":"classic_pima"},"shirtColor":{"type":"string","enum":["white","black"],"title":"Shirtcolor","default":"white"},"price":{"type":"number","title":"Price"},"status":{"type":"string","title":"Status"},"paymentStatus":{"type":"string","title":"Paymentstatus"},"placements":{"items":{"$ref":"#/components/schemas/Placement"},"type":"array","title":"Placements"},"lineItems":{"items":{"$ref":"#/components/schemas/OrderLineItem"},"type":"array","title":"Lineitems"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"type":"object","required":["id","orderNumber","customerName","customerEmail","price","status","paymentStatus","createdAt"],"title":"CustomerHistoryRecord"},"InventoryItemCreateRequest":{"properties":{"name":{"type":"string","maxLength":160,"minLength":2,"title":"Name"},"sku":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Sku"},"category":{"type":"string","maxLength":80,"minLength":2,"title":"Category","default":"general"},"unit":{"type":"string","maxLength":24,"minLength":1,"title":"Unit","default":"pcs"},"supplier":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}],"title":"Supplier"},"openingStock":{"type":"integer","minimum":0.0,"title":"Openingstock","default":0},"reorderLevel":{"type":"integer","minimum":0.0,"title":"Reorderlevel","default":0},"unitCost":{"type":"number","minimum":0.0,"title":"Unitcost","default":0},"notes":{"type":"string","maxLength":1000,"title":"Notes","default":""}},"type":"object","required":["name"],"title":"InventoryItemCreateRequest"},"InventoryItemRecord":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"sku":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sku"},"category":{"type":"string","title":"Category"},"unit":{"type":"string","title":"Unit"},"supplier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supplier"},"currentStock":{"type":"integer","title":"Currentstock"},"reorderLevel":{"type":"integer","title":"Reorderlevel"},"unitCost":{"type":"number","title":"Unitcost"},"notes":{"type":"string","title":"Notes"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"}},"type":"object","required":["id","name","category","unit","currentStock","reorderLevel","unitCost","notes","createdAt","updatedAt"],"title":"InventoryItemRecord"},"InventoryMovementCreateRequest":{"properties":{"itemId":{"type":"string","title":"Itemid"},"movementType":{"type":"string","enum":["opening","restock","usage","adjustment_add","adjustment_remove"],"title":"Movementtype"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity"},"unitCost":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Unitcost"},"note":{"type":"string","maxLength":1000,"title":"Note","default":""}},"type":"object","required":["itemId","movementType","quantity"],"title":"InventoryMovementCreateRequest"},"InventoryMovementRecord":{"properties":{"id":{"type":"string","title":"Id"},"itemId":{"type":"string","title":"Itemid"},"itemName":{"type":"string","title":"Itemname"},"movementType":{"type":"string","enum":["opening","restock","usage","adjustment_add","adjustment_remove"],"title":"Movementtype"},"quantityDelta":{"type":"integer","title":"Quantitydelta"},"quantityAfter":{"type":"integer","title":"Quantityafter"},"unitCost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Unitcost"},"note":{"type":"string","title":"Note"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"type":"object","required":["id","itemId","itemName","movementType","quantityDelta","quantityAfter","note","createdAt"],"title":"InventoryMovementRecord"},"MetricsPoint":{"properties":{"key":{"type":"string","title":"Key"},"value":{"type":"integer","title":"Value"}},"type":"object","required":["key","value"],"title":"MetricsPoint"},"MetricsTimeBucket":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"value":{"type":"integer","title":"Value"},"date":{"type":"string","format":"date","title":"Date"}},"type":"object","required":["key","label","value","date"],"title":"MetricsTimeBucket"},"OperationsDashboardResponse":{"properties":{"summary":{"$ref":"#/components/schemas/OperationsSummaryResponse"},"inventoryItems":{"items":{"$ref":"#/components/schemas/InventoryItemRecord"},"type":"array","title":"Inventoryitems"},"inventoryMovements":{"items":{"$ref":"#/components/schemas/InventoryMovementRecord"},"type":"array","title":"Inventorymovements"},"costEntries":{"items":{"$ref":"#/components/schemas/CostEntryRecord"},"type":"array","title":"Costentries"},"railway":{"$ref":"#/components/schemas/RailwayUsageOverview"}},"type":"object","required":["summary","inventoryItems","inventoryMovements","costEntries","railway"],"title":"OperationsDashboardResponse"},"OperationsSummaryResponse":{"properties":{"inventoryUnits":{"type":"integer","title":"Inventoryunits"},"inventoryValue":{"type":"number","title":"Inventoryvalue"},"lowStockCount":{"type":"integer","title":"Lowstockcount"},"manualCostsThisMonth":{"type":"number","title":"Manualcoststhismonth"},"railwayCurrentUsage":{"type":"number","title":"Railwaycurrentusage"},"railwayEstimatedUsage":{"type":"number","title":"Railwayestimatedusage"},"combinedCostSnapshot":{"type":"number","title":"Combinedcostsnapshot"}},"type":"object","required":["inventoryUnits","inventoryValue","lowStockCount","manualCostsThisMonth","railwayCurrentUsage","railwayEstimatedUsage","combinedCostSnapshot"],"title":"OperationsSummaryResponse"},"OrderAdminCompleteRequest":{"properties":{"orderIds":{"items":{"type":"string"},"type":"array","title":"Orderids"},"message":{"type":"string","title":"Message","default":"Orders marked completed."}},"type":"object","required":["orderIds"],"title":"OrderAdminCompleteRequest"},"OrderAdminStatusUpdate":{"properties":{"status":{"$ref":"#/components/schemas/OrderStatus"},"message":{"type":"string","title":"Message","default":""}},"type":"object","required":["status"],"title":"OrderAdminStatusUpdate"},"OrderCreate":{"properties":{"orderType":{"type":"string","enum":["custom","predesign"],"title":"Ordertype","default":"custom"},"customerName":{"type":"string","title":"Customername","default":""},"customerEmail":{"type":"string","format":"email","title":"Customeremail"},"customerPhone":{"type":"string","maxLength":40,"minLength":7,"title":"Customerphone"},"garmentType":{"type":"string","enum":["classic_pima","slimfit","oversize","premium_dtf","jennie_mantra_front_back"],"title":"Garmenttype","default":"classic_pima"},"shirtColor":{"type":"string","enum":["white","black"],"title":"Shirtcolor","default":"white"},"size":{"type":"string","title":"Size"},"placement":{"type":"string","enum":["FRONT","BACK","POCKET"],"title":"Placement"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity"},"notes":{"type":"string","title":"Notes","default":""},"designDataUrl":{"type":"string","title":"Designdataurl"},"designName":{"type":"string","title":"Designname","default":"Design"},"designDpi":{"type":"integer","minimum":1.0,"title":"Designdpi"},"previewDataUrl":{"type":"string","title":"Previewdataurl"},"sourceDimensions":{"anyOf":[{"$ref":"#/components/schemas/SourceDimensions"},{"type":"null"}]},"placementAssets":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/PlacementArtwork"},"propertyNames":{"enum":["FRONT","BACK","POCKET"]},"type":"object"},{"type":"null"}],"title":"Placementassets"},"items":{"anyOf":[{"items":{"$ref":"#/components/schemas/OrderLineItem"},"type":"array"},{"type":"null"}],"title":"Items"},"paymentReference":{"type":"string","title":"Paymentreference","default":""},"paymentProofDataUrl":{"type":"string","title":"Paymentproofdataurl","default":""},"paymentProofFileName":{"type":"string","title":"Paymentprooffilename","default":""},"paymentProofMimeType":{"type":"string","title":"Paymentproofmimetype","default":""},"botToken":{"type":"string","title":"Bottoken","default":""},"website":{"type":"string","title":"Website","default":""},"print":{"$ref":"#/components/schemas/PrintSpec"}},"type":"object","required":["customerEmail","customerPhone","size","placement","quantity","designDataUrl","designDpi","previewDataUrl","print"],"title":"OrderCreate"},"OrderDeleteResponse":{"properties":{"orderId":{"type":"string","title":"Orderid"},"orderNumber":{"type":"string","title":"Ordernumber"},"customerName":{"type":"string","title":"Customername"},"deletedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deletedat"},"restoredAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Restoredat"},"isDeleted":{"type":"boolean","title":"Isdeleted"},"message":{"type":"string","title":"Message"}},"type":"object","required":["orderId","orderNumber","customerName","isDeleted","message"],"title":"OrderDeleteResponse"},"OrderLineItem":{"properties":{"size":{"type":"string","maxLength":12,"minLength":1,"title":"Size"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity"}},"type":"object","required":["size","quantity"],"title":"OrderLineItem"},"OrderPaymentReviewRequest":{"properties":{"action":{"type":"string","enum":["approve","reject"],"title":"Action"},"message":{"type":"string","title":"Message","default":""}},"type":"object","required":["action"],"title":"OrderPaymentReviewRequest"},"OrderRecord":{"properties":{"id":{"type":"string","title":"Id"},"orderNumber":{"type":"string","title":"Ordernumber"},"orderType":{"type":"string","enum":["custom","predesign"],"title":"Ordertype","default":"custom"},"customerName":{"type":"string","title":"Customername"},"customerEmail":{"type":"string","format":"email","title":"Customeremail"},"customerPhone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customerphone"},"garmentType":{"type":"string","enum":["classic_pima","slimfit","oversize","premium_dtf","jennie_mantra_front_back"],"title":"Garmenttype","default":"classic_pima"},"shirtColor":{"type":"string","enum":["white","black"],"title":"Shirtcolor","default":"white"},"size":{"type":"string","title":"Size"},"placement":{"$ref":"#/components/schemas/Placement"},"quantity":{"type":"integer","title":"Quantity"},"notes":{"type":"string","title":"Notes"},"price":{"type":"number","title":"Price"},"status":{"type":"string","title":"Status"},"paymentStatus":{"type":"string","title":"Paymentstatus"},"isDeleted":{"type":"boolean","title":"Isdeleted","default":false},"deletedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deletedat"},"paymentReference":{"type":"string","title":"Paymentreference"},"paymentProofDataUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paymentproofdataurl"},"paymentProofFileName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paymentprooffilename"},"paymentProofMimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paymentproofmimetype"},"paymentSubmittedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paymentsubmittedat"},"paymentReviewedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paymentreviewedat"},"paymentReviewNote":{"type":"string","title":"Paymentreviewnote"},"paymentReviewStatus":{"type":"string","enum":["awaiting_proof","under_review","verified","rejected"],"title":"Paymentreviewstatus"},"designDataUrl":{"type":"string","title":"Designdataurl"},"designName":{"type":"string","title":"Designname"},"designDpi":{"type":"integer","title":"Designdpi"},"previewDataUrl":{"type":"string","title":"Previewdataurl"},"sourceDimensions":{"anyOf":[{"$ref":"#/components/schemas/SourceDimensions"},{"type":"null"}]},"placements":{"items":{"$ref":"#/components/schemas/Placement"},"type":"array","title":"Placements"},"placementAssets":{"additionalProperties":{"$ref":"#/components/schemas/PlacementArtwork"},"propertyNames":{"$ref":"#/components/schemas/Placement"},"type":"object","title":"Placementassets"},"lineItems":{"items":{"$ref":"#/components/schemas/OrderLineItem"},"type":"array","title":"Lineitems"},"print":{"$ref":"#/components/schemas/PrintSpec"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"}},"type":"object","required":["id","orderNumber","customerName","customerEmail","size","placement","quantity","notes","price","status","paymentStatus","paymentReference","paymentProofDataUrl","paymentProofFileName","paymentProofMimeType","paymentSubmittedAt","paymentReviewedAt","paymentReviewNote","paymentReviewStatus","designDataUrl","designName","designDpi","previewDataUrl","sourceDimensions","print","createdAt","updatedAt"],"title":"OrderRecord"},"OrderStatus":{"type":"string","enum":["draft","pending_payment","paid","queued","printing","ready_to_ship","shipped","completed","cancelled"],"title":"OrderStatus"},"OrderTrackingCodeRequest":{"properties":{"orderNumber":{"type":"string","title":"Ordernumber"},"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["orderNumber","email"],"title":"OrderTrackingCodeRequest"},"OrderTrackingCodeVerify":{"properties":{"orderNumber":{"type":"string","title":"Ordernumber"},"email":{"type":"string","format":"email","title":"Email"},"code":{"type":"string","maxLength":6,"minLength":6,"title":"Code"}},"type":"object","required":["orderNumber","email","code"],"title":"OrderTrackingCodeVerify"},"Placement":{"type":"string","enum":["FRONT","BACK","POCKET"],"title":"Placement"},"PlacementArtwork":{"properties":{"designDataUrl":{"type":"string","title":"Designdataurl"},"designName":{"type":"string","title":"Designname","default":"Design"},"designDpi":{"type":"integer","minimum":1.0,"title":"Designdpi"},"previewDataUrl":{"type":"string","title":"Previewdataurl"},"sourceDimensions":{"anyOf":[{"$ref":"#/components/schemas/SourceDimensions"},{"type":"null"}]}},"type":"object","required":["designDataUrl","designDpi","previewDataUrl"],"title":"PlacementArtwork"},"PrintSpec":{"properties":{"widthCm":{"type":"number","title":"Widthcm"},"heightCm":{"type":"number","title":"Heightcm"},"widthPx":{"type":"integer","title":"Widthpx"},"heightPx":{"type":"integer","title":"Heightpx"}},"type":"object","required":["widthCm","heightCm","widthPx","heightPx"],"title":"PrintSpec"},"PrintZoneBounds":{"properties":{"left":{"type":"integer","maximum":620.0,"minimum":0.0,"title":"Left"},"top":{"type":"integer","maximum":760.0,"minimum":0.0,"title":"Top"},"width":{"type":"integer","maximum":620.0,"minimum":1.0,"title":"Width"},"height":{"type":"integer","maximum":760.0,"minimum":1.0,"title":"Height"}},"type":"object","required":["left","top","width","height"],"title":"PrintZoneBounds"},"PrintZoneConfig":{"properties":{"FRONT":{"$ref":"#/components/schemas/PrintZoneBounds"},"BACK":{"$ref":"#/components/schemas/PrintZoneBounds"},"POCKET":{"$ref":"#/components/schemas/PrintZoneBounds"}},"type":"object","required":["FRONT","BACK","POCKET"],"title":"PrintZoneConfig"},"PublicConfigResponse":{"properties":{"market":{"type":"string","enum":["sv","ni"],"title":"Market"},"countryCode":{"type":"string","enum":["SV","NI"],"title":"Countrycode"},"countryName":{"type":"string","title":"Countryname"},"siteUrl":{"type":"string","title":"Siteurl"},"turnstileEnabled":{"type":"boolean","title":"Turnstileenabled"},"turnstileSiteKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Turnstilesitekey"},"bankName":{"type":"string","title":"Bankname"},"bankAccountHolder":{"type":"string","title":"Bankaccountholder"},"bankAccountNumber":{"type":"string","title":"Bankaccountnumber"},"bankAccountType":{"type":"string","title":"Bankaccounttype"},"bankPaymentNote":{"type":"string","title":"Bankpaymentnote"},"supportEmail":{"type":"string","title":"Supportemail"},"supportWhatsApp":{"type":"string","title":"Supportwhatsapp"},"instagramUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instagramurl"},"deliveryZones":{"items":{"type":"string"},"type":"array","title":"Deliveryzones"},"shippingFee":{"type":"number","title":"Shippingfee"},"printZones":{"$ref":"#/components/schemas/PrintZoneConfig"}},"type":"object","required":["market","countryCode","countryName","siteUrl","turnstileEnabled","bankName","bankAccountHolder","bankAccountNumber","bankAccountType","bankPaymentNote","supportEmail","supportWhatsApp","deliveryZones","shippingFee","printZones"],"title":"PublicConfigResponse"},"RailwayUsageOverview":{"properties":{"configured":{"type":"boolean","title":"Configured"},"projectId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Projectid"},"projectName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Projectname"},"latestSnapshotAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latestsnapshotat"},"currentUsage":{"type":"number","title":"Currentusage","default":0},"estimatedUsage":{"type":"number","title":"Estimatedusage","default":0},"snapshots":{"items":{"$ref":"#/components/schemas/RailwayUsageSnapshotRecord"},"type":"array","title":"Snapshots"}},"type":"object","required":["configured"],"title":"RailwayUsageOverview"},"RailwayUsageSnapshotRecord":{"properties":{"id":{"type":"string","title":"Id"},"projectId":{"type":"string","title":"Projectid"},"projectName":{"type":"string","title":"Projectname"},"teamId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Teamid"},"windowStart":{"type":"string","format":"date","title":"Windowstart"},"currentUsage":{"type":"number","title":"Currentusage"},"estimatedUsage":{"type":"number","title":"Estimatedusage"},"measuredAt":{"type":"string","format":"date-time","title":"Measuredat"}},"type":"object","required":["id","projectId","projectName","windowStart","currentUsage","estimatedUsage","measuredAt"],"title":"RailwayUsageSnapshotRecord"},"SourceDimensions":{"properties":{"width":{"type":"integer","title":"Width"},"height":{"type":"integer","title":"Height"}},"type":"object","required":["width","height"],"title":"SourceDimensions"},"TrackedOrderResponse":{"properties":{"order":{"$ref":"#/components/schemas/OrderRecord"},"timeline":{"items":{"$ref":"#/components/schemas/TrackingTimelineEvent"},"type":"array","title":"Timeline"}},"type":"object","required":["order","timeline"],"title":"TrackedOrderResponse"},"TrackingCodeResponse":{"properties":{"code":{"type":"string","title":"Code"},"expiresAt":{"type":"string","format":"date-time","title":"Expiresat"}},"type":"object","required":["code","expiresAt"],"title":"TrackingCodeResponse"},"TrackingTimelineEvent":{"properties":{"eventType":{"type":"string","title":"Eventtype"},"message":{"type":"string","title":"Message"},"actorType":{"type":"string","title":"Actortype"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"type":"object","required":["eventType","message","actorType","createdAt"],"title":"TrackingTimelineEvent"}}},"tags":[{"name":"public","description":"Public health and runtime configuration endpoints."},{"name":"public-v1","description":"Versioned public endpoints intended for integrations and agents."},{"name":"storefront","description":"Customer-facing submission routes protected by validation and bot controls."},{"name":"tracking","description":"Customer-facing order tracking routes protected by rate limits and verification."}]}