{
  "openapi": "3.0.3",
  "info": { "title": "Flower Zion Public Catalog API", "version": "1.0.0", "description": "Read-only product discovery for the Flower Zion florist in Holon. Prices are in ILS. Administrative APIs are not public." },
  "servers": [{ "url": "https://flower-zion.vercel.app" }],
  "paths": {
    "/api/store": { "get": { "operationId": "getPublicStore", "summary": "Read the live store catalog", "description": "Returns current products, variants, categories and public store configuration. No authentication is required. This operation does not place orders or modify data.", "responses": { "200": { "description": "Public catalog", "content": { "application/json": { "schema": { "type": "object", "properties": { "products": { "type": "array", "items": { "$ref": "#/components/schemas/Product" } }, "categories": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } } } }, "settings": { "type": "object", "additionalProperties": true } } } } } }, "429": { "description": "Rate limit reached; wait before retrying." }, "503": { "description": "Catalog temporarily unavailable." } } } },
    "/api/products": { "get": { "operationId": "getPublicProducts", "summary": "Read products and variants", "description": "Lists publicly available product records. Check active and stock before recommending a purchase. No login is required.", "responses": { "200": { "description": "Product list", "content": { "application/json": { "schema": { "type": "object", "properties": { "products": { "type": "array", "items": { "$ref": "#/components/schemas/Product" } } } } } } }, "503": { "description": "Products temporarily unavailable." } } } }
  },
  "components": { "schemas": { "Product": { "type": "object", "required": ["id", "name", "price"], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "category": { "type": "string" }, "description": { "type": "string" }, "price": { "type": "number", "minimum": 0 }, "stock": { "type": "integer", "minimum": 0 }, "active": { "type": "boolean" }, "images": { "type": "array", "items": { "type": "string" } }, "variants": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "price": { "type": "number" }, "stock": { "type": "integer" } } } } } } } }
}
