{"openapi":"3.1.0","info":{"title":"FastBooking API","version":"1.0.0"},"paths":{"/v0/restaurants/":{"get":{"tags":["restaurants"],"summary":"List Restaurants","operationId":"list_restaurants_v0_restaurants__get","parameters":[{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"}},{"name":"available","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Available"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RestaurantOut"},"title":"Response List Restaurants V0 Restaurants  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v0/restaurants/search":{"get":{"tags":["restaurants"],"summary":"Search Restaurants","operationId":"search_restaurants_v0_restaurants_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":0,"default":"","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RestaurantOut"},"title":"Response Search Restaurants V0 Restaurants Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v0/restaurants/{restaurant_id}":{"get":{"tags":["restaurants"],"summary":"Get Restaurant","operationId":"get_restaurant_v0_restaurants__restaurant_id__get","parameters":[{"name":"restaurant_id","in":"path","required":true,"schema":{"type":"integer","title":"Restaurant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestaurantDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v0/products/{product_id}":{"get":{"tags":["products"],"summary":"Get Product","operationId":"get_product_v0_products__product_id__get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"integer","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v0/orders/":{"post":{"tags":["orders"],"summary":"Create Order","operationId":"create_order_v0_orders__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v0/orders/history":{"get":{"tags":["orders"],"summary":"Order History","operationId":"order_history_v0_orders_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OrderOut"},"type":"array","title":"Response Order History V0 Orders History Get"}}}}}}},"/v0/orders/{order_id}":{"get":{"tags":["orders"],"summary":"Get Order","operationId":"get_order_v0_orders__order_id__get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"integer","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v0/cart/":{"get":{"tags":["cart"],"summary":"Get Cart","operationId":"get_cart_v0_cart__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartData"}}}}}},"post":{"tags":["cart"],"summary":"Update Cart","operationId":"update_cart_v0_cart__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartData"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["cart"],"summary":"Clear Cart","operationId":"clear_cart_v0_cart__delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartData"}}}}}}},"/v0/favorites/":{"get":{"tags":["favorites"],"summary":"List Favorites","operationId":"list_favorites_v0_favorites__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FavoriteOut"},"type":"array","title":"Response List Favorites V0 Favorites  Get"}}}}}},"post":{"tags":["favorites"],"summary":"Add Favorite","operationId":"add_favorite_v0_favorites__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FavoriteAdd"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v0/favorites/{restaurant_id}":{"delete":{"tags":["favorites"],"summary":"Remove Favorite","operationId":"remove_favorite_v0_favorites__restaurant_id__delete","parameters":[{"name":"restaurant_id","in":"path","required":true,"schema":{"type":"integer","title":"Restaurant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v0/admin/products/":{"get":{"tags":["admin"],"summary":"List Products","operationId":"list_products_v0_admin_products__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProductOut"},"type":"array","title":"Response List Products V0 Admin Products  Get"}}}}}},"post":{"tags":["admin"],"summary":"Create Product","operationId":"create_product_v0_admin_products__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v0/admin/products/{product_id}":{"put":{"tags":["admin"],"summary":"Update Product","operationId":"update_product_v0_admin_products__product_id__put","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"integer","title":"Product Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin"],"summary":"Delete Product","operationId":"delete_product_v0_admin_products__product_id__delete","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"integer","title":"Product Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v0/admin/orders/":{"get":{"tags":["admin"],"summary":"List Orders","operationId":"list_orders_v0_admin_orders__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/OrderOut"},"type":"array","title":"Response List Orders V0 Admin Orders  Get"}}}}}}},"/v0/admin/orders/{order_id}/status":{"put":{"tags":["admin"],"summary":"Update Order Status","operationId":"update_order_status_v0_admin_orders__order_id__status_put","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"integer","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderStatusUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v0/admin/hours/":{"get":{"tags":["admin"],"summary":"Get Hours","operationId":"get_hours_v0_admin_hours__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RestaurantHoursOut"},"type":"array","title":"Response Get Hours V0 Admin Hours  Get"}}}}}},"put":{"tags":["admin"],"summary":"Update Hours","operationId":"update_hours_v0_admin_hours__put","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RestaurantHoursUpdate"},"type":"array","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RestaurantHoursOut"},"type":"array","title":"Response Update Hours V0 Admin Hours  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v0/admin/availability":{"put":{"tags":["admin"],"summary":"Toggle Availability","operationId":"toggle_availability_v0_admin_availability_put","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v0/info/contact-us":{"get":{"tags":["info"],"summary":"Contact Us","operationId":"contact_us_v0_info_contact_us_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ContactUsOut"},{"type":"null"}],"title":"Response Contact Us V0 Info Contact Us Get"}}}}}}},"/v0/info/user-agreement":{"get":{"tags":["info"],"summary":"User Agreement","operationId":"user_agreement_v0_info_user_agreement_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UserAgreementOut"},{"type":"null"}],"title":"Response User Agreement V0 Info User Agreement Get"}}}}}}},"/v0/info/privacy-policy":{"get":{"tags":["info"],"summary":"Privacy Policy","operationId":"privacy_policy_v0_info_privacy_policy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PrivacyPolicyOut"},{"type":"null"}],"title":"Response Privacy Policy V0 Info Privacy Policy Get"}}}}}}},"/v1/tenants/{tenant_slug}/modules":{"get":{"tags":["platform"],"summary":"List Modules","operationId":"list_modules_v1_tenants__tenant_slug__modules_get","parameters":[{"name":"tenant_slug","in":"path","required":true,"schema":{"type":"string","title":"Tenant Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TenantModuleOut"},"title":"Response List Modules V1 Tenants  Tenant Slug  Modules Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tenants/{tenant_slug}/modules/{module}":{"put":{"tags":["platform"],"summary":"Configure Module","operationId":"configure_module_v1_tenants__tenant_slug__modules__module__put","parameters":[{"name":"tenant_slug","in":"path","required":true,"schema":{"type":"string","title":"Tenant Slug"}},{"name":"module","in":"path","required":true,"schema":{"type":"string","title":"Module"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantModuleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantModuleOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/public/{tenant_slug}/catalogue":{"get":{"tags":["platform"],"summary":"Public Catalogue","operationId":"public_catalogue_v1_public__tenant_slug__catalogue_get","parameters":[{"name":"tenant_slug","in":"path","required":true,"schema":{"type":"string","title":"Tenant Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/public/bookings/manage/{manage_token}/cancel":{"post":{"tags":["platform"],"summary":"Cancel Public Booking","operationId":"cancel_public_booking_v1_public_bookings_manage__manage_token__cancel_post","parameters":[{"name":"manage_token","in":"path","required":true,"schema":{"type":"string","title":"Manage Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/public/{tenant_slug}/bookings/restaurant":{"post":{"tags":["platform"],"summary":"Reserve Restaurant","operationId":"reserve_restaurant_v1_public__tenant_slug__bookings_restaurant_post","parameters":[{"name":"tenant_slug","in":"path","required":true,"schema":{"type":"string","title":"Tenant Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestaurantReservationIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/public/{tenant_slug}/bookings/hotel":{"post":{"tags":["platform"],"summary":"Reserve Hotel","operationId":"reserve_hotel_v1_public__tenant_slug__bookings_hotel_post","parameters":[{"name":"tenant_slug","in":"path","required":true,"schema":{"type":"string","title":"Tenant Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HotelBookingIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/public/{tenant_slug}/bookings/events":{"post":{"tags":["platform"],"summary":"Reserve Event","operationId":"reserve_event_v1_public__tenant_slug__bookings_events_post","parameters":[{"name":"tenant_slug","in":"path","required":true,"schema":{"type":"string","title":"Tenant Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventBookingIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/public/{tenant_slug}/bookings/clinic":{"post":{"tags":["platform"],"summary":"Reserve Clinic","operationId":"reserve_clinic_v1_public__tenant_slug__bookings_clinic_post","parameters":[{"name":"tenant_slug","in":"path","required":true,"schema":{"type":"string","title":"Tenant Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClinicBookingIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BookingOut":{"properties":{"id":{"type":"integer","title":"Id"},"public_reference":{"type":"string","title":"Public Reference"},"module":{"type":"string","title":"Module"},"status":{"type":"string","title":"Status"},"starts_at":{"type":"string","format":"date-time","title":"Starts At"},"ends_at":{"type":"string","format":"date-time","title":"Ends At"},"quantity":{"type":"integer","title":"Quantity"},"party_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Party Size"},"currency":{"type":"string","title":"Currency"},"total":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Total"},"manage_token":{"type":"string","title":"Manage Token"}},"type":"object","required":["id","public_reference","module","status","starts_at","ends_at","quantity","party_size","currency","total","manage_token"],"title":"BookingOut"},"CartData":{"properties":{"data":{"items":{},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"CartData"},"CartItem":{"properties":{"restaurant_id":{"type":"integer","title":"Restaurant Id"},"product_id":{"type":"integer","title":"Product Id"},"quantity":{"type":"integer","title":"Quantity"}},"type":"object","required":["restaurant_id","product_id","quantity"],"title":"CartItem"},"CartUpdate":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CartItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CartUpdate"},"ClinicBookingIn":{"properties":{"location_slug":{"type":"string","title":"Location Slug"},"offering_id":{"type":"integer","title":"Offering Id"},"practitioner_resource_id":{"type":"integer","title":"Practitioner Resource Id"},"guest":{"$ref":"#/components/schemas/GuestInput"},"starts_at":{"type":"string","format":"date-time","title":"Starts At"},"notes":{"type":"string","maxLength":2000,"title":"Notes","default":""},"idempotency_key":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Idempotency Key"}},"type":"object","required":["location_slug","offering_id","practitioner_resource_id","guest","starts_at"],"title":"ClinicBookingIn"},"ContactUsOut":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"phone":{"type":"string","title":"Phone"}},"type":"object","required":["id","email","phone"],"title":"ContactUsOut"},"EventBookingIn":{"properties":{"location_slug":{"type":"string","title":"Location Slug"},"ticket_type_id":{"type":"integer","title":"Ticket Type Id"},"guest":{"$ref":"#/components/schemas/GuestInput"},"quantity":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Quantity","default":1},"notes":{"type":"string","maxLength":2000,"title":"Notes","default":""},"idempotency_key":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Idempotency Key"}},"type":"object","required":["location_slug","ticket_type_id","guest"],"title":"EventBookingIn"},"FavoriteAdd":{"properties":{"restaurant_id":{"type":"integer","title":"Restaurant Id"}},"type":"object","required":["restaurant_id"],"title":"FavoriteAdd"},"FavoriteOut":{"properties":{"id":{"type":"integer","title":"Id"},"restaurant_id":{"type":"integer","title":"Restaurant Id"},"restaurant":{"$ref":"#/components/schemas/RestaurantOut"}},"type":"object","required":["id","restaurant_id","restaurant"],"title":"FavoriteOut"},"GuestInput":{"properties":{"name":{"type":"string","maxLength":160,"minLength":1,"title":"Name"},"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email"},"phone":{"type":"string","maxLength":40,"title":"Phone","default":""}},"type":"object","required":["name","email"],"title":"GuestInput"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HotelBookingIn":{"properties":{"location_slug":{"type":"string","title":"Location Slug"},"room_type_id":{"type":"integer","title":"Room Type Id"},"guest":{"$ref":"#/components/schemas/GuestInput"},"check_in":{"type":"string","format":"date","title":"Check In"},"check_out":{"type":"string","format":"date","title":"Check Out"},"rooms":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Rooms","default":1},"notes":{"type":"string","maxLength":2000,"title":"Notes","default":""},"idempotency_key":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Idempotency Key"}},"type":"object","required":["location_slug","room_type_id","guest","check_in","check_out"],"title":"HotelBookingIn"},"OrderCreate":{"properties":{"restaurant_id":{"type":"integer","title":"Restaurant Id"},"products":{"items":{"$ref":"#/components/schemas/OrderProductIn"},"type":"array","title":"Products"},"pickup_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pickup Time"},"customer_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Message"}},"type":"object","required":["restaurant_id","products"],"title":"OrderCreate"},"OrderOut":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"restaurant_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Restaurant Id"},"number_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Number Order"},"amount":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Amount"},"final_price":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Final Price"},"status":{"type":"string","title":"Status","default":"new"},"date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date"},"pickup_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pickup Time"},"customer_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Message"},"products":{"items":{"$ref":"#/components/schemas/OrderProductOut"},"type":"array","title":"Products","default":[]}},"type":"object","required":["id","user_id"],"title":"OrderOut"},"OrderProductIn":{"properties":{"product_id":{"type":"integer","title":"Product Id"},"quantity":{"type":"integer","title":"Quantity"}},"type":"object","required":["product_id","quantity"],"title":"OrderProductIn"},"OrderProductOut":{"properties":{"id":{"type":"integer","title":"Id"},"product_name":{"type":"string","title":"Product Name"},"quantity":{"type":"integer","title":"Quantity"},"old_price":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Old Price"},"current_price":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Current Price"}},"type":"object","required":["id","product_name","quantity","old_price","current_price"],"title":"OrderProductOut"},"OrderStatusUpdate":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"OrderStatusUpdate"},"PrivacyPolicyOut":{"properties":{"id":{"type":"integer","title":"Id"},"text":{"type":"string","title":"Text"}},"type":"object","required":["id","text"],"title":"PrivacyPolicyOut"},"ProductCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"current_price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Current Price"},"old_price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Old Price"},"quantity":{"type":"integer","title":"Quantity","default":1},"meals":{"type":"boolean","title":"Meals","default":false},"pastries":{"type":"boolean","title":"Pastries","default":false},"drinks":{"type":"boolean","title":"Drinks","default":false},"bread":{"type":"boolean","title":"Bread","default":false},"groceries":{"type":"boolean","title":"Groceries","default":false},"vegetarian":{"type":"boolean","title":"Vegetarian","default":false},"vegan":{"type":"boolean","title":"Vegan","default":false},"lactose_free":{"type":"boolean","title":"Lactose Free","default":false},"gluten_free":{"type":"boolean","title":"Gluten Free","default":false},"allergen":{"type":"string","title":"Allergen","default":""}},"type":"object","required":["name","current_price","old_price"],"title":"ProductCreate"},"ProductOut":{"properties":{"id":{"type":"integer","title":"Id"},"restaurant_id":{"type":"integer","title":"Restaurant Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"current_price":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Current Price"},"old_price":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Old Price"},"quantity":{"type":"integer","title":"Quantity"},"meals":{"type":"boolean","title":"Meals","default":false},"pastries":{"type":"boolean","title":"Pastries","default":false},"drinks":{"type":"boolean","title":"Drinks","default":false},"bread":{"type":"boolean","title":"Bread","default":false},"groceries":{"type":"boolean","title":"Groceries","default":false},"vegetarian":{"type":"boolean","title":"Vegetarian","default":false},"vegan":{"type":"boolean","title":"Vegan","default":false},"lactose_free":{"type":"boolean","title":"Lactose Free","default":false},"gluten_free":{"type":"boolean","title":"Gluten Free","default":false},"allergen":{"type":"string","title":"Allergen","default":""}},"type":"object","required":["id","restaurant_id","name","current_price","old_price","quantity"],"title":"ProductOut"},"ProductUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"current_price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Current Price"},"old_price":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Old Price"},"quantity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quantity"},"meals":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Meals"},"pastries":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pastries"},"drinks":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Drinks"},"bread":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Bread"},"groceries":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Groceries"},"vegetarian":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Vegetarian"},"vegan":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Vegan"},"lactose_free":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Lactose Free"},"gluten_free":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Gluten Free"},"allergen":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Allergen"}},"type":"object","title":"ProductUpdate"},"RestaurantDetail":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"address":{"type":"string","title":"Address"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"about":{"type":"string","title":"About","default":""},"phone_number":{"type":"string","title":"Phone Number","default":""},"available":{"type":"boolean","title":"Available","default":true},"city":{"type":"string","title":"City","default":""},"country":{"type":"string","title":"Country","default":""},"zipcode":{"type":"string","title":"Zipcode","default":""},"logo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo"},"back_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Back Image"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"site":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site"},"products":{"items":{"$ref":"#/components/schemas/ProductOut"},"type":"array","title":"Products","default":[]},"hours":{"items":{"$ref":"#/components/schemas/RestaurantHoursOut"},"type":"array","title":"Hours","default":[]}},"type":"object","required":["id","name","address"],"title":"RestaurantDetail"},"RestaurantHoursOut":{"properties":{"id":{"type":"integer","title":"Id"},"week_day":{"type":"integer","title":"Week Day"},"from_hour":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"From Hour"},"to_hour":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"To Hour"},"work":{"type":"boolean","title":"Work","default":false}},"type":"object","required":["id","week_day"],"title":"RestaurantHoursOut"},"RestaurantHoursUpdate":{"properties":{"week_day":{"type":"integer","title":"Week Day"},"from_hour":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Hour"},"to_hour":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Hour"},"work":{"type":"boolean","title":"Work","default":false}},"type":"object","required":["week_day"],"title":"RestaurantHoursUpdate"},"RestaurantOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"address":{"type":"string","title":"Address"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"about":{"type":"string","title":"About","default":""},"phone_number":{"type":"string","title":"Phone Number","default":""},"available":{"type":"boolean","title":"Available","default":true},"city":{"type":"string","title":"City","default":""},"country":{"type":"string","title":"Country","default":""},"zipcode":{"type":"string","title":"Zipcode","default":""},"logo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo"},"back_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Back Image"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"site":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Site"}},"type":"object","required":["id","name","address"],"title":"RestaurantOut"},"RestaurantReservationIn":{"properties":{"location_slug":{"type":"string","title":"Location Slug"},"guest":{"$ref":"#/components/schemas/GuestInput"},"starts_at":{"type":"string","format":"date-time","title":"Starts At"},"party_size":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Party Size"},"duration_minutes":{"type":"integer","maximum":480.0,"minimum":15.0,"title":"Duration Minutes","default":90},"notes":{"type":"string","maxLength":2000,"title":"Notes","default":""},"idempotency_key":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Idempotency Key"}},"type":"object","required":["location_slug","guest","starts_at","party_size"],"title":"RestaurantReservationIn"},"TenantModuleOut":{"properties":{"module":{"type":"string","title":"Module"},"enabled":{"type":"boolean","title":"Enabled"},"settings_json":{"additionalProperties":true,"type":"object","title":"Settings Json"}},"type":"object","required":["module","enabled","settings_json"],"title":"TenantModuleOut"},"TenantModuleUpdate":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"settings":{"additionalProperties":true,"type":"object","title":"Settings"}},"type":"object","title":"TenantModuleUpdate"},"UserAgreementOut":{"properties":{"id":{"type":"integer","title":"Id"},"text":{"type":"string","title":"Text"},"commission":{"type":"integer","title":"Commission"}},"type":"object","required":["id","text","commission"],"title":"UserAgreementOut"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}