{"openapi":"3.1.0","info":{"title":"Sové — API","version":"0.1.0"},"paths":{"/v1/health":{"get":{"tags":["health"],"summary":"Liveness","operationId":"liveness_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Liveness V1 Health Get"}}}}}}},"/v1/health/ready":{"get":{"tags":["health"],"summary":"Readiness","operationId":"readiness_v1_health_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/otp":{"post":{"tags":["auth"],"summary":"Request Otp","operationId":"request_otp_v1_auth_otp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OTPRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Request Otp V1 Auth Otp Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/verify":{"post":{"tags":["auth"],"summary":"Verify","operationId":"verify_v1_auth_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/refresh":{"post":{"tags":["auth"],"summary":"Refresh","operationId":"refresh_v1_auth_refresh_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewTokenOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/logout":{"post":{"tags":["auth"],"summary":"Logout","operationId":"logout_v1_auth_logout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogoutRequest"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me":{"get":{"tags":["users"],"summary":"Get Me","operationId":"get_me_v1_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeOut"}}}}},"security":[{"HTTPBearer":[]}]},"delete":{"tags":["users"],"summary":"Delete Me","operationId":"delete_me_v1_me_delete","responses":{"204":{"description":"Successful Response"}},"security":[{"HTTPBearer":[]}]},"patch":{"tags":["users"],"summary":"Patch Me","operationId":"patch_me_v1_me_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MePatch"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/reservations":{"get":{"tags":["users"],"summary":"List My Reservations","operationId":"list_my_reservations_v1_me_reservations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ReservationOut"},"type":"array","title":"Response List My Reservations V1 Me Reservations Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/merchant":{"get":{"tags":["users"],"summary":"Get My Merchant","description":"Fiche commerçant de l'utilisateur courant (T-03 ext, bascule d'interface M-09).","operationId":"get_my_merchant_v1_me_merchant_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/merchant/reservations":{"get":{"tags":["users"],"summary":"List My Merchant Reservations","description":"Réservations du jour des offres du commerçant courant (T-05 ext, M-09).","operationId":"list_my_merchant_reservations_v1_me_merchant_reservations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MerchantReservationOut"},"type":"array","title":"Response List My Merchant Reservations V1 Me Merchant Reservations Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/merchants":{"post":{"tags":["merchants"],"summary":"Create Merchant","operationId":"create_merchant_v1_merchants_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/merchants/{merchant_id}":{"get":{"tags":["merchants"],"summary":"Get Merchant","operationId":"get_merchant_v1_merchants__merchant_id__get","parameters":[{"name":"merchant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Merchant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["merchants"],"summary":"Update Merchant","operationId":"update_merchant_v1_merchants__merchant_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"merchant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Merchant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/merchants/{merchant_id}/offers":{"get":{"tags":["merchants"],"summary":"List Merchant Offers","operationId":"list_merchant_offers_v1_merchants__merchant_id__offers_get","parameters":[{"name":"merchant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Merchant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OfferOut"},"title":"Response List Merchant Offers V1 Merchants  Merchant Id  Offers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/merchant/stats":{"get":{"tags":["merchant-analytics"],"summary":"Get Merchant Stats","operationId":"get_merchant_stats_v1_me_merchant_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}},{"name":"granularity","in":"query","required":false,"schema":{"enum":["day","week","month"],"type":"string","default":"day","title":"Granularity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantStatsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/merchant/reservations/history":{"get":{"tags":["merchant-analytics"],"summary":"Get Merchant Reservations History","operationId":"get_merchant_reservations_history_v1_me_merchant_reservations_history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending_payment","confirmed","collected","cancelled","expired"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantReservationHistoryPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/merchant/earnings":{"get":{"tags":["merchant-analytics"],"summary":"Get Merchant Earnings","operationId":"get_merchant_earnings_v1_me_merchant_earnings_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantEarningsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/merchant/exports/reservations.csv":{"get":{"tags":["merchant-analytics"],"summary":"Export Merchant Reservations Csv","operationId":"export_merchant_reservations_csv_v1_me_merchant_exports_reservations_csv_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending_payment","confirmed","collected","cancelled","expired"],"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/merchant/exports/earnings.csv":{"get":{"tags":["merchant-analytics"],"summary":"Export Merchant Earnings Csv","operationId":"export_merchant_earnings_csv_v1_me_merchant_exports_earnings_csv_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/drivers":{"post":{"tags":["drivers"],"summary":"Register Driver","operationId":"register_driver_v1_drivers_post","responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DriverOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/deliveries":{"post":{"tags":["deliveries"],"summary":"Create Delivery","operationId":"create_delivery_v1_deliveries_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/deliveries/available":{"get":{"tags":["deliveries"],"summary":"List Available","operationId":"list_available_v1_deliveries_available_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeliveryOut"},"type":"array","title":"Response List Available V1 Deliveries Available Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/deliveries/{delivery_id}":{"get":{"tags":["deliveries"],"summary":"Get Delivery","operationId":"get_delivery_v1_deliveries__delivery_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"delivery_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Delivery Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/deliveries/{delivery_id}/accept":{"post":{"tags":["deliveries"],"summary":"Accept Delivery","operationId":"accept_delivery_v1_deliveries__delivery_id__accept_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"delivery_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Delivery Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/deliveries/{delivery_id}/assign":{"post":{"tags":["deliveries"],"summary":"Assign Driver","operationId":"assign_driver_v1_deliveries__delivery_id__assign_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"delivery_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Delivery Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignDriver"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/deliveries/{delivery_id}/status":{"post":{"tags":["deliveries"],"summary":"Update Status","operationId":"update_status_v1_deliveries__delivery_id__status_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"delivery_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Delivery Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStatus"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/offers":{"get":{"tags":["offers"],"summary":"List Nearby Offers","operationId":"list_nearby_offers_v1_offers_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"title":"Lng"}},{"name":"radius","in":"query","required":false,"schema":{"type":"number","maximum":50000,"exclusiveMinimum":0,"default":5000,"title":"Radius"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Category"}},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number","exclusiveMinimum":0},{"type":"null"}],"title":"Max Price"}},{"name":"sort","in":"query","required":false,"schema":{"enum":["distance","price"],"type":"string","default":"distance","title":"Sort"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OffersPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["offers"],"summary":"Create Offer","operationId":"create_offer_v1_offers_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OfferCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OfferOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/offers/{offer_id}":{"get":{"tags":["offers"],"summary":"Get Offer","operationId":"get_offer_v1_offers__offer_id__get","parameters":[{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Offer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OfferOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["offers"],"summary":"Update Offer","operationId":"update_offer_v1_offers__offer_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Offer Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OfferUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OfferOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["offers"],"summary":"Delete Offer","operationId":"delete_offer_v1_offers__offer_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Offer Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reservations":{"post":{"tags":["reservations"],"summary":"Create Reservation","operationId":"create_reservation_v1_reservations_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reservations/{reservation_id}":{"get":{"tags":["reservations"],"summary":"Get Reservation","operationId":"get_reservation_v1_reservations__reservation_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Reservation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reservations/{reservation_id}/validate":{"post":{"tags":["reservations"],"summary":"Validate Reservation","operationId":"validate_reservation_v1_reservations__reservation_id__validate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Reservation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateCodeBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reservations/{reservation_id}/cancel":{"post":{"tags":["reservations"],"summary":"Cancel Reservation","operationId":"cancel_reservation_v1_reservations__reservation_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Reservation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/payments/initiate":{"post":{"tags":["payments"],"summary":"Initiate Payment","operationId":"initiate_payment_v1_payments_initiate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiateRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentInitiateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/payments/webhook/{provider}":{"post":{"tags":["payments"],"summary":"Payment Webhook","operationId":"payment_webhook_v1_payments_webhook__provider__post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Payment Webhook V1 Payments Webhook  Provider  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/payments/providers":{"get":{"tags":["payments"],"summary":"List Providers","operationId":"list_providers_v1_payments_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvidersResponse"}}}}}}},"/v1/payments/{payment_id}":{"get":{"tags":["payments"],"summary":"Get Payment","operationId":"get_payment_v1_payments__payment_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Payment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/media/presign":{"post":{"tags":["media"],"summary":"Presign Upload","operationId":"presign_upload_v1_media_presign_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresignRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresignResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/devices":{"post":{"tags":["devices"],"summary":"Register Device","operationId":"register_device_v1_devices_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceRegister"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/devices/{device_id}":{"delete":{"tags":["devices"],"summary":"Delete Device","operationId":"delete_device_v1_devices__device_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"device_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Device Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reviews":{"post":{"tags":["reviews"],"summary":"Create Review","operationId":"create_review_v1_reviews_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/reviews/{review_id}":{"patch":{"tags":["reviews"],"summary":"Update Review","description":"Modification par l'auteur, dans les 48 h (T-09 ext, M-10).","operationId":"update_review_v1_reviews__review_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"review_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Review Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/merchants/{merchant_id}/reviews":{"get":{"tags":["reviews"],"summary":"List Merchant Reviews","operationId":"list_merchant_reviews_v1_merchants__merchant_id__reviews_get","parameters":[{"name":"merchant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Merchant Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reviews/{review_id}/reply":{"post":{"tags":["reviews"],"summary":"Create Review Reply","description":"Réponse du commerçant ciblé à un avis client (T-15).","operationId":"create_review_reply_v1_reviews__review_id__reply_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"review_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Review Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewReplyCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewReplyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["reviews"],"summary":"Update Review Reply","operationId":"update_review_reply_v1_reviews__review_id__reply_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"review_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Review Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewReplyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewReplyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reports":{"post":{"tags":["reviews"],"summary":"Create Report","operationId":"create_report_v1_reports_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/suspended-baskets":{"get":{"tags":["suspended-baskets"],"summary":"List Suspended Baskets","operationId":"list_suspended_baskets_v1_suspended_baskets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SuspendedBasketOut"},"type":"array","title":"Response List Suspended Baskets V1 Suspended Baskets Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["suspended-baskets"],"summary":"Create Suspended Basket","operationId":"create_suspended_basket_v1_suspended_baskets_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspendedBasketCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspendedBasketCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/beneficiary-orgs":{"get":{"tags":["suspended-baskets"],"summary":"List Beneficiary Orgs","operationId":"list_beneficiary_orgs_v1_beneficiary_orgs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/BeneficiaryOrgOut"},"type":"array","title":"Response List Beneficiary Orgs V1 Beneficiary Orgs Get"}}}}}}},"/v1/me/suspended-baskets":{"get":{"tags":["suspended-baskets"],"summary":"List My Allocated Baskets","operationId":"list_my_allocated_baskets_v1_me_suspended_baskets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MySuspendedBasketOut"},"type":"array","title":"Response List My Allocated Baskets V1 Me Suspended Baskets Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/suspended-baskets/{basket_id}/redeem":{"post":{"tags":["suspended-baskets"],"summary":"Redeem Suspended Basket","operationId":"redeem_suspended_basket_v1_suspended_baskets__basket_id__redeem_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"basket_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Basket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspendedBasketRedeemIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/staff/auth/login":{"post":{"tags":["staff"],"summary":"Login","operationId":"login_v1_staff_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffLoginIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffLoginChallengeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/staff/auth/verify-2fa":{"post":{"tags":["staff"],"summary":"Verify 2Fa","operationId":"verify_2fa_v1_staff_auth_verify_2fa_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffVerify2FAIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffTokenOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/staff/auth/refresh":{"post":{"tags":["staff"],"summary":"Refresh","operationId":"refresh_v1_staff_auth_refresh_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffRefreshIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffNewTokenOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/staff/auth/logout":{"post":{"tags":["staff"],"summary":"Logout","operationId":"logout_v1_staff_auth_logout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffLogoutIn"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/staff/me":{"get":{"tags":["staff"],"summary":"Me","operationId":"me_v1_staff_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffOut"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/merchants":{"get":{"tags":["admin"],"summary":"List Merchants","operationId":"list_merchants_v1_admin_merchants_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminMerchantsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/merchants/{merchant_id}/verify":{"post":{"tags":["admin"],"summary":"Verify Merchant","operationId":"verify_merchant_v1_admin_merchants__merchant_id__verify_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"merchant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Merchant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantVerifyIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminMerchantOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/merchant-leads":{"get":{"tags":["admin"],"summary":"List Merchant Leads","operationId":"list_merchant_leads_v1_admin_merchant_leads_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminMerchantLeadsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/reports":{"get":{"tags":["admin"],"summary":"List Reports","operationId":"list_reports_v1_admin_reports_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminReportsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/reports/{report_id}/resolve":{"post":{"tags":["admin"],"summary":"Resolve Report","operationId":"resolve_report_v1_admin_reports__report_id__resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Report Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportResolveIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminReportOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/offers/{offer_id}/suspend":{"post":{"tags":["admin"],"summary":"Suspend Offer","operationId":"suspend_offer_v1_admin_offers__offer_id__suspend_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Offer Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspendIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminOfferOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/offers/{offer_id}/reinstate":{"post":{"tags":["admin"],"summary":"Reinstate Offer","operationId":"reinstate_offer_v1_admin_offers__offer_id__reinstate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Offer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminOfferOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/users/{user_id}/suspend":{"post":{"tags":["admin"],"summary":"Suspend User","operationId":"suspend_user_v1_admin_users__user_id__suspend_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspendIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/users/{user_id}/reactivate":{"post":{"tags":["admin"],"summary":"Reactivate User","operationId":"reactivate_user_v1_admin_users__user_id__reactivate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/users":{"get":{"tags":["admin"],"summary":"List Users","operationId":"list_users_v1_admin_users_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUsersPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/offers":{"get":{"tags":["admin"],"summary":"List Offers","operationId":"list_offers_v1_admin_offers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminOffersPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/reservations":{"get":{"tags":["admin"],"summary":"List Reservations","operationId":"list_reservations_v1_admin_reservations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminReservationsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/payments":{"get":{"tags":["admin"],"summary":"List Payments","operationId":"list_payments_v1_admin_payments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminPaymentsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/suspended-baskets":{"get":{"tags":["admin"],"summary":"List Suspended Baskets","operationId":"list_suspended_baskets_v1_admin_suspended_baskets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"allocation_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Allocation Status"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminSuspendedBasketsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/suspended-baskets/{basket_id}/allocate":{"post":{"tags":["admin"],"summary":"Allocate Suspended Basket","operationId":"allocate_suspended_basket_v1_admin_suspended_baskets__basket_id__allocate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"basket_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Basket Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuspendedBasketAllocateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminSuspendedBasketOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/stats":{"get":{"tags":["admin"],"summary":"Get Stats","operationId":"get_stats_v1_admin_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminStatsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/staff":{"get":{"tags":["admin"],"summary":"List Staff","operationId":"list_staff_v1_admin_staff_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffListPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin"],"summary":"Invite Staff","operationId":"invite_staff_v1_admin_staff_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffInviteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffInviteOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/staff/{staff_id}":{"patch":{"tags":["admin"],"summary":"Update Staff","operationId":"update_staff_v1_admin_staff__staff_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"staff_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Staff Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/audit-log":{"get":{"tags":["admin"],"summary":"List Audit Log","operationId":"list_audit_log_v1_admin_audit_log_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"actor_staff_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Actor Staff Id"}},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action"}},{"name":"target_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Type"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/public/zones":{"get":{"tags":["public"],"summary":"List Zones","operationId":"list_zones_v1_public_zones_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PublicZone"},"type":"array","title":"Response List Zones V1 Public Zones Get"}}}}}}},"/v1/public/zones/{slug}/offers":{"get":{"tags":["public"],"summary":"List Zone Offers","operationId":"list_zone_offers_v1_public_zones__slug__offers_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicZoneOffers"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/public/merchants/{slug}":{"get":{"tags":["public"],"summary":"Get Merchant","operationId":"get_merchant_v1_public_merchants__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicMerchant"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/public/offers/{offer_id}":{"get":{"tags":["public"],"summary":"Get Offer","operationId":"get_offer_v1_public_offers__offer_id__get","parameters":[{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Offer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicOfferDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/public/sitemap":{"get":{"tags":["public"],"summary":"Get Sitemap","operationId":"get_sitemap_v1_public_sitemap_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PublicSitemapEntry"},"type":"array","title":"Response Get Sitemap V1 Public Sitemap Get"}}}}}}},"/v1/public/merchant-leads":{"post":{"tags":["public"],"summary":"Create Merchant Lead","operationId":"create_merchant_lead_v1_public_merchant_leads_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantLeadIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantLeadOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/finance/summary":{"get":{"tags":["admin-finance"],"summary":"Get Summary","operationId":"get_summary_v1_admin_finance_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinanceSummaryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/finance/ledger":{"get":{"tags":["admin-finance"],"summary":"List Ledger","operationId":"list_ledger_v1_admin_finance_ledger_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"merchant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Merchant Id"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"enum":["sale","commission","refund","payout","promo"],"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerEntryPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/finance/balances":{"get":{"tags":["admin-finance"],"summary":"List Balances","operationId":"list_balances_v1_admin_finance_balances_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantBalancesPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/finance/payouts":{"post":{"tags":["admin-finance"],"summary":"Create Payout","operationId":"create_payout_v1_admin_finance_payouts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutCreateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin-finance"],"summary":"List Payouts","operationId":"list_payouts_v1_admin_finance_payouts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"merchant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Merchant Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/finance/payouts/{payout_id}":{"patch":{"tags":["admin-finance"],"summary":"Mark Payout Paid","operationId":"mark_payout_paid_v1_admin_finance_payouts__payout_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"payout_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Payout Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutMarkPaidIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/finance/refunds":{"post":{"tags":["admin-finance"],"summary":"Create Refund","operationId":"create_refund_v1_admin_finance_refunds_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundCreateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["admin-finance"],"summary":"List Refunds","operationId":"list_refunds_v1_admin_finance_refunds_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/finance/refunds/{refund_id}":{"patch":{"tags":["admin-finance"],"summary":"Decide Refund","operationId":"decide_refund_v1_admin_finance_refunds__refund_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"refund_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Refund Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundDecisionIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/finance/reconciliation":{"post":{"tags":["admin-finance"],"summary":"Reconcile","operationId":"reconcile_v1_admin_finance_reconciliation_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date","title":"From"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date","title":"To"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_reconcile_v1_admin_finance_reconciliation_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReconciliationReportOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/finance/exports/ledger.csv":{"get":{"tags":["admin-finance"],"summary":"Export Ledger Csv","operationId":"export_ledger_csv_v1_admin_finance_exports_ledger_csv_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"merchant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Merchant Id"}},{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/marketing/segments/preview":{"post":{"tags":["admin-marketing"],"summary":"Preview Segment","operationId":"preview_segment_v1_admin_marketing_segments_preview_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentCriteria"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentPreviewOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/marketing/campaigns":{"get":{"tags":["admin-marketing"],"summary":"List Campaigns","operationId":"list_campaigns_v1_admin_marketing_campaigns_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin-marketing"],"summary":"Create Campaign","operationId":"create_campaign_v1_admin_marketing_campaigns_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignCreateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/marketing/campaigns/{campaign_id}":{"patch":{"tags":["admin-marketing"],"summary":"Update Campaign","operationId":"update_campaign_v1_admin_marketing_campaigns__campaign_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/marketing/campaigns/{campaign_id}/send":{"post":{"tags":["admin-marketing"],"summary":"Send Campaign","operationId":"send_campaign_v1_admin_marketing_campaigns__campaign_id__send_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/marketing/campaigns/{campaign_id}/cancel":{"post":{"tags":["admin-marketing"],"summary":"Cancel Campaign","operationId":"cancel_campaign_v1_admin_marketing_campaigns__campaign_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/marketing/campaigns/{campaign_id}/stats":{"get":{"tags":["admin-marketing"],"summary":"Get Campaign Stats","operationId":"get_campaign_stats_v1_admin_marketing_campaigns__campaign_id__stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignStatsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/marketing/promos":{"get":{"tags":["admin-marketing"],"summary":"List Promos","operationId":"list_promos_v1_admin_marketing_promos_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromosPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["admin-marketing"],"summary":"Create Promo","operationId":"create_promo_v1_admin_marketing_promos_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoCreateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/marketing/promos/{promo_id}":{"patch":{"tags":["admin-marketing"],"summary":"Update Promo","operationId":"update_promo_v1_admin_marketing_promos__promo_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"promo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Promo Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoUpdateIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/promos/validate":{"post":{"tags":["promos"],"summary":"Validate Promo","operationId":"validate_promo_v1_promos_validate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoValidateIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoValidateOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/platform/config":{"get":{"tags":["admin-platform"],"summary":"Get Config","operationId":"get_config_v1_admin_platform_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformConfigOut"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["admin-platform"],"summary":"Update Config","operationId":"update_config_v1_admin_platform_config_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformConfigUpdateIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformConfigOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/metrics":{"get":{"tags":["metrics"],"summary":"Prometheus Metrics","operationId":"prometheus_metrics_metrics_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"AdminMerchantLeadOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"business_name":{"type":"string","title":"Business Name"},"phone":{"type":"string","title":"Phone"},"zone":{"type":"string","title":"Zone"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","business_name","phone","zone","status","created_at"],"title":"AdminMerchantLeadOut"},"AdminMerchantLeadsPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminMerchantLeadOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"AdminMerchantLeadsPage"},"AdminMerchantOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"business_name":{"type":"string","title":"Business Name"},"type":{"type":"string","title":"Type"},"landmark":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Landmark"},"verification_status":{"type":"string","title":"Verification Status"},"rejection_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejection Reason"},"rating_avg":{"type":"number","title":"Rating Avg"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","user_id","business_name","type","landmark","verification_status","rejection_reason","rating_avg","created_at"],"title":"AdminMerchantOut"},"AdminMerchantsPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminMerchantOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"AdminMerchantsPage"},"AdminOfferOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"merchant_id":{"type":"string","format":"uuid","title":"Merchant Id"},"title":{"type":"string","title":"Title"},"price":{"type":"number","title":"Price"},"quantity":{"type":"integer","title":"Quantity"},"quantity_left":{"type":"integer","title":"Quantity Left"},"status":{"type":"string","title":"Status"},"pickup_start":{"type":"string","format":"date-time","title":"Pickup Start"},"pickup_end":{"type":"string","format":"date-time","title":"Pickup End"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","merchant_id","title","price","quantity","quantity_left","status","pickup_start","pickup_end","published_at","created_at"],"title":"AdminOfferOut"},"AdminOffersPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminOfferOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"AdminOffersPage"},"AdminPaymentOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"reservation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Reservation Id"},"amount":{"type":"number","title":"Amount"},"operator":{"type":"string","title":"Operator"},"provider":{"type":"string","title":"Provider"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","reservation_id","amount","operator","provider","status","created_at"],"title":"AdminPaymentOut"},"AdminPaymentsPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminPaymentOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"AdminPaymentsPage"},"AdminReportOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"target_type":{"type":"string","title":"Target Type"},"target_id":{"type":"string","format":"uuid","title":"Target Id"},"reporter_id":{"type":"string","format":"uuid","title":"Reporter Id"},"reason":{"type":"string","title":"Reason"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","target_type","target_id","reporter_id","reason","status","created_at"],"title":"AdminReportOut"},"AdminReportsPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminReportOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"AdminReportsPage"},"AdminReservationOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"offer_id":{"type":"string","format":"uuid","title":"Offer Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"quantity":{"type":"integer","title":"Quantity"},"amount":{"type":"number","title":"Amount"},"status":{"type":"string","title":"Status"},"payment_mode":{"type":"string","title":"Payment Mode"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","offer_id","client_id","quantity","amount","status","payment_mode","created_at"],"title":"AdminReservationOut"},"AdminReservationsPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminReservationOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"AdminReservationsPage"},"AdminStatsOut":{"properties":{"offers":{"$ref":"#/components/schemas/OfferStats"},"payment_failure_by_operator":{"items":{"$ref":"#/components/schemas/OperatorFailureRate"},"type":"array","title":"Payment Failure By Operator"},"avg_publication_to_reservation_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Publication To Reservation Seconds"}},"type":"object","required":["offers","payment_failure_by_operator","avg_publication_to_reservation_seconds"],"title":"AdminStatsOut"},"AdminSuspendedBasketOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"donor_id":{"type":"string","format":"uuid","title":"Donor Id"},"amount":{"type":"number","title":"Amount"},"allocation_status":{"type":"string","title":"Allocation Status"},"beneficiary_org_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Beneficiary Org Id"},"beneficiary_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Beneficiary Id"},"reservation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Reservation Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","donor_id","amount","allocation_status","beneficiary_org_id","beneficiary_id","reservation_id","created_at"],"title":"AdminSuspendedBasketOut"},"AdminSuspendedBasketsPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminSuspendedBasketOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"AdminSuspendedBasketsPage"},"AdminUserOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"phone":{"type":"string","title":"Phone"},"role":{"type":"string","title":"Role"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","phone","role","name","status","created_at"],"title":"AdminUserOut"},"AdminUsersPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminUserOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"AdminUsersPage"},"AssignDriver":{"properties":{"driver_id":{"type":"string","format":"uuid","title":"Driver Id"}},"type":"object","required":["driver_id"],"title":"AssignDriver"},"AuditLogOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"actor_staff_id":{"type":"string","format":"uuid","title":"Actor Staff Id"},"action":{"type":"string","title":"Action"},"target_type":{"type":"string","title":"Target Type"},"target_id":{"type":"string","format":"uuid","title":"Target Id"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","actor_staff_id","action","target_type","target_id","payload","created_at"],"title":"AuditLogOut"},"AuditLogPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AuditLogOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"AuditLogPage"},"BeneficiaryOrgOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"status":{"type":"string","title":"Status"}},"type":"object","required":["id","name","type","status"],"title":"BeneficiaryOrgOut"},"Body_reconcile_v1_admin_finance_reconciliation_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_reconcile_v1_admin_finance_reconciliation_post"},"CampaignCreateIn":{"properties":{"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"body":{"type":"string","maxLength":500,"minLength":1,"title":"Body"},"url":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Url"},"segment":{"$ref":"#/components/schemas/SegmentCriteria"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"}},"type":"object","required":["title","body","segment"],"title":"CampaignCreateIn"},"CampaignOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"type":"string","title":"Title"},"body":{"type":"string","title":"Body"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"segment":{"additionalProperties":true,"type":"object","title":"Segment"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"},"status":{"type":"string","enum":["draft","scheduled","sending","sent","cancelled"],"title":"Status"},"targeted_count":{"type":"integer","title":"Targeted Count"},"sent_count":{"type":"integer","title":"Sent Count"},"failed_count":{"type":"integer","title":"Failed Count"},"created_by_staff_id":{"type":"string","format":"uuid","title":"Created By Staff Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"}},"type":"object","required":["id","title","body","url","segment","scheduled_at","status","targeted_count","sent_count","failed_count","created_by_staff_id","created_at","sent_at"],"title":"CampaignOut"},"CampaignStatsOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","enum":["draft","scheduled","sending","sent","cancelled"],"title":"Status"},"targeted_count":{"type":"integer","title":"Targeted Count"},"sent_count":{"type":"integer","title":"Sent Count"},"failed_count":{"type":"integer","title":"Failed Count"}},"type":"object","required":["id","status","targeted_count","sent_count","failed_count"],"title":"CampaignStatsOut"},"CampaignUpdateIn":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Title"},"body":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Body"},"url":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Url"},"segment":{"anyOf":[{"$ref":"#/components/schemas/SegmentCriteria"},{"type":"null"}]},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"}},"type":"object","title":"CampaignUpdateIn"},"CampaignsPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CampaignOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"CampaignsPage"},"DeliveryCreate":{"properties":{"reservation_id":{"type":"string","format":"uuid","title":"Reservation Id"},"pickup_landmark":{"type":"string","maxLength":500,"minLength":1,"title":"Pickup Landmark"}},"type":"object","required":["reservation_id","pickup_landmark"],"title":"DeliveryCreate"},"DeliveryOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"reservation_id":{"type":"string","format":"uuid","title":"Reservation Id"},"driver_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Driver Id"},"pickup_landmark":{"type":"string","title":"Pickup Landmark"},"status":{"type":"string","title":"Status"},"fee":{"type":"number","title":"Fee"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","reservation_id","driver_id","pickup_landmark","status","fee","created_at"],"title":"DeliveryOut"},"DeviceOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"fcm_token":{"type":"string","title":"Fcm Token"},"platform":{"type":"string","title":"Platform"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","fcm_token","platform","created_at"],"title":"DeviceOut"},"DeviceRegister":{"properties":{"fcm_token":{"type":"string","title":"Fcm Token"},"platform":{"type":"string","enum":["android","ios","web"],"title":"Platform"}},"type":"object","required":["fcm_token","platform"],"title":"DeviceRegister"},"DriverOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"status":{"type":"string","title":"Status"}},"type":"object","required":["id","user_id","status"],"title":"DriverOut"},"FinanceSummaryOut":{"properties":{"period_from":{"type":"string","format":"date","title":"Period From"},"period_to":{"type":"string","format":"date","title":"Period To"},"gmv":{"type":"number","title":"Gmv"},"commission_total":{"type":"number","title":"Commission Total"},"refunded_total":{"type":"number","title":"Refunded Total"},"promo_total":{"type":"number","title":"Promo Total"},"net_to_merchants":{"type":"number","title":"Net To Merchants"},"outstanding_balance":{"type":"number","title":"Outstanding Balance"},"series":{"items":{"$ref":"#/components/schemas/FinanceSummarySeriesPoint"},"type":"array","title":"Series"}},"type":"object","required":["period_from","period_to","gmv","commission_total","refunded_total","promo_total","net_to_merchants","outstanding_balance","series"],"title":"FinanceSummaryOut"},"FinanceSummarySeriesPoint":{"properties":{"bucket_start":{"type":"string","format":"date","title":"Bucket Start"},"gmv":{"type":"number","title":"Gmv"},"commission":{"type":"number","title":"Commission"},"refunded":{"type":"number","title":"Refunded"},"promo":{"type":"number","title":"Promo"}},"type":"object","required":["bucket_start","gmv","commission","refunded","promo"],"title":"FinanceSummarySeriesPoint"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LedgerEntryOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"merchant_id":{"type":"string","format":"uuid","title":"Merchant Id"},"payment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Payment Id"},"reservation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Reservation Id"},"type":{"type":"string","enum":["sale","commission","refund","payout","promo"],"title":"Type"},"amount":{"type":"number","title":"Amount"},"payout_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Payout Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","merchant_id","payment_id","reservation_id","type","amount","payout_id","created_at"],"title":"LedgerEntryOut"},"LedgerEntryPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LedgerEntryOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"LedgerEntryPage"},"LocationIn":{"properties":{"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},"type":"object","required":["lat","lng"],"title":"LocationIn"},"LocationOut":{"properties":{"lat":{"type":"number","title":"Lat"},"lng":{"type":"number","title":"Lng"}},"type":"object","required":["lat","lng"],"title":"LocationOut"},"LogoutRequest":{"properties":{"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["refresh_token"],"title":"LogoutRequest"},"MeOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"phone":{"type":"string","title":"Phone"},"role":{"type":"string","title":"Role"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"lang":{"type":"string","title":"Lang"},"status":{"type":"string","title":"Status"},"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone"},"onboarding_completed":{"type":"boolean","title":"Onboarding Completed"}},"type":"object","required":["id","phone","role","name","lang","status","zone","onboarding_completed"],"title":"MeOut"},"MePatch":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Name"},"lang":{"anyOf":[{"type":"string","maxLength":5},{"type":"null"}],"title":"Lang"},"zone":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Zone"},"onboarding_completed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Onboarding Completed"}},"type":"object","title":"MePatch"},"MerchantBalanceOut":{"properties":{"merchant_id":{"type":"string","format":"uuid","title":"Merchant Id"},"business_name":{"type":"string","title":"Business Name"},"balance_due":{"type":"number","title":"Balance Due"}},"type":"object","required":["merchant_id","business_name","balance_due"],"title":"MerchantBalanceOut"},"MerchantBalancesPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MerchantBalanceOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"MerchantBalancesPage"},"MerchantCreate":{"properties":{"business_name":{"type":"string","maxLength":200,"minLength":1,"title":"Business Name"},"type":{"type":"string","enum":["formal","informal"],"title":"Type"},"location":{"$ref":"#/components/schemas/LocationIn"},"landmark":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Landmark"}},"type":"object","required":["business_name","type","location"],"title":"MerchantCreate"},"MerchantEarningLine":{"properties":{"reservation_id":{"type":"string","format":"uuid","title":"Reservation Id"},"offer_title":{"type":"string","title":"Offer Title"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"payment_mode":{"type":"string","title":"Payment Mode"},"status":{"type":"string","title":"Status"},"gross_amount":{"type":"number","title":"Gross Amount"},"commission_amount":{"type":"number","title":"Commission Amount"},"net_amount":{"type":"number","title":"Net Amount"}},"type":"object","required":["reservation_id","offer_title","created_at","payment_mode","status","gross_amount","commission_amount","net_amount"],"title":"MerchantEarningLine"},"MerchantEarningsOut":{"properties":{"period_from":{"type":"string","format":"date","title":"Period From"},"period_to":{"type":"string","format":"date","title":"Period To"},"commission_rate":{"type":"number","title":"Commission Rate"},"gross_total":{"type":"number","title":"Gross Total"},"commission_total":{"type":"number","title":"Commission Total"},"net_total":{"type":"number","title":"Net Total"},"lines":{"items":{"$ref":"#/components/schemas/MerchantEarningLine"},"type":"array","title":"Lines"}},"type":"object","required":["period_from","period_to","commission_rate","gross_total","commission_total","net_total","lines"],"title":"MerchantEarningsOut"},"MerchantLeadIn":{"properties":{"name":{"type":"string","maxLength":100,"minLength":2,"title":"Name"},"business_name":{"type":"string","maxLength":200,"minLength":2,"title":"Business Name"},"phone":{"type":"string","maxLength":30,"minLength":8,"title":"Phone"},"zone":{"type":"string","maxLength":100,"minLength":1,"title":"Zone"}},"type":"object","required":["name","business_name","phone","zone"],"title":"MerchantLeadIn"},"MerchantLeadOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"}},"type":"object","required":["id","status"],"title":"MerchantLeadOut"},"MerchantOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"business_name":{"type":"string","title":"Business Name"},"slug":{"type":"string","title":"Slug"},"type":{"type":"string","title":"Type"},"location":{"$ref":"#/components/schemas/LocationOut"},"landmark":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Landmark"},"verification_status":{"type":"string","title":"Verification Status"},"rejection_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejection Reason"},"rating_avg":{"type":"number","title":"Rating Avg"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","user_id","business_name","slug","type","location","landmark","verification_status","rejection_reason","rating_avg","created_at"],"title":"MerchantOut"},"MerchantReservationHistoryItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"offer_id":{"type":"string","format":"uuid","title":"Offer Id"},"offer_title":{"type":"string","title":"Offer Title"},"quantity":{"type":"integer","title":"Quantity"},"amount":{"type":"number","title":"Amount"},"status":{"type":"string","title":"Status"},"payment_mode":{"type":"string","title":"Payment Mode"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","offer_id","offer_title","quantity","amount","status","payment_mode","expires_at","created_at"],"title":"MerchantReservationHistoryItem"},"MerchantReservationHistoryPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MerchantReservationHistoryItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"MerchantReservationHistoryPage"},"MerchantReservationOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"offer_id":{"type":"string","format":"uuid","title":"Offer Id"},"offer_title":{"type":"string","title":"Offer Title"},"quantity":{"type":"integer","title":"Quantity"},"amount":{"type":"number","title":"Amount"},"status":{"type":"string","title":"Status"},"payment_mode":{"type":"string","title":"Payment Mode"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","offer_id","offer_title","quantity","amount","status","payment_mode","expires_at","created_at"],"title":"MerchantReservationOut","description":"Réservation vue côté commerçant (T-05 ext, écran M-09) : mêmes champs\nque `ReservationOut` (sans code) + le titre de l'offre concernée."},"MerchantStatsKPIs":{"properties":{"revenue":{"type":"number","title":"Revenue"},"baskets_sold":{"type":"integer","title":"Baskets Sold"},"reservations_total":{"type":"integer","title":"Reservations Total"},"reservations_confirmed":{"type":"integer","title":"Reservations Confirmed"},"reservations_collected":{"type":"integer","title":"Reservations Collected"},"reservations_cancelled":{"type":"integer","title":"Reservations Cancelled"},"reservations_expired":{"type":"integer","title":"Reservations Expired"},"pickup_rate":{"type":"number","title":"Pickup Rate"},"cancellation_rate":{"type":"number","title":"Cancellation Rate"},"average_basket":{"type":"number","title":"Average Basket"},"average_rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Rating"}},"type":"object","required":["revenue","baskets_sold","reservations_total","reservations_confirmed","reservations_collected","reservations_cancelled","reservations_expired","pickup_rate","cancellation_rate","average_basket","average_rating"],"title":"MerchantStatsKPIs"},"MerchantStatsOut":{"properties":{"period_from":{"type":"string","format":"date","title":"Period From"},"period_to":{"type":"string","format":"date","title":"Period To"},"granularity":{"type":"string","enum":["day","week","month"],"title":"Granularity"},"kpis":{"$ref":"#/components/schemas/MerchantStatsKPIs"},"series":{"items":{"$ref":"#/components/schemas/MerchantStatsPoint"},"type":"array","title":"Series"}},"type":"object","required":["period_from","period_to","granularity","kpis","series"],"title":"MerchantStatsOut"},"MerchantStatsPoint":{"properties":{"bucket_start":{"type":"string","format":"date","title":"Bucket Start"},"revenue":{"type":"number","title":"Revenue"},"baskets_sold":{"type":"integer","title":"Baskets Sold"},"reservations_confirmed":{"type":"integer","title":"Reservations Confirmed"}},"type":"object","required":["bucket_start","revenue","baskets_sold","reservations_confirmed"],"title":"MerchantStatsPoint"},"MerchantUpdate":{"properties":{"business_name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Business Name"},"location":{"anyOf":[{"$ref":"#/components/schemas/LocationIn"},{"type":"null"}]},"landmark":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Landmark"}},"type":"object","title":"MerchantUpdate"},"MerchantVerifyIn":{"properties":{"decision":{"type":"string","enum":["approve","reject"],"title":"Decision"},"reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Reason"}},"type":"object","required":["decision"],"title":"MerchantVerifyIn"},"MySuspendedBasketOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"amount":{"type":"number","title":"Amount"},"allocation_status":{"type":"string","title":"Allocation Status"},"reservation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Reservation Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","amount","allocation_status","reservation_id","created_at"],"title":"MySuspendedBasketOut","description":"Vue bénéficiaire : paniers qui m'ont été attribués (sans identité du donateur)."},"NewTokenOut":{"properties":{"access_token":{"type":"string","title":"Access Token"},"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["access_token","refresh_token"],"title":"NewTokenOut"},"OTPRequest":{"properties":{"phone":{"type":"string","title":"Phone"},"email":{"type":"string","title":"Email"}},"type":"object","required":["phone","email"],"title":"OTPRequest"},"OfferCreate":{"properties":{"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"photo_url":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Photo Url"},"audio_url":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Audio Url"},"category":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Category"},"price":{"type":"number","exclusiveMinimum":0.0,"title":"Price"},"original_price":{"type":"number","exclusiveMinimum":0.0,"title":"Original Price"},"quantity":{"type":"integer","exclusiveMinimum":0.0,"title":"Quantity"},"pickup_start":{"type":"string","format":"date-time","title":"Pickup Start"},"pickup_end":{"type":"string","format":"date-time","title":"Pickup End"},"status":{"type":"string","enum":["draft","published"],"title":"Status","default":"draft"}},"type":"object","required":["title","price","original_price","quantity","pickup_start","pickup_end"],"title":"OfferCreate"},"OfferListItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"merchant_id":{"type":"string","format":"uuid","title":"Merchant Id"},"merchant_name":{"type":"string","title":"Merchant Name"},"landmark":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Landmark"},"lat":{"type":"number","title":"Lat"},"lng":{"type":"number","title":"Lng"},"title":{"type":"string","title":"Title"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"},"price":{"type":"number","title":"Price"},"original_price":{"type":"number","title":"Original Price"},"quantity_left":{"type":"integer","title":"Quantity Left"},"pickup_start":{"type":"string","format":"date-time","title":"Pickup Start"},"pickup_end":{"type":"string","format":"date-time","title":"Pickup End"},"distance_m":{"type":"number","title":"Distance M"}},"type":"object","required":["id","merchant_id","merchant_name","landmark","lat","lng","title","category","photo_url","price","original_price","quantity_left","pickup_start","pickup_end","distance_m"],"title":"OfferListItem","description":"Compact offer representation returned by the geo-search endpoint."},"OfferOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"merchant_id":{"type":"string","format":"uuid","title":"Merchant Id"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"},"audio_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio Url"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"price":{"type":"number","title":"Price"},"original_price":{"type":"number","title":"Original Price"},"quantity":{"type":"integer","title":"Quantity"},"quantity_left":{"type":"integer","title":"Quantity Left"},"pickup_start":{"type":"string","format":"date-time","title":"Pickup Start"},"pickup_end":{"type":"string","format":"date-time","title":"Pickup End"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","merchant_id","title","description","photo_url","audio_url","category","price","original_price","quantity","quantity_left","pickup_start","pickup_end","status","created_at"],"title":"OfferOut"},"OfferStats":{"properties":{"published":{"type":"integer","title":"Published"},"reserved":{"type":"integer","title":"Reserved"},"collected":{"type":"integer","title":"Collected"}},"type":"object","required":["published","reserved","collected"],"title":"OfferStats"},"OfferUpdate":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url"},"audio_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio Url"},"category":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Category"},"price":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Price"},"original_price":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Original Price"},"quantity":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Quantity"},"pickup_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Pickup Start"},"pickup_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Pickup End"},"status":{"anyOf":[{"type":"string","enum":["draft","published","cancelled"]},{"type":"null"}],"title":"Status"}},"type":"object","title":"OfferUpdate"},"OffersPage":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"items":{"items":{"$ref":"#/components/schemas/OfferListItem"},"type":"array","title":"Items"}},"type":"object","required":["total","page","page_size","items"],"title":"OffersPage"},"OperatorFailureRate":{"properties":{"operator":{"type":"string","title":"Operator"},"total":{"type":"integer","title":"Total"},"failed":{"type":"integer","title":"Failed"},"failure_rate":{"type":"number","title":"Failure Rate"}},"type":"object","required":["operator","total","failed","failure_rate"],"title":"OperatorFailureRate"},"PaymentInitiateRequest":{"properties":{"reservation_id":{"type":"string","format":"uuid","title":"Reservation Id"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"operator":{"type":"string","title":"Operator"}},"type":"object","required":["reservation_id","operator"],"title":"PaymentInitiateRequest"},"PaymentInitiateResponse":{"properties":{"payment":{"$ref":"#/components/schemas/PaymentOut"},"instructions":{"additionalProperties":true,"type":"object","title":"Instructions"}},"type":"object","required":["payment","instructions"],"title":"PaymentInitiateResponse"},"PaymentOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"reservation_id":{"type":"string","format":"uuid","title":"Reservation Id"},"amount":{"type":"number","title":"Amount"},"operator":{"type":"string","title":"Operator"},"provider":{"type":"string","title":"Provider"},"reference_transaction":{"type":"string","title":"Reference Transaction"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","reservation_id","amount","operator","provider","reference_transaction","status","created_at"],"title":"PaymentOut"},"PayoutCreateIn":{"properties":{"merchant_id":{"type":"string","format":"uuid","title":"Merchant Id"},"period_from":{"type":"string","format":"date","title":"Period From"},"period_to":{"type":"string","format":"date","title":"Period To"}},"type":"object","required":["merchant_id","period_from","period_to"],"title":"PayoutCreateIn"},"PayoutMarkPaidIn":{"properties":{"external_ref":{"type":"string","maxLength":200,"minLength":1,"title":"External Ref"}},"type":"object","required":["external_ref"],"title":"PayoutMarkPaidIn"},"PayoutOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"merchant_id":{"type":"string","format":"uuid","title":"Merchant Id"},"period_from":{"type":"string","format":"date","title":"Period From"},"period_to":{"type":"string","format":"date","title":"Period To"},"amount":{"type":"number","title":"Amount"},"status":{"type":"string","enum":["pending","paid"],"title":"Status"},"external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Ref"},"created_by_staff_id":{"type":"string","format":"uuid","title":"Created By Staff Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"paid_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid At"}},"type":"object","required":["id","merchant_id","period_from","period_to","amount","status","external_ref","created_by_staff_id","created_at","paid_at"],"title":"PayoutOut"},"PayoutsPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PayoutOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"PayoutsPage"},"PlatformConfigOut":{"properties":{"commission_rate":{"type":"number","title":"Commission Rate"},"currency":{"type":"string","title":"Currency"},"min_basket_amount":{"type":"number","title":"Min Basket Amount"},"payments_moneroo_enabled":{"type":"boolean","title":"Payments Moneroo Enabled"},"solidarity_enabled":{"type":"boolean","title":"Solidarity Enabled"},"marketing_push_enabled":{"type":"boolean","title":"Marketing Push Enabled"}},"type":"object","required":["commission_rate","currency","min_basket_amount","payments_moneroo_enabled","solidarity_enabled","marketing_push_enabled"],"title":"PlatformConfigOut","description":"Config plateforme effective (défauts + surcharges DB)."},"PlatformConfigUpdateIn":{"properties":{"commission_rate":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Commission Rate"},"currency":{"anyOf":[{"type":"string","maxLength":16,"minLength":1},{"type":"null"}],"title":"Currency"},"min_basket_amount":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Min Basket Amount"},"payments_moneroo_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Payments Moneroo Enabled"},"solidarity_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Solidarity Enabled"},"marketing_push_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Marketing Push Enabled"}},"type":"object","title":"PlatformConfigUpdateIn","description":"Patch partiel : seuls les champs fournis sont mis à jour (upsert)."},"PresignRequest":{"properties":{"media_type":{"type":"string","enum":["image","audio"],"title":"Media Type"},"content_type":{"type":"string","maxLength":100,"minLength":1,"title":"Content Type"},"size_bytes":{"type":"integer","exclusiveMinimum":0.0,"title":"Size Bytes"}},"type":"object","required":["media_type","content_type","size_bytes"],"title":"PresignRequest"},"PresignResponse":{"properties":{"url":{"type":"string","title":"Url"},"key":{"type":"string","title":"Key"},"expires_in":{"type":"integer","title":"Expires In"}},"type":"object","required":["url","key","expires_in"],"title":"PresignResponse"},"PromoCreateIn":{"properties":{"code":{"type":"string","maxLength":40,"minLength":3,"title":"Code"},"kind":{"type":"string","enum":["fixed","percent"],"title":"Kind"},"value":{"type":"number","exclusiveMinimum":0.0,"title":"Value"},"max_uses":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Uses"},"max_uses_per_user":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Uses Per User"},"valid_from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Valid From"},"valid_to":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Valid To"}},"type":"object","required":["code","kind","value"],"title":"PromoCreateIn"},"PromoOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"code":{"type":"string","title":"Code"},"kind":{"type":"string","enum":["fixed","percent"],"title":"Kind"},"value":{"type":"number","title":"Value"},"max_uses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Uses"},"max_uses_per_user":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Uses Per User"},"valid_from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Valid From"},"valid_to":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Valid To"},"status":{"type":"string","enum":["active","disabled"],"title":"Status"},"created_by_staff_id":{"type":"string","format":"uuid","title":"Created By Staff Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","code","kind","value","max_uses","max_uses_per_user","valid_from","valid_to","status","created_by_staff_id","created_at"],"title":"PromoOut"},"PromoUpdateIn":{"properties":{"status":{"type":"string","enum":["active","disabled"],"title":"Status"}},"type":"object","required":["status"],"title":"PromoUpdateIn"},"PromoValidateIn":{"properties":{"code":{"type":"string","minLength":1,"title":"Code"},"offer_id":{"type":"string","format":"uuid","title":"Offer Id"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","default":1}},"type":"object","required":["code","offer_id"],"title":"PromoValidateIn"},"PromoValidateOut":{"properties":{"code":{"type":"string","title":"Code"},"discount_amount":{"type":"number","title":"Discount Amount"},"final_amount":{"type":"number","title":"Final Amount"}},"type":"object","required":["code","discount_amount","final_amount"],"title":"PromoValidateOut"},"PromosPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PromoOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"PromosPage"},"ProviderInfo":{"properties":{"name":{"type":"string","title":"Name"},"operators":{"items":{"type":"string"},"type":"array","title":"Operators"},"available":{"type":"boolean","title":"Available"}},"type":"object","required":["name","operators","available"],"title":"ProviderInfo"},"ProvidersResponse":{"properties":{"providers":{"items":{"$ref":"#/components/schemas/ProviderInfo"},"type":"array","title":"Providers"}},"type":"object","required":["providers"],"title":"ProvidersResponse"},"PublicMerchant":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"category":{"type":"string","title":"Category"},"zone_slug":{"type":"string","title":"Zone Slug"},"zone_name":{"type":"string","title":"Zone Name"},"address":{"type":"string","title":"Address"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating"},"rating_count":{"type":"integer","title":"Rating Count"},"cover_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Url"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"offers":{"items":{"$ref":"#/components/schemas/PublicOfferSummary"},"type":"array","title":"Offers"},"reviews":{"items":{"$ref":"#/components/schemas/PublicReview"},"type":"array","title":"Reviews"}},"type":"object","required":["slug","name","category","zone_slug","zone_name","address","rating","rating_count","cover_url","logo_url","offers","reviews"],"title":"PublicMerchant"},"PublicOfferDetail":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"type":"string","title":"Title"},"merchant_name":{"type":"string","title":"Merchant Name"},"merchant_slug":{"type":"string","title":"Merchant Slug"},"zone_slug":{"type":"string","title":"Zone Slug"},"zone_name":{"type":"string","title":"Zone Name"},"category":{"type":"string","title":"Category"},"price":{"type":"number","title":"Price"},"original_price":{"type":"number","title":"Original Price"},"pickup_window":{"type":"string","title":"Pickup Window"},"status":{"type":"string","enum":["active","sold_out","expired"],"title":"Status"},"quantity_left":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quantity Left"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating"},"description":{"type":"string","title":"Description"},"examples":{"items":{"type":"string"},"type":"array","title":"Examples"},"address":{"type":"string","title":"Address"},"rating_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rating Count"},"similar_offers":{"items":{"$ref":"#/components/schemas/PublicOfferSummary"},"type":"array","title":"Similar Offers"}},"type":"object","required":["id","title","merchant_name","merchant_slug","zone_slug","zone_name","category","price","original_price","pickup_window","status","quantity_left","image_url","rating","description","examples","address","rating_count","similar_offers"],"title":"PublicOfferDetail"},"PublicOfferSummary":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"type":"string","title":"Title"},"merchant_name":{"type":"string","title":"Merchant Name"},"merchant_slug":{"type":"string","title":"Merchant Slug"},"zone_slug":{"type":"string","title":"Zone Slug"},"zone_name":{"type":"string","title":"Zone Name"},"category":{"type":"string","title":"Category"},"price":{"type":"number","title":"Price"},"original_price":{"type":"number","title":"Original Price"},"pickup_window":{"type":"string","title":"Pickup Window"},"status":{"type":"string","enum":["active","sold_out","expired"],"title":"Status"},"quantity_left":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quantity Left"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating"}},"type":"object","required":["id","title","merchant_name","merchant_slug","zone_slug","zone_name","category","price","original_price","pickup_window","status","quantity_left","image_url","rating"],"title":"PublicOfferSummary"},"PublicReview":{"properties":{"rating":{"type":"integer","title":"Rating"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"created_at":{"type":"string","format":"date","title":"Created At"}},"type":"object","required":["rating","comment","created_at"],"title":"PublicReview"},"PublicSitemapEntry":{"properties":{"type":{"type":"string","enum":["zone","merchant","offer"],"title":"Type"},"slug":{"type":"string","title":"Slug"},"updated_at":{"type":"string","format":"date","title":"Updated At"}},"type":"object","required":["type","slug","updated_at"],"title":"PublicSitemapEntry"},"PublicZone":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"active_offers":{"type":"integer","title":"Active Offers"}},"type":"object","required":["slug","name","active_offers"],"title":"PublicZone"},"PublicZoneOffers":{"properties":{"zone":{"$ref":"#/components/schemas/PublicZone"},"items":{"items":{"$ref":"#/components/schemas/PublicOfferSummary"},"type":"array","title":"Items"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["zone","items","page","page_size","total"],"title":"PublicZoneOffers"},"ReconciliationDiscrepancy":{"properties":{"reference_transaction":{"type":"string","title":"Reference Transaction"},"our_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Our Amount"},"their_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Their Amount"}},"type":"object","required":["reference_transaction","our_amount","their_amount"],"title":"ReconciliationDiscrepancy"},"ReconciliationReportOut":{"properties":{"period_from":{"type":"string","format":"date","title":"Period From"},"period_to":{"type":"string","format":"date","title":"Period To"},"matched_count":{"type":"integer","title":"Matched Count"},"ours_not_theirs":{"items":{"$ref":"#/components/schemas/ReconciliationDiscrepancy"},"type":"array","title":"Ours Not Theirs"},"theirs_not_ours":{"items":{"$ref":"#/components/schemas/ReconciliationDiscrepancy"},"type":"array","title":"Theirs Not Ours"},"amount_mismatch":{"items":{"$ref":"#/components/schemas/ReconciliationDiscrepancy"},"type":"array","title":"Amount Mismatch"}},"type":"object","required":["period_from","period_to","matched_count","ours_not_theirs","theirs_not_ours","amount_mismatch"],"title":"ReconciliationReportOut"},"RefreshRequest":{"properties":{"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["refresh_token"],"title":"RefreshRequest"},"RefundCreateIn":{"properties":{"reservation_id":{"type":"string","format":"uuid","title":"Reservation Id"},"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount"},"reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Reason"}},"type":"object","required":["reservation_id","amount"],"title":"RefundCreateIn"},"RefundDecisionIn":{"properties":{"status":{"type":"string","enum":["approved","rejected","done"],"title":"Status"},"reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Reason"},"external_ref":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"External Ref"}},"type":"object","required":["status"],"title":"RefundDecisionIn"},"RefundOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"reservation_id":{"type":"string","format":"uuid","title":"Reservation Id"},"payment_id":{"type":"string","format":"uuid","title":"Payment Id"},"amount":{"type":"number","title":"Amount"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"status":{"type":"string","enum":["pending","approved","rejected","done"],"title":"Status"},"decided_by_staff_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Decided By Staff Id"},"external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Ref"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"decided_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Decided At"}},"type":"object","required":["id","reservation_id","payment_id","amount","reason","status","decided_by_staff_id","external_ref","created_at","decided_at"],"title":"RefundOut"},"RefundsPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RefundOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"RefundsPage"},"ReportCreate":{"properties":{"target_type":{"type":"string","enum":["offer","merchant","review"],"title":"Target Type"},"target_id":{"type":"string","format":"uuid","title":"Target Id"},"reason":{"type":"string","maxLength":500,"minLength":1,"title":"Reason"}},"type":"object","required":["target_type","target_id","reason"],"title":"ReportCreate"},"ReportOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"target_type":{"type":"string","title":"Target Type"},"target_id":{"type":"string","format":"uuid","title":"Target Id"},"reporter_id":{"type":"string","format":"uuid","title":"Reporter Id"},"reason":{"type":"string","title":"Reason"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","target_type","target_id","reporter_id","reason","status","created_at"],"title":"ReportOut"},"ReportResolveIn":{"properties":{"resolution":{"type":"string","enum":["resolved","dismissed"],"title":"Resolution"},"note":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Note"}},"type":"object","required":["resolution"],"title":"ReportResolveIn"},"ReservationCreate":{"properties":{"offer_id":{"type":"string","format":"uuid","title":"Offer Id"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity"},"payment_mode":{"type":"string","enum":["mobile_money","cash"],"title":"Payment Mode"},"promo_code":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Promo Code"}},"type":"object","required":["offer_id","quantity","payment_mode"],"title":"ReservationCreate"},"ReservationOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"offer_id":{"type":"string","format":"uuid","title":"Offer Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"quantity":{"type":"integer","title":"Quantity"},"amount":{"type":"number","title":"Amount"},"discount_amount":{"type":"number","title":"Discount Amount"},"status":{"type":"string","title":"Status"},"payment_mode":{"type":"string","title":"Payment Mode"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"pickup_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pickup Code"}},"type":"object","required":["id","offer_id","client_id","quantity","amount","discount_amount","status","payment_mode","expires_at","created_at"],"title":"ReservationOut"},"ReviewCreate":{"properties":{"reservation_id":{"type":"string","format":"uuid","title":"Reservation Id"},"rating":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Rating"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","required":["reservation_id","rating"],"title":"ReviewCreate"},"ReviewOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"reservation_id":{"type":"string","format":"uuid","title":"Reservation Id"},"rating":{"type":"integer","title":"Rating"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"reply":{"anyOf":[{"$ref":"#/components/schemas/ReviewReplyOut"},{"type":"null"}]}},"type":"object","required":["id","reservation_id","rating","comment","created_at"],"title":"ReviewOut"},"ReviewPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ReviewOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"ReviewPage"},"ReviewReplyCreate":{"properties":{"body":{"type":"string","maxLength":1000,"minLength":1,"title":"Body"}},"type":"object","required":["body"],"title":"ReviewReplyCreate"},"ReviewReplyOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"review_id":{"type":"string","format":"uuid","title":"Review Id"},"body":{"type":"string","title":"Body"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","review_id","body","created_at","updated_at"],"title":"ReviewReplyOut"},"ReviewReplyUpdate":{"properties":{"body":{"type":"string","maxLength":1000,"minLength":1,"title":"Body"}},"type":"object","required":["body"],"title":"ReviewReplyUpdate"},"ReviewUpdate":{"properties":{"rating":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Rating"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","title":"ReviewUpdate"},"SegmentCriteria":{"properties":{"role":{"anyOf":[{"type":"string","enum":["client","merchant","admin"]},{"type":"null"}],"title":"Role"},"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone"},"activity":{"anyOf":[{"type":"string","enum":["has_reserved","never_reserved","inactive_days"]},{"type":"null"}],"title":"Activity"},"inactive_days":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Inactive Days"},"push_opt_in":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Push Opt In"}},"type":"object","title":"SegmentCriteria"},"SegmentPreviewOut":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"SegmentPreviewOut"},"StaffInviteIn":{"properties":{"email":{"type":"string","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"scopes":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Scopes"}},"type":"object","required":["email","scopes"],"title":"StaffInviteIn"},"StaffInviteOut":{"properties":{"staff":{"$ref":"#/components/schemas/StaffOut"},"temporary_password":{"type":"string","title":"Temporary Password"},"totp_provisioning_uri":{"type":"string","title":"Totp Provisioning Uri"}},"type":"object","required":["staff","temporary_password","totp_provisioning_uri"],"title":"StaffInviteOut"},"StaffListPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StaffOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["items","total","page","page_size"],"title":"StaffListPage"},"StaffLoginChallengeOut":{"properties":{"login_ticket":{"type":"string","title":"Login Ticket"},"two_factor_status":{"type":"string","enum":["pending_setup","required"],"title":"Two Factor Status"},"totp_provisioning_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Totp Provisioning Uri"}},"type":"object","required":["login_ticket","two_factor_status"],"title":"StaffLoginChallengeOut"},"StaffLoginIn":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","minLength":1,"title":"Password"}},"type":"object","required":["email","password"],"title":"StaffLoginIn"},"StaffLogoutIn":{"properties":{"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["refresh_token"],"title":"StaffLogoutIn"},"StaffNewTokenOut":{"properties":{"access_token":{"type":"string","title":"Access Token"},"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["access_token","refresh_token"],"title":"StaffNewTokenOut"},"StaffOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"status":{"type":"string","title":"Status"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","email","name","status","scopes","created_at"],"title":"StaffOut"},"StaffRefreshIn":{"properties":{"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["refresh_token"],"title":"StaffRefreshIn"},"StaffTokenOut":{"properties":{"access_token":{"type":"string","title":"Access Token"},"refresh_token":{"type":"string","title":"Refresh Token"},"staff":{"$ref":"#/components/schemas/StaffOut"}},"type":"object","required":["access_token","refresh_token","staff"],"title":"StaffTokenOut"},"StaffUpdateIn":{"properties":{"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"status":{"anyOf":[{"type":"string","enum":["active","revoked"]},{"type":"null"}],"title":"Status"}},"type":"object","title":"StaffUpdateIn"},"StaffVerify2FAIn":{"properties":{"login_ticket":{"type":"string","title":"Login Ticket"},"code":{"type":"string","title":"Code"}},"type":"object","required":["login_ticket","code"],"title":"StaffVerify2FAIn"},"SuspendIn":{"properties":{"reason":{"type":"string","maxLength":500,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"SuspendIn"},"SuspendedBasketAllocateIn":{"properties":{"beneficiary_phone":{"type":"string","maxLength":20,"minLength":8,"title":"Beneficiary Phone"},"beneficiary_org_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Beneficiary Org Id"}},"type":"object","required":["beneficiary_phone"],"title":"SuspendedBasketAllocateIn"},"SuspendedBasketCreate":{"properties":{"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount"},"operator":{"type":"string","title":"Operator"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"beneficiary_org_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Beneficiary Org Id"}},"type":"object","required":["amount","operator"],"title":"SuspendedBasketCreate"},"SuspendedBasketCreateResponse":{"properties":{"basket":{"$ref":"#/components/schemas/SuspendedBasketOut"},"instructions":{"additionalProperties":true,"type":"object","title":"Instructions"}},"type":"object","required":["basket","instructions"],"title":"SuspendedBasketCreateResponse"},"SuspendedBasketOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"donor_id":{"type":"string","format":"uuid","title":"Donor Id"},"amount":{"type":"number","title":"Amount"},"payment_id":{"type":"string","format":"uuid","title":"Payment Id"},"allocation_status":{"type":"string","title":"Allocation Status"},"beneficiary_org_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Beneficiary Org Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","donor_id","amount","payment_id","allocation_status","beneficiary_org_id","created_at"],"title":"SuspendedBasketOut"},"SuspendedBasketRedeemIn":{"properties":{"offer_id":{"type":"string","format":"uuid","title":"Offer Id"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","default":1}},"type":"object","required":["offer_id"],"title":"SuspendedBasketRedeemIn"},"TokenOut":{"properties":{"access_token":{"type":"string","title":"Access Token"},"refresh_token":{"type":"string","title":"Refresh Token"},"user":{"$ref":"#/components/schemas/UserOut"}},"type":"object","required":["access_token","refresh_token","user"],"title":"TokenOut"},"UpdateStatus":{"properties":{"status":{"type":"string","enum":["in_progress","delivered","cancelled"],"title":"Status"}},"type":"object","required":["status"],"title":"UpdateStatus"},"UserOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"phone":{"type":"string","title":"Phone"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"role":{"type":"string","title":"Role"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"lang":{"type":"string","title":"Lang"},"status":{"type":"string","title":"Status"},"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone"},"onboarding_completed":{"type":"boolean","title":"Onboarding Completed"}},"type":"object","required":["id","phone","email","role","name","lang","status","zone","onboarding_completed"],"title":"UserOut"},"ValidateCodeBody":{"properties":{"code":{"type":"string","minLength":1,"title":"Code"}},"type":"object","required":["code"],"title":"ValidateCodeBody"},"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"},"VerifyRequest":{"properties":{"phone":{"type":"string","title":"Phone"},"code":{"type":"string","title":"Code"}},"type":"object","required":["phone","code"],"title":"VerifyRequest"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}