{"openapi":"3.1.0","info":{"title":"ReBorn E-Commerce API","description":"Commerce API for Cimonamia / ReBorn. See /.well-known/acp.json for Agentic Commerce Protocol discovery.","contact":{"name":"Cimonamia","url":"https://cimonamia.com/","email":"hola@cimonamia.com"},"version":"1.0.0"},"paths":{"/api/":{"get":{"summary":"Root","operationId":"root_api__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/status":{"get":{"summary":"Get Status Checks","operationId":"get_status_checks_api_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/StatusCheck"},"type":"array","title":"Response Get Status Checks Api Status Get"}}}}}},"post":{"summary":"Create Status Check","operationId":"create_status_check_api_status_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusCheckCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusCheck"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/register":{"post":{"tags":["Authentication"],"summary":"Register","description":"Register a new user with rate limiting and validation","operationId":"register_api_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/login":{"post":{"tags":["Authentication"],"summary":"Login","description":"Login user with rate limiting and account lockout protection","operationId":"login_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLogin"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/refresh":{"post":{"tags":["Authentication"],"summary":"Refresh Token","description":"Refresh access token","operationId":"refresh_token_api_auth_refresh_post","parameters":[{"name":"refresh_token","in":"query","required":true,"schema":{"type":"string","title":"Refresh Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Refresh Token Api Auth Refresh Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/me":{"get":{"tags":["Authentication"],"summary":"Get Me","description":"Get current user info","operationId":"get_me_api_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/auth/users":{"get":{"tags":["Authentication"],"summary":"Get All Users","description":"Get all users (Admin only)","operationId":"get_all_users_api_auth_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/auth/logout":{"post":{"tags":["Authentication"],"summary":"Logout","description":"Logout user (client should remove tokens)","operationId":"logout_api_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/forgot-password":{"post":{"tags":["Authentication"],"summary":"Forgot Password","description":"Send password reset email","operationId":"forgot_password_api_auth_forgot_password_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Request"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/reset-password":{"post":{"tags":["Authentication"],"summary":"Reset Password","description":"Reset password using token","operationId":"reset_password_api_auth_reset_password_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Request"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/uploads/images":{"post":{"tags":["Uploads"],"summary":"Upload Image","description":"Upload and optimize image - generates multiple sizes and formats","operationId":"upload_image_api_uploads_images_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","default":"products","title":"Category"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_image_api_uploads_images_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/uploads/images/{filename}":{"get":{"tags":["Uploads"],"summary":"Get Image","description":"Serve uploaded image","operationId":"get_image_api_uploads_images__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Uploads"],"summary":"Delete Image","description":"Delete image and all its optimized variants","operationId":"delete_image_api_uploads_images__filename__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/uploads/media/serve/optimized/{filename}":{"get":{"tags":["Uploads"],"summary":"Serve Optimized Image","description":"Serve optimized images","operationId":"serve_optimized_image_api_uploads_media_serve_optimized__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/categories":{"get":{"tags":["Categories"],"summary":"Get Categories","description":"Get categories (Storefront - returns flattened versions)","operationId":"get_categories_api_categories_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version filtering","title":"Country"},"description":"Country code for version filtering"},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}},{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Get Categories Api Categories Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Categories"],"summary":"Create Category","description":"Create new category (admin only)","operationId":"create_category_api_categories_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Category Api Categories Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/categories/admin/all":{"get":{"tags":["Categories"],"summary":"Get All Categories Admin","description":"Get all categories for admin (returns full with all versions)","operationId":"get_all_categories_admin_api_categories_admin_all_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Get All Categories Admin Api Categories Admin All Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/categories/{slug}":{"get":{"tags":["Categories"],"summary":"Get Category By Slug","description":"Get category by slug (Storefront - returns flattened version)","operationId":"get_category_by_slug_api_categories__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version","default":"CO","title":"Country"},"description":"Country code for version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Category By Slug Api Categories  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/categories/{category_id}":{"put":{"tags":["Categories"],"summary":"Update Category","description":"Update category (admin only)","operationId":"update_category_api_categories__category_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"string","title":"Category Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Category Api Categories  Category Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Categories"],"summary":"Delete Category","description":"Delete category (admin only)","operationId":"delete_category_api_categories__category_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"string","title":"Category Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/brands":{"get":{"tags":["Brands"],"summary":"Get Brands","description":"Get brands (Storefront - returns flattened versions)","operationId":"get_brands_api_brands_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version filtering","default":"CO","title":"Country"},"description":"Country code for version filtering"},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Get Brands Api Brands Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Brands"],"summary":"Create Brand","description":"Create new brand (admin only)","operationId":"create_brand_api_brands_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Brand Api Brands Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/brands/admin/all":{"get":{"tags":["Brands"],"summary":"Get All Brands Admin","description":"Get all brands for admin (returns full with all versions)","operationId":"get_all_brands_admin_api_brands_admin_all_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Get All Brands Admin Api Brands Admin All Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/brands/{slug}":{"get":{"tags":["Brands"],"summary":"Get Brand By Slug","description":"Get brand by slug (Storefront - returns flattened version)","operationId":"get_brand_by_slug_api_brands__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version","default":"CO","title":"Country"},"description":"Country code for version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Brand By Slug Api Brands  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/brands/{brand_id}":{"put":{"tags":["Brands"],"summary":"Update Brand","description":"Update brand (admin only)","operationId":"update_brand_api_brands__brand_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","title":"Brand Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Brand Api Brands  Brand Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Brands"],"summary":"Delete Brand","description":"Delete brand (admin only)","operationId":"delete_brand_api_brands__brand_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","title":"Brand Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/products":{"get":{"tags":["Products"],"summary":"Get Products","description":"Get products with filters and pagination (Storefront - returns flattened versions)","operationId":"get_products_api_products_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version filtering","default":"CO","title":"Country"},"description":"Country code for version filtering"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"categories","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Categories"}},{"name":"brand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand"}},{"name":"brands","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brands"}},{"name":"min_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Price"}},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Price"}},{"name":"is_featured","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Featured"}},{"name":"is_on_sale","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is On Sale"}},{"name":"is_best_selling","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Best Selling"}},{"name":"is_new","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is New"}},{"name":"sizes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sizes"}},{"name":"colors","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Colors"}},{"name":"materials","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Materials"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","pattern":"^(price_asc|price_desc|createdAt_asc|createdAt_desc|name_asc|name_desc)$","default":"createdAt_desc","title":"Sort"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Products Api Products Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Products"],"summary":"Create Product","description":"Create new product (admin/vendor)","operationId":"create_product_api_products_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Product Api Products Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/products/{slug}":{"get":{"tags":["Products"],"summary":"Get Product By Slug","description":"Get product by slug (Storefront - returns flattened version)","operationId":"get_product_by_slug_api_products__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version","default":"CO","title":"Country"},"description":"Country code for version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Product By Slug Api Products  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/products/admin/all":{"get":{"tags":["Products"],"summary":"Get All Products Admin","description":"Get all products for admin (returns full product with all versions)","operationId":"get_all_products_admin_api_products_admin_all_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get All Products Admin Api Products Admin All Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/products/{product_id}":{"put":{"tags":["Products"],"summary":"Update Product","description":"Update product (admin/vendor)","operationId":"update_product_api_products__product_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Product Api Products  Product Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Products"],"summary":"Delete Product","description":"Delete product (admin/vendor)","operationId":"delete_product_api_products__product_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/products/{product_id}/related":{"get":{"tags":["Products"],"summary":"Get Related Products","description":"Get related products","operationId":"get_related_products_api_products__product_id__related_get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version","default":"CO","title":"Country"},"description":"Country code for version"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":8,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/products/export/csv":{"get":{"tags":["Products"],"summary":"Export Products Csv","description":"Export all products to CSV (flat format with action column)","operationId":"export_products_csv_api_products_export_csv_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/products/export/excel":{"get":{"tags":["Products"],"summary":"Export Products Excel","description":"Export all products to Excel (flat format with action column)","operationId":"export_products_excel_api_products_export_excel_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/products/import":{"post":{"tags":["Products"],"summary":"Import Products","description":"Import products from CSV or Excel file\n- Validates image paths against media gallery\n- Uses 'action' column if present (insert/update/delete)\n- Otherwise uses upsert logic based on SKU","operationId":"import_products_api_products_import_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_products_api_products_import_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/search":{"get":{"tags":["Search"],"summary":"Search Products","description":"Full-text search across products","operationId":"search_products_api_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"title":"Q"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/filters/options":{"get":{"tags":["Search"],"summary":"Get Filter Options","description":"Get available filter options","operationId":"get_filter_options_api_filters_options_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for price range","default":"CO","title":"Country"},"description":"Country code for price range"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/cart":{"get":{"tags":["Cart"],"summary":"Get Cart","description":"Get current cart (user or guest)","operationId":"get_cart_api_cart_get","parameters":[{"name":"X-Session-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Current User"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Cart"],"summary":"Clear Cart","description":"Clear entire cart","operationId":"clear_cart_api_cart_delete","parameters":[{"name":"X-Session-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Current User"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/cart/items":{"post":{"tags":["Cart"],"summary":"Add To Cart","description":"Add item to cart","operationId":"add_to_cart_api_cart_items_post","parameters":[{"name":"productId","in":"query","required":true,"schema":{"type":"string","title":"Productid"}},{"name":"quantity","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Quantity"}},{"name":"variantId","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variantid"}},{"name":"X-Session-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Current User"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/cart/items/{product_id}":{"put":{"tags":["Cart"],"summary":"Update Cart Item","operationId":"update_cart_item_api_cart_items__product_id__put","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}},{"name":"X-Session-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCartItemRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Cart"],"summary":"Remove From Cart","description":"Remove item from cart","operationId":"remove_from_cart_api_cart_items__product_id__delete","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}},{"name":"variant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Id"}},{"name":"X-Session-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Session-Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Current User"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/cart/merge":{"post":{"tags":["Cart"],"summary":"Merge Cart","description":"Merge guest cart with user cart on login","operationId":"merge_cart_api_cart_merge_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"query","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/wishlist":{"get":{"tags":["Wishlist"],"summary":"Get Wishlist","description":"Get current user's wishlist with flattened product data based on country","operationId":"get_wishlist_api_wishlist_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"CO","title":"Country"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/wishlist/items":{"post":{"tags":["Wishlist"],"summary":"Add To Wishlist","description":"Add item to wishlist","operationId":"add_to_wishlist_api_wishlist_items_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"query","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/wishlist/items/{product_id}":{"delete":{"tags":["Wishlist"],"summary":"Remove From Wishlist","description":"Remove item from wishlist","operationId":"remove_from_wishlist_api_wishlist_items__product_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/wishlist/clear":{"post":{"tags":["Wishlist"],"summary":"Clear Wishlist","description":"Clear entire wishlist","operationId":"clear_wishlist_api_wishlist_clear_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/addresses":{"get":{"tags":["Addresses"],"summary":"Get Addresses","description":"Get user's saved addresses","operationId":"get_addresses_api_addresses_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Get Addresses Api Addresses Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Addresses"],"summary":"Create Address","description":"Add new address","operationId":"create_address_api_addresses_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Address Api Addresses Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/addresses/{address_id}":{"put":{"tags":["Addresses"],"summary":"Update Address","description":"Update address","operationId":"update_address_api_addresses__address_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"address_id","in":"path","required":true,"schema":{"type":"string","title":"Address Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Address Api Addresses  Address Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Addresses"],"summary":"Delete Address","description":"Delete address","operationId":"delete_address_api_addresses__address_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"address_id","in":"path","required":true,"schema":{"type":"string","title":"Address Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/addresses/{address_id}/set-default":{"put":{"tags":["Addresses"],"summary":"Set Default Address","description":"Set address as default","operationId":"set_default_address_api_addresses__address_id__set_default_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"address_id","in":"path","required":true,"schema":{"type":"string","title":"Address Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/addresses/admin/user/{user_email}":{"get":{"tags":["Addresses"],"summary":"Admin Get User Addresses","description":"Get all addresses for a specific user (admin only) - includes saved addresses and addresses from orders","operationId":"admin_get_user_addresses_api_addresses_admin_user__user_email__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_email","in":"path","required":true,"schema":{"type":"string","title":"User Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Admin Get User Addresses Api Addresses Admin User  User Email  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Addresses"],"summary":"Admin Create User Address","description":"Create address for a user (admin only)","operationId":"admin_create_user_address_api_addresses_admin_user__user_email__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_email","in":"path","required":true,"schema":{"type":"string","title":"User Email"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Admin Create User Address Api Addresses Admin User  User Email  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/addresses/admin/{address_id}":{"delete":{"tags":["Addresses"],"summary":"Admin Delete Address","description":"Delete any address (admin only)","operationId":"admin_delete_address_api_addresses_admin__address_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"address_id","in":"path","required":true,"schema":{"type":"string","title":"Address Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orders":{"post":{"tags":["Orders"],"summary":"Create Order","description":"Create order from cart","operationId":"create_order_api_orders_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Order Api Orders Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Orders"],"summary":"Get Orders","description":"Get orders - returns user's orders or all orders if admin","operationId":"get_orders_api_orders_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":10,"title":"Limit"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Orders Api Orders Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orders/admin/all":{"get":{"tags":["Orders"],"summary":"Get All Orders Admin","description":"Get all orders (admin only)","operationId":"get_all_orders_admin_api_orders_admin_all_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":10,"title":"Limit"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get All Orders Admin Api Orders Admin All Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orders/{order_number}":{"get":{"tags":["Orders"],"summary":"Get Order By Number","description":"Get order details by order number","operationId":"get_order_by_number_api_orders__order_number__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_number","in":"path","required":true,"schema":{"type":"string","title":"Order Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Order By Number Api Orders  Order Number  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orders/{order_id}/cancel":{"put":{"tags":["Orders"],"summary":"Cancel Order","description":"Cancel order (if not shipped)","operationId":"cancel_order_api_orders__order_id__cancel_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orders/{order_id}/status":{"put":{"tags":["Orders"],"summary":"Update Order Status","description":"Update order status (admin only)","operationId":"update_order_status_api_orders__order_id__status_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"new_status","in":"query","required":true,"schema":{"type":"string","title":"New Status"}},{"name":"note","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},{"name":"tracking_number","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tracking Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payments/create-payment-intent":{"post":{"tags":["Payments"],"summary":"Create Payment Intent","description":"Create Stripe payment intent for an order","operationId":"create_payment_intent_api_payments_create_payment_intent_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_id","in":"query","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payments/confirm":{"post":{"tags":["Payments"],"summary":"Confirm Payment","description":"Confirm payment success and update order","operationId":"confirm_payment_api_payments_confirm_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"payment_intent_id","in":"query","required":true,"schema":{"type":"string","title":"Payment Intent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payments/webhooks/stripe":{"post":{"tags":["Payments"],"summary":"Stripe Webhook","description":"Handle Stripe webhook events","operationId":"stripe_webhook_api_payments_webhooks_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/payments/refund":{"post":{"tags":["Payments"],"summary":"Refund Payment","description":"Refund a payment (admin only)","operationId":"refund_payment_api_payments_refund_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_id","in":"query","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"amount","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Amount"}},{"name":"reason","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sitemap.xml":{"get":{"tags":["SEO"],"summary":"Get Sitemap","description":"Generate XML sitemap for SEO","operationId":"get_sitemap_api_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/robots.txt":{"get":{"tags":["SEO"],"summary":"Get Robots","description":"Generate robots.txt for SEO","operationId":"get_robots_api_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/page-categories":{"get":{"tags":["Page Categories"],"summary":"Get Page Categories","description":"Get page categories (Storefront - returns flattened versions)","operationId":"get_page_categories_api_page_categories_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version filtering","default":"US","title":"Country"},"description":"Country code for version filtering"},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Get Page Categories Api Page Categories Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Page Categories"],"summary":"Create Page Category","description":"Create new page category (Admin only)","operationId":"create_page_category_api_page_categories_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageCategoryCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Page Category Api Page Categories Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/page-categories/admin/all":{"get":{"tags":["Page Categories"],"summary":"Get All Page Categories Admin","description":"Get all page categories for admin (returns full with all versions)","operationId":"get_all_page_categories_admin_api_page_categories_admin_all_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Get All Page Categories Admin Api Page Categories Admin All Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/page-categories/{slug}":{"get":{"tags":["Page Categories"],"summary":"Get Page Category By Slug","description":"Get page category by slug (Storefront - returns flattened version)","operationId":"get_page_category_by_slug_api_page_categories__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version","default":"US","title":"Country"},"description":"Country code for version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Page Category By Slug Api Page Categories  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/page-categories/{category_id}":{"put":{"tags":["Page Categories"],"summary":"Update Page Category","description":"Update page category (Admin only)","operationId":"update_page_category_api_page_categories__category_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"string","title":"Category Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageCategoryUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Page Category Api Page Categories  Category Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Page Categories"],"summary":"Delete Page Category","description":"Delete page category (Admin only)","operationId":"delete_page_category_api_page_categories__category_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category_id","in":"path","required":true,"schema":{"type":"string","title":"Category Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pages":{"get":{"tags":["Pages"],"summary":"Get Pages","description":"Get pages (Storefront - returns flattened versions)","operationId":"get_pages_api_pages_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version filtering","default":"CO","title":"Country"},"description":"Country code for version filtering"},{"name":"published_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Published Only"}},{"name":"category_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Id"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Get Pages Api Pages Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Pages"],"summary":"Create Page","description":"Create new page (admin only)","operationId":"create_page_api_pages_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Page Api Pages Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pages/admin/all":{"get":{"tags":["Pages"],"summary":"Get All Pages Admin","description":"Get all pages for admin (returns full with all versions)","operationId":"get_all_pages_admin_api_pages_admin_all_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Get All Pages Admin Api Pages Admin All Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/pages/blocks/{slug}":{"get":{"tags":["Pages"],"summary":"Get Page Blocks","description":"Return page sections keyed by their `key` (aka tag).\n\nOptimised for the storefront's <ContentBlock> hook — one HTTP call gives\nevery editable block for a page. Only ACTIVE sections are returned.\nVersion selection: exact country match falls back to the first available\nversion so ES-CO renders even when only \"ES\" was authored.","operationId":"get_page_blocks_api_pages_blocks__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for section version","default":"CO","title":"Country"},"description":"Country code for section version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Page Blocks Api Pages Blocks  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pages/{slug}":{"get":{"tags":["Pages"],"summary":"Get Page By Slug","description":"Get page by slug (Storefront - returns flattened version)","operationId":"get_page_by_slug_api_pages__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version","default":"CO","title":"Country"},"description":"Country code for version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Page By Slug Api Pages  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pages/{page_id}":{"put":{"tags":["Pages"],"summary":"Update Page","description":"Update page (admin only)","operationId":"update_page_api_pages__page_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page_id","in":"path","required":true,"schema":{"type":"string","title":"Page Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Page Api Pages  Page Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Pages"],"summary":"Delete Page","description":"Delete page (admin only)","operationId":"delete_page_api_pages__page_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page_id","in":"path","required":true,"schema":{"type":"string","title":"Page Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contact/submit":{"post":{"tags":["Contact"],"summary":"Submit Contact Form","description":"Submit contact form message","operationId":"submit_contact_form_api_contact_submit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactMessage"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contact/newsletter/subscribe":{"post":{"tags":["Contact"],"summary":"Subscribe Newsletter","description":"Subscribe to newsletter - saves to users collection with source='newsletter'","operationId":"subscribe_newsletter_api_contact_newsletter_subscribe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsletterSubscribe"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contact/messages":{"get":{"tags":["Contact"],"summary":"Get Contact Messages","description":"Get all contact messages (Admin only - add auth later)","operationId":"get_contact_messages_api_contact_messages_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contact/newsletter/subscribers":{"get":{"tags":["Contact"],"summary":"Get Newsletter Subscribers","description":"Get all newsletter subscribers (Admin only)","operationId":"get_newsletter_subscribers_api_contact_newsletter_subscribers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/sliders":{"get":{"tags":["Sliders"],"summary":"Get Sliders","description":"Get sliders (Storefront - returns flattened versions)","operationId":"get_sliders_api_sliders_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version filtering","default":"CO","title":"Country"},"description":"Country code for version filtering"},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Get Sliders Api Sliders Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Sliders"],"summary":"Create Slider","description":"Create new slider (admin only)","operationId":"create_slider_api_sliders_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SliderCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Slider Api Sliders Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sliders/admin/all":{"get":{"tags":["Sliders"],"summary":"Get All Sliders Admin","description":"Get all sliders for admin (returns full with all versions)","operationId":"get_all_sliders_admin_api_sliders_admin_all_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Get All Sliders Admin Api Sliders Admin All Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/sliders/{slug}":{"get":{"tags":["Sliders"],"summary":"Get Slider By Slug","description":"Get slider by slug (Storefront - returns flattened version)","operationId":"get_slider_by_slug_api_sliders__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"Country code for version","default":"CO","title":"Country"},"description":"Country code for version"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Slider By Slug Api Sliders  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sliders/{slider_id}":{"put":{"tags":["Sliders"],"summary":"Update Slider","description":"Update slider (admin only)","operationId":"update_slider_api_sliders__slider_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"slider_id","in":"path","required":true,"schema":{"type":"string","title":"Slider Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SliderUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Slider Api Sliders  Slider Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Sliders"],"summary":"Delete Slider","description":"Delete slider (admin only)","operationId":"delete_slider_api_sliders__slider_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"slider_id","in":"path","required":true,"schema":{"type":"string","title":"Slider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sliders/{slider_id}/toggle":{"patch":{"tags":["Sliders"],"summary":"Toggle Slider","description":"Toggle slider active status (admin only)","operationId":"toggle_slider_api_sliders__slider_id__toggle_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"slider_id","in":"path","required":true,"schema":{"type":"string","title":"Slider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media/upload":{"post":{"tags":["Media"],"summary":"Upload File","description":"Upload a file to the media library with automatic image optimization.\n\nFiles (both originals and optimized variants) are written through the\nstorage abstraction, which routes them to S3 in production and to disk\nin development. The URL we persist is whatever storage.public_url()\nreturns — a CDN URL in prod, /api/media/serve/... locally.","operationId":"upload_file_api_media_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_file_api_media_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/media/files":{"get":{"tags":["Media"],"summary":"List Media","description":"List all files and folders in a directory","operationId":"list_media_api_media_files_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"folder","in":"query","required":false,"schema":{"type":"string","default":"/","title":"Folder"}},{"name":"file_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media/folders":{"post":{"tags":["Media"],"summary":"Create Folder","description":"Create a new folder","operationId":"create_folder_api_media_folders_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_create_folder_api_media_folders_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/media/files/{file_id}":{"delete":{"tags":["Media"],"summary":"Delete File","description":"Delete a file from the media library including all optimized versions","operationId":"delete_file_api_media_files__file_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Media"],"summary":"Update File Metadata","description":"Update file metadata (alt text, caption)","operationId":"update_file_metadata_api_media_files__file_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_update_file_metadata_api_media_files__file_id__put"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media/folders/{folder_id}":{"delete":{"tags":["Media"],"summary":"Delete Folder","description":"Delete a folder (must be empty)","operationId":"delete_folder_api_media_folders__folder_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media/search":{"get":{"tags":["Media"],"summary":"Search Media","description":"Search files by filename","operationId":"search_media_api_media_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media/serve/{file_path}":{"head":{"tags":["Media"],"summary":"Serve Media File","description":"Serve media files through API route (for ingress routing)","operationId":"serve_media_file_api_media_serve__file_path__head","parameters":[{"name":"file_path","in":"path","required":true,"schema":{"type":"string","title":"File Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Media"],"summary":"Serve Media File","description":"Serve media files through API route (for ingress routing)","operationId":"serve_media_file_api_media_serve__file_path__get","parameters":[{"name":"file_path","in":"path","required":true,"schema":{"type":"string","title":"File Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media/admin/migrate-to-s3":{"post":{"tags":["Media"],"summary":"Migrate Media To S3","description":"Migrate every local file under /app/backend/media to S3 AND rewrite\nevery URL stored in MongoDB to point at the configured CDN.\n\nDesigned to fit Kubernetes ingress timeouts: each call processes a slice\nof the filesystem starting at ``offset`` for up to ``upload_limit`` items.\nThe caller is expected to pass ``next_offset`` returned in the response\nuntil ``summary.remaining == 0``.\n\nQuery params:\n  * offset=0            → where in the sorted file list to start\n  * upload_limit=200    → cap files processed per call\n  * rewrite_only=true   → skip file upload phase\n  * fix_double_host=true (default) → fix any \"host1host2\" doubled URL bug\n\nAuth: admin JWT (Bearer token) required.","operationId":"migrate_media_to_s3_api_media_admin_migrate_to_s3_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"rewrite_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Rewrite Only"}},{"name":"fix_double_host","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Fix Double Host"}},{"name":"upload_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Upload Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/countries":{"get":{"tags":["Countries"],"summary":"Get Countries","description":"Get all countries","operationId":"get_countries_api_countries_get","parameters":[{"name":"enabled_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Enabled Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Get Countries Api Countries Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/countries/{country_id}":{"get":{"tags":["Countries"],"summary":"Get Country","description":"Get country by ID","operationId":"get_country_api_countries__country_id__get","parameters":[{"name":"country_id","in":"path","required":true,"schema":{"type":"string","title":"Country Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Country Api Countries  Country Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Countries"],"summary":"Update Country","description":"Update country (admin only - can toggle isEnabled and update tax config)","operationId":"update_country_api_countries__country_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"country_id","in":"path","required":true,"schema":{"type":"string","title":"Country Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountryUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Country Api Countries  Country Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/localization/countries":{"get":{"tags":["Localization"],"summary":"Get Enabled Countries","description":"Get all enabled countries for localization","operationId":"get_enabled_countries_api_localization_countries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Get Enabled Countries Api Localization Countries Get"}}}}}}},"/api/localization/countries/{country_code}":{"get":{"tags":["Localization"],"summary":"Get Country By Code","description":"Get country information by code","operationId":"get_country_by_code_api_localization_countries__country_code__get","parameters":[{"name":"country_code","in":"path","required":true,"schema":{"type":"string","title":"Country Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Country By Code Api Localization Countries  Country Code  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/localization/default":{"get":{"tags":["Localization"],"summary":"Get Default Localization","description":"Get default localization (USA)","operationId":"get_default_localization_api_localization_default_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Default Localization Api Localization Default Get"}}}}}}},"/api/geolocation/detect-country":{"get":{"tags":["Geolocation"],"summary":"Detect Country","description":"Detect user's country based on IP address\nReturns country code (e.g., 'CO', 'US', 'MX')","operationId":"detect_country_api_geolocation_detect_country_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/checkout/create-payment-intent":{"post":{"tags":["checkout"],"summary":"Create Payment Intent","description":"Create Stripe checkout session for order payment\n\nThis endpoint:\n1. Validates the order\n2. Calculates total amount\n3. Creates Stripe checkout session\n4. Creates pending order in database\n5. Associates order with user if logged in\n6. Saves address and phone to user profile\n7. Returns checkout URL","operationId":"create_payment_intent_api_checkout_create_payment_intent_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"intent":"session","method":"stripe","processor":"stripe","hosted":true,"redirect_field":"checkout_url","currencies":["USD","COP","MXN","EUR","BRL","ARS","GBP"],"guest_supported":true,"confirmation_endpoint":"GET /api/checkout/payment-status/{session_id}","protocols":{"acp":"https://cimonamia.com/.well-known/acp.json","mpp":"https://cimonamia.com/.well-known/mpp.json"}}}},"/api/checkout/payment-status/{session_id}":{"get":{"tags":["checkout"],"summary":"Get Payment Status","description":"Check payment status for a checkout session\nCalled by frontend after redirect from Stripe\n\nThis endpoint handles complete order processing:\n- Verifies payment with Stripe\n- Updates order status to 'paid'\n- Creates guest user account (if guest checkout)\n- Saves phone and address for logged-in users\n- Updates payment transactions","operationId":"get_payment_status_api_checkout_payment_status__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/checkout/order/{order_number}":{"get":{"tags":["checkout"],"summary":"Get Order","description":"Get order details for thank you page","operationId":"get_order_api_checkout_order__order_number__get","parameters":[{"name":"order_number","in":"path","required":true,"schema":{"type":"string","title":"Order Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/checkout/stripe-success":{"get":{"tags":["checkout"],"summary":"Stripe Success Callback","description":"Handle Stripe redirect after successful payment.\nThis endpoint receives the redirect from Stripe, verifies payment,\nand redirects to the frontend success page.\n\nThis avoids Cloudflare WAF blocking cross-origin redirects from Stripe.","operationId":"stripe_success_callback_api_checkout_stripe_success_get","parameters":[{"name":"session_id","in":"query","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/config/stripe":{"get":{"tags":["config"],"summary":"Get Stripe Config","description":"Get Stripe configuration (admin only)","operationId":"get_stripe_config_api_config_stripe_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["config"],"summary":"Save Stripe Config","description":"Save Stripe configuration (admin only)","operationId":"save_stripe_config_api_config_stripe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StripeConfig"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/config/fedex":{"get":{"tags":["config"],"summary":"Get Fedex Config","description":"Get FedEx configuration (admin only)","operationId":"get_fedex_config_api_config_fedex_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["config"],"summary":"Save Fedex Config","description":"Save FedEx configuration (admin only)","operationId":"save_fedex_config_api_config_fedex_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FedExConfig"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/config/envia":{"get":{"tags":["config"],"summary":"Get Envia Config","description":"Get Envía configuration (admin only)","operationId":"get_envia_config_api_config_envia_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["config"],"summary":"Save Envia Config","description":"Save Envía configuration (admin only)","operationId":"save_envia_config_api_config_envia_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnviaConfig"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/config/google-maps":{"get":{"tags":["config"],"summary":"Get Google Maps Config","description":"Get Google Maps configuration (admin only)","operationId":"get_google_maps_config_api_config_google_maps_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["config"],"summary":"Save Google Maps Config","description":"Save Google Maps configuration (admin only)","operationId":"save_google_maps_config_api_config_google_maps_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleMapsConfig"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/config/google-maps/public-key":{"get":{"tags":["config"],"summary":"Get Google Maps Public Key","description":"Get Google Maps API key for frontend use (public endpoint)","operationId":"get_google_maps_public_key_api_config_google_maps_public_key_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/config/shipping-options":{"get":{"tags":["config"],"summary":"Get Shipping Options","description":"Get all active shipping options for a specific country","operationId":"get_shipping_options_api_config_shipping_options_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"US","title":"Country"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["config"],"summary":"Create Shipping Option","description":"Create shipping option (admin only)","operationId":"create_shipping_option_api_config_shipping_options_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShippingOption"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/config/shipping-options/{option_id}":{"put":{"tags":["config"],"summary":"Update Shipping Option","description":"Update shipping option (admin only)","operationId":"update_shipping_option_api_config_shipping_options__option_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"option_id","in":"path","required":true,"schema":{"type":"string","title":"Option Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShippingOption"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["config"],"summary":"Delete Shipping Option","description":"Delete shipping option (admin only)","operationId":"delete_shipping_option_api_config_shipping_options__option_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"option_id","in":"path","required":true,"schema":{"type":"string","title":"Option Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webhook/stripe":{"post":{"tags":["webhooks"],"summary":"Stripe Webhook","description":"Handle Stripe webhook events\n\nThis endpoint receives real-time payment status updates from Stripe","operationId":"stripe_webhook_api_webhook_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/sitemap/sitemap.xml":{"get":{"tags":["SEO"],"summary":"Generate Sitemap","description":"Generate XML sitemap for SEO\nIncludes: Homepage, Shop, Categories, Products, Static Pages","operationId":"generate_sitemap_api_sitemap_sitemap_xml_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"head":{"tags":["SEO"],"summary":"Generate Sitemap","description":"Generate XML sitemap for SEO\nIncludes: Homepage, Shop, Categories, Products, Static Pages","operationId":"generate_sitemap_api_sitemap_sitemap_xml_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agent/catalog.md":{"get":{"tags":["Agents"],"summary":"Catalog Markdown","description":"Return a markdown-formatted catalog overview for LLMs.","operationId":"catalog_markdown_api_agent_catalog_md_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"CO","title":"Country"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":60,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/products/{slug}.md":{"get":{"tags":["Agents"],"summary":"Product Markdown","operationId":"product_markdown_api_agent_products__slug__md_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"CO","title":"Country"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/categories/{slug}.md":{"get":{"tags":["Agents"],"summary":"Category Markdown","operationId":"category_markdown_api_agent_categories__slug__md_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"CO","title":"Country"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":40,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/pages/{slug}.md":{"get":{"tags":["Agents"],"summary":"Page Markdown","operationId":"page_markdown_api_agent_pages__slug__md_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/products/{slug}":{"get":{"tags":["Agents"],"summary":"Product Negotiated","operationId":"product_negotiated_api_agent_products__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"CO","title":"Country"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/categories/{slug}":{"get":{"tags":["Agents"],"summary":"Category Negotiated","operationId":"category_negotiated_api_agent_categories__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"CO","title":"Country"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":40,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/pages/{slug}":{"get":{"tags":["Agents"],"summary":"Page Negotiated","operationId":"page_negotiated_api_agent_pages__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/checkout":{"post":{"tags":["Agents"],"summary":"One-call agent checkout (cart + shipping + payment)","description":"Unified checkout for AI agents.\n\nCombines product lookup, shipping quote, and Stripe payment session\ncreation into a single call. Returns a hosted `checkout_url` the\nagent must redirect the human user to (per ACP guest flow).","operationId":"agent_checkout_api_agent_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-payment-info":{"intent":"session","method":"stripe","hosted":true,"redirect_field":"checkout_url","guest_supported":true,"protocols":{"acp":"https://cimonamia.com/.well-known/acp.json","mpp":"https://cimonamia.com/.well-known/mpp.json"}}}},"/api/seo/fallback":{"get":{"tags":["SEO"],"summary":"Seo Fallback Json","operationId":"seo_fallback_json_api_seo_fallback_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/seo/fallback.html":{"get":{"tags":["SEO"],"summary":"Seo Fallback Html","operationId":"seo_fallback_html_api_seo_fallback_html_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/support/tickets":{"get":{"tags":["Support"],"summary":"Get User Tickets","description":"Get all tickets for current user","operationId":"get_user_tickets_api_support_tickets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SupportTicket"},"type":"array","title":"Response Get User Tickets Api Support Tickets Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Support"],"summary":"Create Ticket","description":"Create a new support ticket (optionally linked to an order)","operationId":"create_ticket_api_support_tickets_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTicketRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportTicket"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/support/my-tickets":{"get":{"tags":["Support"],"summary":"Get My Tickets","description":"Get all tickets for current user","operationId":"get_my_tickets_api_support_my_tickets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/support/tickets/{ticket_id}":{"get":{"tags":["Support"],"summary":"Get Ticket","description":"Get a specific ticket","operationId":"get_ticket_api_support_tickets__ticket_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportTicket"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/support/tickets/{ticket_id}/messages":{"get":{"tags":["Support"],"summary":"Get Ticket Messages","description":"Get all messages for a ticket","operationId":"get_ticket_messages_api_support_tickets__ticket_id__messages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TicketMessage"},"title":"Response Get Ticket Messages Api Support Tickets  Ticket Id  Messages Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Support"],"summary":"Send Message","description":"Send a message in a ticket","operationId":"send_message_api_support_tickets__ticket_id__messages_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketMessage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/support/admin/tickets":{"get":{"tags":["Support"],"summary":"Get All Tickets Admin","description":"Get all support tickets (admin only)","operationId":"get_all_tickets_admin_api_support_admin_tickets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Get All Tickets Admin Api Support Admin Tickets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/support/admin/tickets/{ticket_id}":{"get":{"tags":["Support"],"summary":"Get Ticket Admin","description":"Get ticket details with full order and user info (admin only)","operationId":"get_ticket_admin_api_support_admin_tickets__ticket_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Ticket Admin Api Support Admin Tickets  Ticket Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/support/admin/tickets/{ticket_id}/messages":{"post":{"tags":["Support"],"summary":"Send Admin Message","description":"Send a message as admin","operationId":"send_admin_message_api_support_admin_tickets__ticket_id__messages_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketMessage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/support/admin/tickets/{ticket_id}/status":{"patch":{"tags":["Support"],"summary":"Update Ticket Status Admin","description":"Update ticket status (admin only)","operationId":"update_ticket_status_admin_api_support_admin_tickets__ticket_id__status_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTicketStatusRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/support/orders/{order_id}/tickets":{"get":{"tags":["Support"],"summary":"Get Order Tickets","description":"Get all tickets for a specific order","operationId":"get_order_tickets_api_support_orders__order_id__tickets_get","security":[{"HTTPBearer":[]}],"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/SupportTicket"},"title":"Response Get Order Tickets Api Support Orders  Order Id  Tickets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tracking/orders/{order_id}/public":{"get":{"tags":["Order Tracking"],"summary":"Get Order Tracking Public","description":"Public endpoint to track order using token (no auth required)","operationId":"get_order_tracking_public_api_tracking_orders__order_id__public_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tracking/orders/{order_id}":{"get":{"tags":["Order Tracking"],"summary":"Get Order Tracking","description":"Get order tracking info (authenticated)","operationId":"get_order_tracking_api_tracking_orders__order_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tracking/orders/{order_id}/status":{"post":{"tags":["Order Tracking"],"summary":"Update Order Status","description":"Update order status and create history entry (admin only)","operationId":"update_order_status_api_tracking_orders__order_id__status_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"status","in":"query","required":true,"schema":{"type":"string","title":"Status"}},{"name":"notes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tracking/orders/{order_id}/history":{"get":{"tags":["Order Tracking"],"summary":"Get Order History","description":"Get order status history","operationId":"get_order_history_api_tracking_orders__order_id__history_get","security":[{"HTTPBearer":[]}],"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/OrderStatusHistory"},"title":"Response Get Order History Api Tracking Orders  Order Id  History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reviews":{"post":{"tags":["Reviews"],"summary":"Create Review","description":"Create a new product review (authenticated users only)","operationId":"create_review_api_reviews_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Review Api Reviews Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/reviews/product/{product_id}":{"get":{"tags":["Reviews"],"summary":"Get Product Reviews","description":"Get all approved reviews for a product","operationId":"get_product_reviews_api_reviews_product__product_id__get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","pattern":"^(recent|helpful|rating_high|rating_low)$","default":"recent","title":"Sort"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Product Reviews Api Reviews Product  Product Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reviews/{review_id}":{"put":{"tags":["Reviews"],"summary":"Update Review","description":"Update user's own review","operationId":"update_review_api_reviews__review_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"review_id","in":"path","required":true,"schema":{"type":"string","title":"Review Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Review Api Reviews  Review Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Reviews"],"summary":"Delete Review","description":"Delete user's own review","operationId":"delete_review_api_reviews__review_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"review_id","in":"path","required":true,"schema":{"type":"string","title":"Review Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reviews/my-reviews":{"get":{"tags":["Reviews"],"summary":"Get My Reviews","description":"Get current user's reviews","operationId":"get_my_reviews_api_reviews_my_reviews_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/reviews/{review_id}/helpful":{"post":{"tags":["Reviews"],"summary":"Mark Review Helpful","operationId":"mark_review_helpful_api_reviews__review_id__helpful_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"review_id","in":"path","required":true,"schema":{"type":"string","title":"Review Id"}},{"name":"helpful","in":"query","required":true,"schema":{"type":"boolean","title":"Helpful"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reviews/admin/all":{"get":{"tags":["Reviews"],"summary":"Get All Reviews Admin","description":"Get all reviews with optional status filter (admin only)","operationId":"get_all_reviews_admin_api_reviews_admin_all_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: pending, approved, rejected","title":"Status"},"description":"Filter by status: pending, approved, rejected"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get All Reviews Admin Api Reviews Admin All Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reviews/admin/pending":{"get":{"tags":["Reviews"],"summary":"Get Pending Reviews","description":"Get all pending reviews for moderation (admin only)","operationId":"get_pending_reviews_api_reviews_admin_pending_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pending Reviews Api Reviews Admin Pending Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reviews/admin/{review_id}/moderate":{"patch":{"tags":["Reviews"],"summary":"Moderate Review","description":"Approve or reject a review (admin only)","operationId":"moderate_review_api_reviews_admin__review_id__moderate_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"review_id","in":"path","required":true,"schema":{"type":"string","title":"Review Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewModeration"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Moderate Review Api Reviews Admin  Review Id  Moderate Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/coupons":{"post":{"tags":["Coupons"],"summary":"Create Coupon","description":"Create a new coupon (admin only)","operationId":"create_coupon_api_coupons_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouponCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Coupon Api Coupons Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Coupons"],"summary":"Get Coupons","description":"Get all coupons (admin only)","operationId":"get_coupons_api_coupons_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"status_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Filter"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Coupons Api Coupons Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/coupons/{coupon_id}":{"get":{"tags":["Coupons"],"summary":"Get Coupon","description":"Get coupon by ID (admin only)","operationId":"get_coupon_api_coupons__coupon_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"coupon_id","in":"path","required":true,"schema":{"type":"string","title":"Coupon Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouponResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Coupons"],"summary":"Update Coupon","description":"Update coupon (admin only)","operationId":"update_coupon_api_coupons__coupon_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"coupon_id","in":"path","required":true,"schema":{"type":"string","title":"Coupon Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouponUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Coupon Api Coupons  Coupon Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Coupons"],"summary":"Delete Coupon","description":"Delete coupon (admin only)","operationId":"delete_coupon_api_coupons__coupon_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"coupon_id","in":"path","required":true,"schema":{"type":"string","title":"Coupon Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/coupons/validate":{"post":{"tags":["Coupons"],"summary":"Validate Coupon","description":"Validate coupon and calculate discount","operationId":"validate_coupon_api_coupons_validate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouponValidateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouponValidation"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/coupons/apply/{coupon_id}":{"post":{"tags":["Coupons"],"summary":"Apply Coupon","description":"Record coupon usage (called after successful order)","operationId":"apply_coupon_api_coupons_apply__coupon_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"coupon_id","in":"path","required":true,"schema":{"type":"string","title":"Coupon Id"}},{"name":"order_id","in":"query","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/overview":{"get":{"tags":["Analytics"],"summary":"Get Analytics Overview","description":"Get comprehensive analytics overview","operationId":"get_analytics_overview_api_analytics_overview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"period","in":"query","required":false,"schema":{"type":"string","pattern":"^(7d|30d|90d|1y|all)$","default":"30d","title":"Period"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/revenue-chart":{"get":{"tags":["Analytics"],"summary":"Get Revenue Chart","description":"Get revenue data for charts","operationId":"get_revenue_chart_api_analytics_revenue_chart_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"period","in":"query","required":false,"schema":{"type":"string","pattern":"^(7d|30d|90d)$","default":"30d","title":"Period"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/top-products":{"get":{"tags":["Analytics"],"summary":"Get Top Products","description":"Get top selling products","operationId":"get_top_products_api_analytics_top_products_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}},{"name":"period","in":"query","required":false,"schema":{"type":"string","pattern":"^(7d|30d|90d|all)$","default":"30d","title":"Period"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/category-performance":{"get":{"tags":["Analytics"],"summary":"Get Category Performance","description":"Get sales by category","operationId":"get_category_performance_api_analytics_category_performance_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"period","in":"query","required":false,"schema":{"type":"string","pattern":"^(7d|30d|90d|all)$","default":"30d","title":"Period"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/customer-acquisition":{"get":{"tags":["Analytics"],"summary":"Get Customer Acquisition","description":"Get new vs returning customers","operationId":"get_customer_acquisition_api_analytics_customer_acquisition_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"period","in":"query","required":false,"schema":{"type":"string","pattern":"^(7d|30d|90d)$","default":"30d","title":"Period"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/abandoned-carts/list":{"get":{"tags":["Abandoned Carts"],"summary":"Get Abandoned Carts","description":"Get all abandoned carts (Admin only)","operationId":"get_abandoned_carts_api_abandoned_carts_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/abandoned-carts/trigger-recovery":{"post":{"tags":["Abandoned Carts"],"summary":"Trigger Recovery","description":"Trigger abandoned cart recovery emails (Admin action or cron job)","operationId":"trigger_recovery_api_abandoned_carts_trigger_recovery_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/abandoned-carts/recover/{token}":{"get":{"tags":["Abandoned Carts"],"summary":"Recover Cart","description":"Recover abandoned cart with token","operationId":"recover_cart_api_abandoned_carts_recover__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/inventory/low-stock":{"get":{"tags":["Inventory"],"summary":"Get Low Stock Products","description":"Get all products with low stock levels","operationId":"get_low_stock_products_api_inventory_low_stock_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/inventory/send-low-stock-alert":{"post":{"tags":["Inventory"],"summary":"Send Low Stock Alert Endpoint","description":"Trigger low stock alert emails to admins","operationId":"send_low_stock_alert_endpoint_api_inventory_send_low_stock_alert_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/inventory/alerts-history":{"get":{"tags":["Inventory"],"summary":"Get Alerts History","description":"Get history of inventory alerts sent","operationId":"get_alerts_history_api_inventory_alerts_history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bulk/products/import":{"post":{"tags":["Bulk Operations"],"summary":"Bulk Import Products","description":"Bulk import products from CSV","operationId":"bulk_import_products_api_bulk_products_import_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_bulk_import_products_api_bulk_products_import_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/bulk/products/export":{"get":{"tags":["Bulk Operations"],"summary":"Bulk Export Products","description":"Bulk export products to CSV","operationId":"bulk_export_products_api_bulk_products_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/bulk/products/update-prices":{"post":{"tags":["Bulk Operations"],"summary":"Bulk Update Prices","description":"Bulk update product prices by percentage","operationId":"bulk_update_prices_api_bulk_products_update_prices_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"percentage","in":"query","required":true,"schema":{"type":"number","title":"Percentage"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Product Ids"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bulk/products/update-status":{"post":{"tags":["Bulk Operations"],"summary":"Bulk Update Status","description":"Bulk update product status","operationId":"bulk_update_status_api_bulk_products_update_status_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":true,"schema":{"type":"string","title":"Status"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Product Ids"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bulk/orders/export":{"get":{"tags":["Bulk Operations"],"summary":"Bulk Export Orders","description":"Bulk export orders to CSV","operationId":"bulk_export_orders_api_bulk_orders_export_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bulk/orders/update-status":{"post":{"tags":["Bulk Operations"],"summary":"Bulk Update Order Status","description":"Bulk update order status","operationId":"bulk_update_order_status_api_bulk_orders_update_status_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":true,"schema":{"type":"string","title":"Status"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"title":"Order Ids"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bulk/customers/export":{"get":{"tags":["Bulk Operations"],"summary":"Bulk Export Customers","description":"Bulk export customers to CSV","operationId":"bulk_export_customers_api_bulk_customers_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/settings/smtp":{"get":{"tags":["Settings"],"summary":"Get Smtp Settings","description":"Get SMTP settings (password masked)","operationId":"get_smtp_settings_api_settings_smtp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SMTPSettingsResponse"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Settings"],"summary":"Update Smtp Settings","description":"Update SMTP settings","operationId":"update_smtp_settings_api_settings_smtp_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SMTPSettings"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/settings/smtp/test":{"post":{"tags":["Settings"],"summary":"Test Smtp Connection","description":"Test SMTP connection by sending a test email","operationId":"test_smtp_connection_api_settings_smtp_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SMTPTestRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/settings/general":{"get":{"tags":["Settings"],"summary":"Get General Settings","description":"Get general store settings","operationId":"get_general_settings_api_settings_general_get","security":[{"HTTPBearer":[]}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"tags":["Settings"],"summary":"Update General Settings","description":"Update general store settings","operationId":"update_general_settings_api_settings_general_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"store_name","in":"query","required":true,"schema":{"type":"string","title":"Store Name"}},{"name":"store_url","in":"query","required":true,"schema":{"type":"string","title":"Store Url"}},{"name":"support_email","in":"query","required":true,"schema":{"type":"string","format":"email","title":"Support Email"}},{"name":"currency","in":"query","required":false,"schema":{"type":"string","default":"USD","title":"Currency"}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","default":"UTC","title":"Timezone"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/address/validate":{"post":{"tags":["Address Validation"],"summary":"Validate Address","description":"Validate address using Google Address Validation API","operationId":"validate_address_api_address_validate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateAddressRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/address/autocomplete":{"post":{"tags":["Address Validation"],"summary":"Address Autocomplete","description":"Simple address autocomplete using Google Address Validation API","operationId":"address_autocomplete_api_address_autocomplete_post","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","title":"Query"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/warehouses":{"get":{"tags":["Warehouses"],"summary":"Get Warehouses","description":"Get all warehouses (optionally filter by country and status)","operationId":"get_warehouses_api_warehouses_get","parameters":[{"name":"country_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"}},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Warehouse"},"title":"Response Get Warehouses Api Warehouses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Warehouses"],"summary":"Create Warehouse","description":"Create new warehouse (admin only)","operationId":"create_warehouse_api_warehouses_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WarehouseCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Warehouse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/warehouses/{warehouse_id}":{"get":{"tags":["Warehouses"],"summary":"Get Warehouse","description":"Get single warehouse by ID","operationId":"get_warehouse_api_warehouses__warehouse_id__get","parameters":[{"name":"warehouse_id","in":"path","required":true,"schema":{"type":"string","title":"Warehouse Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Warehouse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Warehouses"],"summary":"Update Warehouse","description":"Update warehouse (admin only)","operationId":"update_warehouse_api_warehouses__warehouse_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"warehouse_id","in":"path","required":true,"schema":{"type":"string","title":"Warehouse Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WarehouseUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Warehouse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Warehouses"],"summary":"Delete Warehouse","description":"Delete warehouse (admin only)","operationId":"delete_warehouse_api_warehouses__warehouse_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"warehouse_id","in":"path","required":true,"schema":{"type":"string","title":"Warehouse Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/general-settings/general":{"get":{"tags":["General Settings"],"summary":"Get General Settings","description":"Get general settings (public - for frontend use)","operationId":"get_general_settings_api_general_settings_general_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"tags":["General Settings"],"summary":"Update General Settings","description":"Update general settings (admin only)","operationId":"update_general_settings_api_general_settings_general_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralSettingsUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/general-settings/general/admin":{"get":{"tags":["General Settings"],"summary":"Get General Settings Admin","description":"Get general settings (admin - includes all data)","operationId":"get_general_settings_admin_api_general_settings_general_admin_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/shipping/calculate":{"post":{"tags":["Shipping"],"summary":"Calculate Shipping","description":"Return the resolved list of shipping options for a given destination.","operationId":"calculate_shipping_api_shipping_calculate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateRatesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/shipping/config/envia":{"get":{"tags":["Shipping","Shipping Admin"],"summary":"Get Envia Config","operationId":"get_envia_config_api_shipping_config_envia_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Shipping","Shipping Admin"],"summary":"Update Envia Config","description":"Partial update. Any field set to None is ignored (won't overwrite).","operationId":"update_envia_config_api_shipping_config_envia_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnviaConfigUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/shipping/config/envia/register-webhook":{"post":{"tags":["Shipping","Shipping Admin"],"summary":"Register Envia Webhook","operationId":"register_envia_webhook_api_shipping_config_envia_register_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}}},"components":{"schemas":{"AddressCreate":{"properties":{"type":{"$ref":"#/components/schemas/AddressType"},"fullName":{"type":"string","title":"Fullname"},"street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street"},"number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Number"},"apartment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apartment"},"addressLine1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Addressline1"},"addressLine2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Addressline2"},"city":{"type":"string","title":"City"},"state":{"type":"string","title":"State"},"postalCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postalcode"},"zipCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zipcode"},"country":{"type":"string","title":"Country"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"isDefault":{"type":"boolean","title":"Isdefault","default":false}},"type":"object","required":["type","fullName","city","state","country"],"title":"AddressCreate"},"AddressInput":{"properties":{"street":{"type":"string","title":"Street"},"city":{"type":"string","title":"City"},"state":{"type":"string","title":"State"},"postalCode":{"type":"string","title":"Postalcode"},"country":{"type":"string","title":"Country","default":"US"}},"type":"object","required":["street","city","state","postalCode"],"title":"AddressInput"},"AddressType":{"type":"string","enum":["shipping","billing"],"title":"AddressType"},"AddressUpdate":{"properties":{"type":{"anyOf":[{"$ref":"#/components/schemas/AddressType"},{"type":"null"}]},"fullName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fullname"},"street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street"},"number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Number"},"apartment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apartment"},"addressLine1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Addressline1"},"addressLine2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Addressline2"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"postalCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postalcode"},"zipCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zipcode"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"isDefault":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isdefault"}},"type":"object","title":"AddressUpdate"},"AgentCheckoutAddress":{"properties":{"full_name":{"type":"string","title":"Full Name"},"email":{"type":"string","title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone","default":""},"street":{"type":"string","title":"Street"},"number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Number","default":""},"apartment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apartment","default":""},"city":{"type":"string","title":"City"},"state":{"type":"string","title":"State"},"postal_code":{"type":"string","title":"Postal Code"},"country":{"type":"string","title":"Country"}},"type":"object","required":["full_name","email","street","city","state","postal_code","country"],"title":"AgentCheckoutAddress"},"AgentCheckoutItem":{"properties":{"product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"},"product_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Slug"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","default":1},"variant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Id"}},"type":"object","title":"AgentCheckoutItem"},"AgentCheckoutRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AgentCheckoutItem"},"type":"array","title":"Items"},"shipping_address":{"$ref":"#/components/schemas/AgentCheckoutAddress"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"preferred_shipping_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred Shipping Id"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","default":""}},"type":"object","required":["items","shipping_address"],"title":"AgentCheckoutRequest"},"Body_bulk_import_products_api_bulk_products_import_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_bulk_import_products_api_bulk_products_import_post"},"Body_create_folder_api_media_folders_post":{"properties":{"name":{"type":"string","title":"Name"},"parentPath":{"type":"string","title":"Parentpath","default":"/"}},"type":"object","required":["name"],"title":"Body_create_folder_api_media_folders_post"},"Body_import_products_api_products_import_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_import_products_api_products_import_post"},"Body_update_file_metadata_api_media_files__file_id__put":{"properties":{"alt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alt"},"caption":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caption"}},"type":"object","title":"Body_update_file_metadata_api_media_files__file_id__put"},"Body_upload_file_api_media_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"folder":{"type":"string","title":"Folder","default":"/"},"alt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alt"},"caption":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caption"}},"type":"object","required":["file"],"title":"Body_upload_file_api_media_upload_post"},"Body_upload_image_api_uploads_images_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_image_api_uploads_images_post"},"BrandCreate":{"properties":{"slug":{"type":"string","title":"Slug"},"logo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo"},"isActive":{"type":"boolean","title":"Isactive","default":true},"versions":{"items":{"$ref":"#/components/schemas/BrandVersion"},"type":"array","title":"Versions","default":[]}},"type":"object","required":["slug"],"title":"BrandCreate"},"BrandUpdate":{"properties":{"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"logo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo"},"isActive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isactive"},"versions":{"anyOf":[{"items":{"$ref":"#/components/schemas/BrandVersion"},"type":"array"},{"type":"null"}],"title":"Versions"}},"type":"object","title":"BrandUpdate"},"BrandVersion":{"properties":{"countryCode":{"type":"string","title":"Countrycode"},"language":{"type":"string","title":"Language"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"isAvailable":{"type":"boolean","title":"Isavailable","default":true}},"type":"object","required":["countryCode","language","name"],"title":"BrandVersion","description":"Country-specific version of brand"},"CalculateRatesRequest":{"properties":{"destination":{"$ref":"#/components/schemas/DestinationInput"},"packages":{"anyOf":[{"items":{"$ref":"#/components/schemas/Package"},"type":"array"},{"type":"null"}],"title":"Packages"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"}},"type":"object","required":["destination"],"title":"CalculateRatesRequest"},"CategoryCreate":{"properties":{"slug":{"type":"string","title":"Slug"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"parentId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentid"},"order":{"type":"integer","title":"Order","default":0},"isActive":{"type":"boolean","title":"Isactive","default":true},"showOnHome":{"type":"boolean","title":"Showonhome","default":false},"versions":{"items":{"$ref":"#/components/schemas/CategoryVersion"},"type":"array","title":"Versions","default":[]}},"type":"object","required":["slug"],"title":"CategoryCreate"},"CategoryUpdate":{"properties":{"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"parentId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parentid"},"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"},"isActive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isactive"},"showOnHome":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Showonhome"},"versions":{"anyOf":[{"items":{"$ref":"#/components/schemas/CategoryVersion"},"type":"array"},{"type":"null"}],"title":"Versions"}},"type":"object","title":"CategoryUpdate"},"CategoryVersion":{"properties":{"countryCode":{"type":"string","title":"Countrycode"},"language":{"type":"string","title":"Language"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"isAvailable":{"type":"boolean","title":"Isavailable","default":true}},"type":"object","required":["countryCode","language","name"],"title":"CategoryVersion","description":"Country-specific version of category"},"ContactMessage":{"properties":{"name":{"type":"string","title":"Name"},"email":{"type":"string","format":"email","title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"subject":{"type":"string","title":"Subject"},"message":{"type":"string","title":"Message"}},"type":"object","required":["name","email","subject","message"],"title":"ContactMessage"},"CountryUpdate":{"properties":{"isEnabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isenabled"},"taxConfig":{"anyOf":[{"$ref":"#/components/schemas/TaxConfig"},{"type":"null"}]},"shippingConfig":{"anyOf":[{"$ref":"#/components/schemas/ShippingConfig"},{"type":"null"}]}},"type":"object","title":"CountryUpdate"},"CouponCreate":{"properties":{"code":{"type":"string","maxLength":50,"minLength":3,"title":"Code"},"type":{"$ref":"#/components/schemas/CouponType"},"value":{"type":"number","minimum":0.0,"title":"Value"},"minOrderAmount":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Minorderamount","default":0},"maxDiscount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Maxdiscount"},"startDate":{"type":"string","format":"date-time","title":"Startdate"},"endDate":{"type":"string","format":"date-time","title":"Enddate"},"usageLimit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Usagelimit"},"perUserLimit":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Peruserlimit","default":1},"applicableProducts":{"items":{"type":"string"},"type":"array","title":"Applicableproducts","default":[]},"applicableCategories":{"items":{"type":"string"},"type":"array","title":"Applicablecategories","default":[]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["code","type","value","startDate","endDate"],"title":"CouponCreate"},"CouponResponse":{"properties":{"id":{"type":"string","title":"Id"},"code":{"type":"string","title":"Code"},"type":{"$ref":"#/components/schemas/CouponType"},"value":{"type":"number","title":"Value"},"minOrderAmount":{"type":"number","title":"Minorderamount"},"maxDiscount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Maxdiscount"},"startDate":{"type":"string","format":"date-time","title":"Startdate"},"endDate":{"type":"string","format":"date-time","title":"Enddate"},"usageLimit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Usagelimit"},"usedCount":{"type":"integer","title":"Usedcount"},"perUserLimit":{"type":"integer","title":"Peruserlimit"},"applicableProducts":{"items":{"type":"string"},"type":"array","title":"Applicableproducts"},"applicableCategories":{"items":{"type":"string"},"type":"array","title":"Applicablecategories"},"status":{"$ref":"#/components/schemas/CouponStatus"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"}},"type":"object","required":["id","code","type","value","minOrderAmount","maxDiscount","startDate","endDate","usageLimit","usedCount","perUserLimit","applicableProducts","applicableCategories","status","description","createdAt","updatedAt"],"title":"CouponResponse"},"CouponStatus":{"type":"string","enum":["active","inactive","expired"],"title":"CouponStatus"},"CouponType":{"type":"string","enum":["percentage","fixed","free_shipping"],"title":"CouponType"},"CouponUpdate":{"properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"type":{"anyOf":[{"$ref":"#/components/schemas/CouponType"},{"type":"null"}]},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"minOrderAmount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minorderamount"},"maxDiscount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Maxdiscount"},"startDate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Startdate"},"endDate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Enddate"},"usageLimit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Usagelimit"},"perUserLimit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Peruserlimit"},"applicableProducts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Applicableproducts"},"applicableCategories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Applicablecategories"},"status":{"anyOf":[{"$ref":"#/components/schemas/CouponStatus"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"CouponUpdate"},"CouponValidateRequest":{"properties":{"code":{"type":"string","title":"Code"},"orderAmount":{"type":"number","title":"Orderamount"},"productIds":{"items":{"type":"string"},"type":"array","title":"Productids","default":[]},"categoryIds":{"items":{"type":"string"},"type":"array","title":"Categoryids","default":[]}},"type":"object","required":["code","orderAmount"],"title":"CouponValidateRequest"},"CouponValidation":{"properties":{"valid":{"type":"boolean","title":"Valid"},"message":{"type":"string","title":"Message"},"discountAmount":{"type":"number","title":"Discountamount","default":0},"finalAmount":{"type":"number","title":"Finalamount","default":0}},"type":"object","required":["valid","message"],"title":"CouponValidation"},"CreateOrderRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/OrderItem"},"type":"array","title":"Items"},"shipping_address":{"$ref":"#/components/schemas/ShippingAddress"},"shipping_method_id":{"type":"string","title":"Shipping Method Id"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"tax_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tax Info"},"discount_amount":{"type":"number","title":"Discount Amount","default":0},"coupon_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coupon Code"}},"type":"object","required":["items","shipping_address","shipping_method_id"],"title":"CreateOrderRequest","description":"Request to create an order"},"CreateTicketRequest":{"properties":{"orderId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Orderid"},"subject":{"type":"string","title":"Subject"},"description":{"type":"string","title":"Description"},"priority":{"$ref":"#/components/schemas/TicketPriority","default":"medium"}},"type":"object","required":["subject","description"],"title":"CreateTicketRequest"},"DestinationInput":{"properties":{"country":{"type":"string","title":"Country"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","default":""},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","default":""},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code","default":""},"street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street","default":""}},"type":"object","required":["country"],"title":"DestinationInput"},"EnviaConfig":{"properties":{"sandbox_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sandbox Token"},"production_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Production Token"},"environment":{"type":"string","title":"Environment","default":"sandbox"}},"type":"object","title":"EnviaConfig","description":"Envía API configuration"},"EnviaConfigUpdate":{"properties":{"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"origin":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Origin"},"default_package":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Default Package"},"carriers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Carriers"},"auto_create_shipment":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Create Shipment"}},"type":"object","title":"EnviaConfigUpdate"},"FeaturesSettings":{"properties":{"reviewsEnabled":{"type":"boolean","title":"Reviewsenabled","default":true}},"type":"object","title":"FeaturesSettings","description":"Feature toggles the admin controls from the CMS.\n\nKeep this block permissive-by-default (True) so existing installs\nkeep behaving the same until the admin explicitly opts out."},"FedExConfig":{"properties":{"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret"},"account_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Number"},"environment":{"type":"string","title":"Environment","default":"sandbox"}},"type":"object","title":"FedExConfig","description":"FedEx API configuration"},"GeneralSettingsUpdate":{"properties":{"socialNetworks":{"anyOf":[{"items":{"$ref":"#/components/schemas/SocialNetwork"},"type":"array"},{"type":"null"}],"title":"Socialnetworks"},"seo":{"anyOf":[{"$ref":"#/components/schemas/SEOSettings"},{"type":"null"}]},"status":{"anyOf":[{"$ref":"#/components/schemas/StatusSettings"},{"type":"null"}]},"media":{"anyOf":[{"$ref":"#/components/schemas/MediaSettings"},{"type":"null"}]},"features":{"anyOf":[{"$ref":"#/components/schemas/FeaturesSettings"},{"type":"null"}]},"seoFallback":{"anyOf":[{"$ref":"#/components/schemas/SEOFallbackSettings"},{"type":"null"}]}},"type":"object","title":"GeneralSettingsUpdate"},"GoogleMapsConfig":{"properties":{"api_key":{"type":"string","title":"Api Key","default":""},"is_active":{"type":"boolean","title":"Is Active","default":false}},"type":"object","title":"GoogleMapsConfig","description":"Google Maps API configuration"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MediaFile":{"properties":{"id":{"type":"string","title":"Id"},"filename":{"type":"string","title":"Filename"},"originalName":{"type":"string","title":"Originalname"},"path":{"type":"string","title":"Path"},"url":{"type":"string","title":"Url"},"mimeType":{"type":"string","title":"Mimetype"},"size":{"type":"integer","title":"Size"},"folder":{"type":"string","title":"Folder","default":"/"},"alt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alt"},"caption":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caption"},"uploadedBy":{"type":"string","title":"Uploadedby"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"},"optimized":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Optimized"},"isOptimized":{"type":"boolean","title":"Isoptimized","default":false}},"type":"object","required":["id","filename","originalName","path","url","mimeType","size","uploadedBy","createdAt","updatedAt"],"title":"MediaFile"},"MediaFolder":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"path":{"type":"string","title":"Path"},"parentPath":{"type":"string","title":"Parentpath","default":"/"},"createdBy":{"type":"string","title":"Createdby"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"type":"object","required":["id","name","path","createdBy","createdAt"],"title":"MediaFolder"},"MediaListResponse":{"properties":{"files":{"items":{"$ref":"#/components/schemas/MediaFile"},"type":"array","title":"Files"},"folders":{"items":{"$ref":"#/components/schemas/MediaFolder"},"type":"array","title":"Folders"},"currentPath":{"type":"string","title":"Currentpath"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["files","folders","currentPath","total"],"title":"MediaListResponse"},"MediaSettings":{"properties":{"cdnBaseUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cdnbaseurl"}},"type":"object","title":"MediaSettings","description":"Storage / CDN config the admin can tweak without redeploys.\n\nThe frontend reads ``cdnBaseUrl`` and uses it to rewrite legacy\n``/api/media/serve/...`` paths at render time, so existing DB\ndocuments keep working after the S3 migration."},"MediaUploadResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"file":{"anyOf":[{"$ref":"#/components/schemas/MediaFile"},{"type":"null"}]},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"MediaUploadResponse"},"MessageSender":{"type":"string","enum":["customer","admin","system"],"title":"MessageSender"},"NewsletterSubscribe":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["email"],"title":"NewsletterSubscribe"},"OrderCreate":{"properties":{"items":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Items"},"subtotal":{"type":"number","title":"Subtotal"},"discount":{"type":"number","title":"Discount","default":0},"tax":{"type":"number","title":"Tax"},"shippingCost":{"type":"number","title":"Shippingcost"},"total":{"type":"number","title":"Total"},"currency":{"type":"string","title":"Currency","default":"USD"},"shippingAddress":{"additionalProperties":true,"type":"object","title":"Shippingaddress"},"billingAddress":{"additionalProperties":true,"type":"object","title":"Billingaddress"},"shippingMethod":{"type":"string","title":"Shippingmethod"}},"type":"object","required":["items","subtotal","tax","shippingCost","total","shippingAddress","billingAddress","shippingMethod"],"title":"OrderCreate","description":"Old order creation model"},"OrderItem":{"properties":{"product_id":{"type":"string","title":"Product Id"},"product_slug":{"type":"string","title":"Product Slug"},"product_name":{"type":"string","title":"Product Name"},"product_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Image"},"quantity":{"type":"integer","title":"Quantity"},"price":{"type":"number","title":"Price"},"currency":{"type":"string","title":"Currency"}},"type":"object","required":["product_id","product_slug","product_name","quantity","price","currency"],"title":"OrderItem","description":"Order line item"},"OrderStatusHistory":{"properties":{"id":{"type":"string","title":"Id"},"orderId":{"type":"string","title":"Orderid"},"status":{"type":"string","title":"Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"updatedBy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updatedby"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"}},"type":"object","required":["id","orderId","status","timestamp"],"title":"OrderStatusHistory"},"Package":{"properties":{"length":{"type":"number","title":"Length"},"width":{"type":"number","title":"Width"},"height":{"type":"number","title":"Height"},"weight":{"type":"number","title":"Weight"}},"type":"object","required":["length","width","height","weight"],"title":"Package","description":"Package dimensions and weight"},"PageCategoryCreate":{"properties":{"slug":{"type":"string","title":"Slug"},"order":{"type":"integer","title":"Order","default":0},"isActive":{"type":"boolean","title":"Isactive","default":true},"versions":{"items":{"$ref":"#/components/schemas/PageCategoryVersion"},"type":"array","title":"Versions","default":[]}},"type":"object","required":["slug"],"title":"PageCategoryCreate"},"PageCategoryUpdate":{"properties":{"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"},"isActive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isactive"},"versions":{"anyOf":[{"items":{"$ref":"#/components/schemas/PageCategoryVersion"},"type":"array"},{"type":"null"}],"title":"Versions"}},"type":"object","title":"PageCategoryUpdate"},"PageCategoryVersion":{"properties":{"countryCode":{"type":"string","title":"Countrycode"},"language":{"type":"string","title":"Language"},"name":{"type":"string","title":"Name"},"isAvailable":{"type":"boolean","title":"Isavailable","default":true}},"type":"object","required":["countryCode","language","name"],"title":"PageCategoryVersion","description":"Country-specific version of page category"},"PageCreate":{"properties":{"slug":{"type":"string","title":"Slug"},"categoryId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Categoryid"},"featuredImage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Featuredimage"},"isPublished":{"type":"boolean","title":"Ispublished","default":true},"publishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publishedat"},"versions":{"items":{"$ref":"#/components/schemas/PageVersion"},"type":"array","title":"Versions","default":[]},"sections":{"items":{"$ref":"#/components/schemas/PageSection"},"type":"array","title":"Sections","default":[]}},"type":"object","required":["slug"],"title":"PageCreate"},"PageSection":{"properties":{"key":{"type":"string","title":"Key"},"blockType":{"type":"string","enum":["heading","richtext","quote","gallery","image","cta"],"title":"Blocktype"},"images":{"items":{"$ref":"#/components/schemas/SectionImage"},"type":"array","title":"Images","default":[]},"order":{"type":"integer","title":"Order","default":0},"isActive":{"type":"boolean","title":"Isactive","default":true},"versions":{"items":{"$ref":"#/components/schemas/PageSectionVersion"},"type":"array","title":"Versions","default":[]}},"type":"object","required":["key","blockType"],"title":"PageSection","description":"Structured block inside a page. Uniquely identified by `key` (aka tag).\n\nThe `key` acts as the addressable tag the frontend consumes to render this\nblock in the right position (e.g., `home.manifest.body`,\n`home.behind.gallery`, `about.origin.story`)."},"PageSectionVersion":{"properties":{"countryCode":{"type":"string","title":"Countrycode"},"language":{"type":"string","title":"Language"},"heading":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Heading","default":""},"subheading":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subheading","default":""},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body","default":""},"caption":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caption","default":""},"ctaLabel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ctalabel","default":""},"ctaUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ctaurl","default":""}},"type":"object","required":["countryCode","language"],"title":"PageSectionVersion","description":"Country-specific version of a page section block."},"PageUpdate":{"properties":{"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"categoryId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Categoryid"},"featuredImage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Featuredimage"},"isPublished":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ispublished"},"publishedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publishedat"},"versions":{"anyOf":[{"items":{"$ref":"#/components/schemas/PageVersion"},"type":"array"},{"type":"null"}],"title":"Versions"},"sections":{"anyOf":[{"items":{"$ref":"#/components/schemas/PageSection"},"type":"array"},{"type":"null"}],"title":"Sections"}},"type":"object","title":"PageUpdate"},"PageVersion":{"properties":{"countryCode":{"type":"string","title":"Countrycode"},"language":{"type":"string","title":"Language"},"title":{"type":"string","title":"Title"},"content":{"type":"string","title":"Content","default":""},"metaTitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metatitle"},"metaDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadescription"},"isAvailable":{"type":"boolean","title":"Isavailable","default":true}},"type":"object","required":["countryCode","language","title"],"title":"PageVersion","description":"Country-specific version of page (legacy blob content still supported)."},"ProductCreate":{"properties":{"slug":{"type":"string","title":"Slug"},"sku":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sku"},"categoryIds":{"items":{"type":"string"},"type":"array","title":"Categoryids","default":[]},"brandId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brandid"},"images":{"items":{"$ref":"#/components/schemas/ProductImage"},"type":"array","title":"Images","default":[]},"isFeatured":{"type":"boolean","title":"Isfeatured","default":false},"isOnSale":{"type":"boolean","title":"Isonsale","default":false},"isBestSelling":{"type":"boolean","title":"Isbestselling","default":false},"isNew":{"type":"boolean","title":"Isnew","default":false},"status":{"$ref":"#/components/schemas/ProductStatus","default":"active"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"labels":{"items":{"$ref":"#/components/schemas/ProductLabel"},"type":"array","title":"Labels","default":[]},"sizes":{"items":{"type":"string"},"type":"array","title":"Sizes","default":[]},"colors":{"items":{"type":"string"},"type":"array","title":"Colors","default":[]},"materials":{"items":{"type":"string"},"type":"array","title":"Materials","default":[]},"versions":{"items":{"$ref":"#/components/schemas/ProductVersion"},"type":"array","title":"Versions","default":[]}},"type":"object","required":["slug"],"title":"ProductCreate"},"ProductImage":{"properties":{"original":{"type":"string","title":"Original"},"thumbnail":{"type":"string","title":"Thumbnail"},"medium":{"type":"string","title":"Medium"},"order":{"type":"integer","title":"Order","default":0},"alt":{"$ref":"#/components/schemas/TranslatedText"}},"type":"object","required":["original","thumbnail","medium","alt"],"title":"ProductImage"},"ProductLabel":{"properties":{"text":{"type":"string","title":"Text"},"color":{"type":"string","title":"Color","default":"terracotta"}},"type":"object","required":["text"],"title":"ProductLabel","description":"Custom badge attached to a product (e.g. NUEVO, SALE, LIMITADO).\n`color` is one of the named tokens: terracotta, ink, accent, sage."},"ProductStatus":{"type":"string","enum":["draft","active","archived"],"title":"ProductStatus"},"ProductUpdate":{"properties":{"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"sku":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sku"},"categoryIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Categoryids"},"brandId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brandid"},"images":{"anyOf":[{"items":{"$ref":"#/components/schemas/ProductImage"},"type":"array"},{"type":"null"}],"title":"Images"},"isFeatured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isfeatured"},"isOnSale":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isonsale"},"isBestSelling":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isbestselling"},"isNew":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isnew"},"status":{"anyOf":[{"$ref":"#/components/schemas/ProductStatus"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"labels":{"anyOf":[{"items":{"$ref":"#/components/schemas/ProductLabel"},"type":"array"},{"type":"null"}],"title":"Labels"},"sizes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sizes"},"colors":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Colors"},"materials":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Materials"},"versions":{"anyOf":[{"items":{"$ref":"#/components/schemas/ProductVersion"},"type":"array"},{"type":"null"}],"title":"Versions"}},"type":"object","title":"ProductUpdate"},"ProductVersion":{"properties":{"countryCode":{"type":"string","title":"Countrycode"},"language":{"type":"string","title":"Language"},"currency":{"type":"string","title":"Currency"},"name":{"type":"string","title":"Name"},"shortDescription":{"type":"string","title":"Shortdescription"},"description":{"type":"string","title":"Description"},"price":{"type":"number","title":"Price"},"compareAtPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Compareatprice"},"isAvailable":{"type":"boolean","title":"Isavailable","default":true},"inventory":{"$ref":"#/components/schemas/ProductVersionInventory"},"seoTitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seotitle"},"seoDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seodescription"},"highlights":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Highlights","default":[]},"shippingInfo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shippinginfo","default":""},"returnPolicy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Returnpolicy","default":""}},"type":"object","required":["countryCode","language","currency","name","shortDescription","description","price","inventory"],"title":"ProductVersion","description":"Country-specific version of a product"},"ProductVersionInventory":{"properties":{"trackInventory":{"type":"boolean","title":"Trackinventory","default":true},"lowStockThreshold":{"type":"integer","title":"Lowstockthreshold","default":5},"allowBackorder":{"type":"boolean","title":"Allowbackorder","default":false},"quantity":{"type":"integer","title":"Quantity","default":0},"warehouses":{"items":{"$ref":"#/components/schemas/WarehouseInventory"},"type":"array","title":"Warehouses","default":[]}},"type":"object","title":"ProductVersionInventory","description":"Inventory specific to each country version - supports multi-warehouse"},"ReviewCreate":{"properties":{"productId":{"type":"string","title":"Productid"},"rating":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Rating"},"title":{"type":"string","maxLength":200,"title":"Title"},"review":{"type":"string","maxLength":2000,"title":"Review"},"photos":{"items":{"type":"string"},"type":"array","title":"Photos","default":[]}},"type":"object","required":["productId","rating","title","review"],"title":"ReviewCreate"},"ReviewModeration":{"properties":{"status":{"$ref":"#/components/schemas/ReviewStatus"},"moderatorNotes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moderatornotes"}},"type":"object","required":["status"],"title":"ReviewModeration"},"ReviewStatus":{"type":"string","enum":["pending","approved","rejected"],"title":"ReviewStatus"},"ReviewUpdate":{"properties":{"rating":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Rating"},"title":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Title"},"review":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Review"},"photos":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Photos"}},"type":"object","title":"ReviewUpdate"},"SEOFallbackLink":{"properties":{"label":{"type":"string","title":"Label","default":""},"href":{"type":"string","title":"Href","default":"/"}},"type":"object","title":"SEOFallbackLink","description":"CTA link shown under the main description."},"SEOFallbackSection":{"properties":{"heading":{"type":"string","title":"Heading","default":""},"body":{"type":"string","title":"Body","default":""}},"type":"object","title":"SEOFallbackSection","description":"One section of the SEO fallback block (H2 + body)."},"SEOFallbackSettings":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"title":{"type":"string","title":"Title","default":"Cimonamia — Moda editorial reborn y sostenible"},"description":{"type":"string","title":"Description","default":"Cimonamia rediseña, borda y transforma prendas seleccionadas a mano para crear piezas únicas de moda editorial. Cada abrigo, chaqueta, blazer, falda, vestido, top, jean o capa nace de un proceso reborn: recuperamos textiles de alta calidad y les damos una segunda vida con detalles artesanales — bordados, pintura, deconstrucción y reconstrucción. Enviamos a Colombia, México, España, Estados Unidos, Argentina, Brasil, Perú, Chile, Ecuador y Uruguay, con precios en moneda local y cotización de envío en tiempo real."},"cta_links":{"items":{"$ref":"#/components/schemas/SEOFallbackLink"},"type":"array","title":"Cta Links"},"sections":{"items":{"$ref":"#/components/schemas/SEOFallbackSection"},"type":"array","title":"Sections"}},"type":"object","title":"SEOFallbackSettings","description":"Static SEO content injected into <div id=\"root\"> at build time.\n\nEditable from Admin → General → SEO Content. Read by the frontend's\nbuild script (`scripts/inject-seo.js`) which fetches the current\nvalues via GET /api/seo/fallback and replaces the <!-- SEO_FALLBACK -->\nplaceholder in public/index.html. Users NEVER see this content — it\nis hidden via inline CSS the moment the browser parses the page."},"SEOSettings":{"properties":{"siteName":{"type":"string","title":"Sitename","default":"ReBorn"},"defaultMetaTitle":{"type":"string","title":"Defaultmetatitle","default":"ReBorn - Sustainable Fashion"},"defaultMetaDescription":{"type":"string","title":"Defaultmetadescription","default":"Discover sustainable fashion with ReBorn"},"metaKeywords":{"type":"string","title":"Metakeywords","default":"sustainable fashion, eco-friendly, vintage clothing"},"author":{"type":"string","title":"Author","default":"ReBorn"},"robotsIndex":{"type":"boolean","title":"Robotsindex","default":true},"ogTitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ogtitle"},"ogDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ogdescription"},"ogImage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ogimage"},"ogType":{"type":"string","title":"Ogtype","default":"website"},"ogSiteName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ogsitename"},"ogLocale":{"type":"string","title":"Oglocale","default":"es_CO"},"twitterCardType":{"type":"string","title":"Twittercardtype","default":"summary_large_image"},"twitterSite":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Twittersite"},"twitterCreator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Twittercreator"},"twitterTitle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Twittertitle"},"twitterDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Twitterdescription"},"twitterImage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Twitterimage"},"faviconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Faviconurl"},"appleTouchIconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appletouchiconurl"},"manifestUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manifesturl"},"googleAnalyticsId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Googleanalyticsid"},"googleTagManagerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Googletagmanagerid"},"facebookPixelId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Facebookpixelid"},"microsoftClarityId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Microsoftclarityid"},"hotjarId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hotjarid"},"organizationName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organizationname"},"organizationLogo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organizationlogo"},"organizationSocialProfiles":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Organizationsocialprofiles","default":[]},"canonicalUrlBase":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonicalurlbase"},"defaultLanguage":{"type":"string","title":"Defaultlanguage","default":"es"},"alternateLanguages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Alternatelanguages","default":[]}},"type":"object","title":"SEOSettings"},"SMTPSettings":{"properties":{"smtp_host":{"type":"string","title":"Smtp Host"},"smtp_port":{"type":"integer","title":"Smtp Port"},"smtp_user":{"type":"string","title":"Smtp User"},"smtp_password":{"type":"string","title":"Smtp Password"},"smtp_from_email":{"type":"string","format":"email","title":"Smtp From Email"},"smtp_from_name":{"type":"string","title":"Smtp From Name"},"smtp_enabled":{"type":"boolean","title":"Smtp Enabled","default":true}},"type":"object","required":["smtp_host","smtp_port","smtp_user","smtp_password","smtp_from_email","smtp_from_name"],"title":"SMTPSettings"},"SMTPSettingsResponse":{"properties":{"smtp_host":{"type":"string","title":"Smtp Host"},"smtp_port":{"type":"integer","title":"Smtp Port"},"smtp_user":{"type":"string","title":"Smtp User"},"smtp_password":{"type":"string","title":"Smtp Password"},"smtp_from_email":{"type":"string","title":"Smtp From Email"},"smtp_from_name":{"type":"string","title":"Smtp From Name"},"smtp_enabled":{"type":"boolean","title":"Smtp Enabled"}},"type":"object","required":["smtp_host","smtp_port","smtp_user","smtp_password","smtp_from_email","smtp_from_name","smtp_enabled"],"title":"SMTPSettingsResponse"},"SMTPTestRequest":{"properties":{"test_email":{"type":"string","format":"email","title":"Test Email"}},"type":"object","required":["test_email"],"title":"SMTPTestRequest"},"SectionImage":{"properties":{"url":{"type":"string","title":"Url"},"thumbnail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail"},"alt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alt","default":""},"caption":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caption","default":""}},"type":"object","required":["url"],"title":"SectionImage","description":"A single image inside a gallery / image / image-with-inset block."},"SendMessageRequest":{"properties":{"ticketId":{"type":"string","title":"Ticketid"},"message":{"type":"string","title":"Message"},"attachments":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Attachments","default":[]}},"type":"object","required":["ticketId","message"],"title":"SendMessageRequest"},"ShippingAddress":{"properties":{"full_name":{"type":"string","title":"Full Name"},"email":{"type":"string","title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"street":{"type":"string","title":"Street"},"number":{"type":"string","title":"Number"},"apartment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apartment"},"city":{"type":"string","title":"City"},"state":{"type":"string","title":"State"},"postal_code":{"type":"string","title":"Postal Code"},"country":{"type":"string","title":"Country"}},"type":"object","required":["full_name","email","street","number","city","state","postal_code","country"],"title":"ShippingAddress","description":"Shipping address"},"ShippingConfig":{"properties":{"freeShipping":{"type":"boolean","title":"Freeshipping","default":false},"freeShippingLabel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Freeshippinglabel"}},"type":"object","title":"ShippingConfig","description":"Shipping configuration for a country (destination-based).\n\n- freeShipping=True  → skip carrier lookup, offer a single $0 shipping option.\n- freeShipping=False → try carrier API (FedEx) when credentials are set,\n  otherwise fall back to manual `db.shipping_options` entries."},"ShippingOption":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"price":{"type":"number","title":"Price"},"currency":{"type":"string","title":"Currency"},"estimated_days":{"type":"integer","title":"Estimated Days"},"is_active":{"type":"boolean","title":"Is Active","default":true},"order":{"type":"integer","title":"Order","default":0}},"type":"object","required":["id","name","description","price","currency","estimated_days"],"title":"ShippingOption","description":"Manual shipping option"},"SliderCreate":{"properties":{"slug":{"type":"string","title":"Slug"},"image":{"type":"string","title":"Image"},"buttonLink":{"type":"string","title":"Buttonlink","default":""},"order":{"type":"integer","title":"Order","default":0},"isActive":{"type":"boolean","title":"Isactive","default":true},"textColor":{"type":"string","title":"Textcolor","default":"white"},"versions":{"items":{"$ref":"#/components/schemas/SliderVersion"},"type":"array","title":"Versions","default":[]}},"type":"object","required":["slug","image"],"title":"SliderCreate"},"SliderUpdate":{"properties":{"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"buttonLink":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Buttonlink"},"order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Order"},"isActive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isactive"},"textColor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Textcolor"},"versions":{"anyOf":[{"items":{"$ref":"#/components/schemas/SliderVersion"},"type":"array"},{"type":"null"}],"title":"Versions"}},"type":"object","title":"SliderUpdate"},"SliderVersion":{"properties":{"countryCode":{"type":"string","title":"Countrycode"},"language":{"type":"string","title":"Language"},"heading":{"type":"string","title":"Heading"},"subheading":{"type":"string","title":"Subheading","default":""},"buttonText":{"type":"string","title":"Buttontext","default":""},"isAvailable":{"type":"boolean","title":"Isavailable","default":true}},"type":"object","required":["countryCode","language","heading"],"title":"SliderVersion","description":"Country-specific version of slider"},"SocialNetwork":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url"},"icon":{"type":"string","title":"Icon"},"enabled":{"type":"boolean","title":"Enabled","default":true},"order":{"type":"integer","title":"Order","default":0}},"type":"object","required":["id","name","url","icon"],"title":"SocialNetwork"},"StatusCheck":{"properties":{"id":{"type":"string","title":"Id"},"client_name":{"type":"string","title":"Client Name"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"}},"type":"object","required":["client_name"],"title":"StatusCheck"},"StatusCheckCreate":{"properties":{"client_name":{"type":"string","title":"Client Name"}},"type":"object","required":["client_name"],"title":"StatusCheckCreate"},"StatusSettings":{"properties":{"isActive":{"type":"boolean","title":"Isactive","default":true},"comingSoonTitle":{"type":"string","title":"Comingsoontitle","default":"Próximamente"},"comingSoonDescription":{"type":"string","title":"Comingsoondescription","default":"Estamos trabajando en algo increíble. ¡Vuelve pronto!"}},"type":"object","title":"StatusSettings"},"StripeConfig":{"properties":{"test_publishable_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Publishable Key"},"test_secret_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Secret Key"},"production_publishable_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Production Publishable Key"},"production_secret_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Production Secret Key"},"webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Secret"},"environment":{"type":"string","title":"Environment","default":"test"}},"type":"object","title":"StripeConfig","description":"Stripe API configuration"},"SupportTicket":{"properties":{"id":{"type":"string","title":"Id"},"orderId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Orderid"},"userId":{"type":"string","title":"Userid"},"subject":{"type":"string","title":"Subject"},"description":{"type":"string","title":"Description"},"status":{"$ref":"#/components/schemas/TicketStatus","default":"open"},"priority":{"$ref":"#/components/schemas/TicketPriority","default":"medium"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"},"resolvedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Resolvedat"},"assignedTo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignedto"}},"type":"object","required":["id","userId","subject","description","createdAt","updatedAt"],"title":"SupportTicket"},"TaxConfig":{"properties":{"isEnabled":{"type":"boolean","title":"Isenabled","default":false},"taxName":{"type":"string","title":"Taxname","default":"VAT"},"defaultRate":{"type":"number","title":"Defaultrate","default":0.0},"includedInPrice":{"type":"boolean","title":"Includedinprice","default":false},"displayOnCheckout":{"type":"boolean","title":"Displayoncheckout","default":true},"rules":{"items":{"$ref":"#/components/schemas/TaxRule"},"type":"array","title":"Rules","default":[]}},"type":"object","title":"TaxConfig","description":"Tax configuration for a country"},"TaxRule":{"properties":{"name":{"type":"string","title":"Name"},"rate":{"type":"number","title":"Rate"},"isActive":{"type":"boolean","title":"Isactive","default":true}},"type":"object","required":["name","rate"],"title":"TaxRule","description":"Tax rule for specific product categories or conditions"},"TicketMessage":{"properties":{"id":{"type":"string","title":"Id"},"ticketId":{"type":"string","title":"Ticketid"},"senderType":{"$ref":"#/components/schemas/MessageSender"},"senderId":{"type":"string","title":"Senderid"},"senderName":{"type":"string","title":"Sendername"},"message":{"type":"string","title":"Message"},"attachments":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Attachments","default":[]},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"readAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Readat"}},"type":"object","required":["id","ticketId","senderType","senderId","senderName","message","createdAt"],"title":"TicketMessage"},"TicketPriority":{"type":"string","enum":["low","medium","high","urgent"],"title":"TicketPriority"},"TicketStatus":{"type":"string","enum":["open","in_progress","resolved","closed"],"title":"TicketStatus"},"TokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"refresh_token":{"type":"string","title":"Refresh Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"user":{"$ref":"#/components/schemas/UserResponse"}},"type":"object","required":["access_token","refresh_token","user"],"title":"TokenResponse"},"TranslatedText":{"properties":{"es":{"type":"string","title":"Es"},"en":{"type":"string","title":"En"}},"type":"object","required":["es","en"],"title":"TranslatedText"},"UpdateCartItemRequest":{"properties":{"quantity":{"type":"integer","title":"Quantity"},"variant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Id"}},"type":"object","required":["quantity"],"title":"UpdateCartItemRequest"},"UpdateTicketStatusRequest":{"properties":{"status":{"$ref":"#/components/schemas/TicketStatus"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["status"],"title":"UpdateTicketStatusRequest"},"UserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"firstName":{"type":"string","maxLength":100,"minLength":1,"title":"Firstname"},"lastName":{"type":"string","maxLength":100,"minLength":1,"title":"Lastname"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"preferredLanguage":{"type":"string","title":"Preferredlanguage","default":"es"},"password":{"type":"string","minLength":6,"title":"Password"},"acceptedTerms":{"type":"boolean","title":"Acceptedterms","default":false}},"type":"object","required":["email","firstName","lastName","password"],"title":"UserCreate"},"UserLogin":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"},"remember_me":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Remember Me","default":false}},"type":"object","required":["email","password"],"title":"UserLogin"},"UserResponse":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","title":"Email"},"firstName":{"type":"string","title":"Firstname"},"lastName":{"type":"string","title":"Lastname"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"role":{"type":"string","title":"Role"},"preferredLanguage":{"type":"string","title":"Preferredlanguage"},"isActive":{"type":"boolean","title":"Isactive"},"emailVerified":{"type":"boolean","title":"Emailverified"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"}},"type":"object","required":["id","email","firstName","lastName","role","preferredLanguage","isActive","emailVerified","createdAt"],"title":"UserResponse"},"ValidateAddressRequest":{"properties":{"address":{"$ref":"#/components/schemas/AddressInput"}},"type":"object","required":["address"],"title":"ValidateAddressRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"Warehouse":{"properties":{"name":{"type":"string","title":"Name"},"code":{"type":"string","title":"Code"},"country_code":{"type":"string","title":"Country Code"},"city":{"type":"string","title":"City"},"address":{"type":"string","title":"Address"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"is_active":{"type":"boolean","title":"Is Active","default":true},"is_default":{"type":"boolean","title":"Is Default","default":false},"id":{"type":"string","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["name","code","country_code","city","address","id","created_at","updated_at"],"title":"Warehouse","description":"Complete warehouse model"},"WarehouseCreate":{"properties":{"name":{"type":"string","title":"Name"},"code":{"type":"string","title":"Code"},"country_code":{"type":"string","title":"Country Code"},"city":{"type":"string","title":"City"},"address":{"type":"string","title":"Address"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"is_active":{"type":"boolean","title":"Is Active","default":true},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","required":["name","code","country_code","city","address"],"title":"WarehouseCreate","description":"Model for creating a warehouse"},"WarehouseInventory":{"properties":{"warehouse_id":{"type":"string","title":"Warehouse Id"},"quantity":{"type":"integer","title":"Quantity","default":0},"reserved":{"type":"integer","title":"Reserved","default":0},"available":{"type":"integer","title":"Available","default":0}},"type":"object","required":["warehouse_id"],"title":"WarehouseInventory","description":"Inventory for a specific warehouse"},"WarehouseUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"is_default":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default"}},"type":"object","title":"WarehouseUpdate","description":"Model for updating a warehouse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}