{"openapi":"3.1.0","info":{"title":"Sushi Club Hurghada external AI ordering","version":"1.0.0","description":"Public menu, delivery and cart handoff API. No personal account lookup, payment or final order submission. Customer explicitly confirms in hosted checkout."},"servers":[{"url":"https://sushi-hurghada.com/ai-service"}],"paths":{"/tools/restaurant_info":{"post":{"operationId":"restaurant_info","summary":"Restaurant information and ordering options","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/restaurant_info"}}}},"responses":{"200":{"description":"Result; unknown metrics are null","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid arguments"},"409":{"description":"Unavailable or conflicting request; do not retry with new id blindly"},"429":{"description":"Rate limit"}}}},"/tools/search_menu":{"post":{"operationId":"search_menu","summary":"Search current menu","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/search_menu"}}}},"responses":{"200":{"description":"Result; unknown metrics are null","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid arguments"},"409":{"description":"Unavailable or conflicting request; do not retry with new id blindly"},"429":{"description":"Rate limit"}}}},"/tools/check_delivery":{"post":{"operationId":"check_delivery","summary":"Check delivery zone and published tariff","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/check_delivery"}}}},"responses":{"200":{"description":"Result; unknown metrics are null","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid arguments"},"409":{"description":"Unavailable or conflicting request; do not retry with new id blindly"},"429":{"description":"Rate limit"}}}},"/tools/prepare_order":{"post":{"operationId":"prepare_order","summary":"Prepare cart and customer checkout link; never creates a final order","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/prepare_order"}}}},"responses":{"200":{"description":"Result; unknown metrics are null","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid arguments"},"409":{"description":"Unavailable or conflicting request; do not retry with new id blindly"},"429":{"description":"Rate limit"}}}},"/tools/booking_link":{"post":{"operationId":"booking_link","summary":"Get public table booking link","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/booking_link"}}}},"responses":{"200":{"description":"Result; unknown metrics are null","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid arguments"},"409":{"description":"Unavailable or conflicting request; do not retry with new id blindly"},"429":{"description":"Rate limit"}}}}},"components":{"schemas":{"restaurant_info":{"type":"object","properties":{"language":{"type":"string","enum":["en","ru","ar"],"default":"en"}},"required":[],"additionalProperties":false},"search_menu":{"type":"object","properties":{"language":{"type":"string","enum":["en","ru","ar"],"default":"en"},"query":{"type":"string","maxLength":160,"default":""},"limit":{"type":"integer","minimum":1,"maximum":30,"default":15}},"required":[],"additionalProperties":false},"check_delivery":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180}},"required":["lat","lng"],"additionalProperties":false},"prepare_order":{"type":"object","properties":{"language":{"type":"string","enum":["en","ru","ar"],"default":"en"},"source":{"type":"string","pattern":"^[a-z][a-z0-9_-]{1,31}$","default":"generic_ai"},"request_id":{"type":"string","format":"uuid"},"items":{"type":"array","maxItems":30,"items":{"type":"object","properties":{"product_id":{"type":"integer","minimum":1},"quantity":{"type":"integer","minimum":1,"maximum":20}},"required":["product_id","quantity"],"additionalProperties":false}}},"required":["request_id","items"],"additionalProperties":false},"booking_link":{"type":"object","properties":{"language":{"type":"string","enum":["en","ru","ar"],"default":"en"}},"required":[],"additionalProperties":false}}}}