{
  "openapi": "3.1.0",
  "info": {
    "title": "DiddiFood",
    "version": "0.1.0"
  },
  "paths": {
    "/food/v1/restaurants": {
      "get": {
        "tags": [
          "restaurants"
        ],
        "summary": "List Restaurants",
        "operationId": "list_restaurants_food_v1_restaurants_get",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 20,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 80
                },
                {
                  "type": "null"
                }
              ],
              "description": "Recherche légère par nom, adresse ou catégorie.",
              "title": "Q"
            },
            "description": "Recherche légère par nom, adresse ou catégorie."
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 30
                },
                {
                  "type": "null"
                }
              ],
              "title": "Category"
            }
          },
          {
            "name": "is_open",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filtre selon les horaires locaux Africa/Abidjan.",
              "title": "Is Open"
            },
            "description": "Filtre selon les horaires locaux Africa/Abidjan."
          },
          {
            "name": "latitude",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "number",
                  "maximum": 90,
                  "minimum": -90
                },
                {
                  "type": "null"
                }
              ],
              "title": "Latitude"
            }
          },
          {
            "name": "longitude",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "number",
                  "maximum": 180,
                  "minimum": -180
                },
                {
                  "type": "null"
                }
              ],
              "title": "Longitude"
            }
          },
          {
            "name": "radius_km",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "number",
                  "maximum": 10.0,
                  "exclusiveMinimum": 0
                },
                {
                  "type": "null"
                }
              ],
              "title": "Radius Km"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantListOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "restaurants"
        ],
        "summary": "Register Restaurant",
        "operationId": "register_restaurant_food_v1_restaurants_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestaurantCreateIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}": {
      "get": {
        "tags": [
          "restaurants"
        ],
        "summary": "Get Restaurant",
        "operationId": "get_restaurant_food_v1_restaurants__restaurant_id__get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/approve": {
      "post": {
        "tags": [
          "restaurants"
        ],
        "summary": "Approve Restaurant",
        "operationId": "approve_restaurant_food_v1_restaurants__restaurant_id__approve_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/reject": {
      "post": {
        "tags": [
          "restaurants"
        ],
        "summary": "Reject Restaurant",
        "operationId": "reject_restaurant_food_v1_restaurants__restaurant_id__reject_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/documents": {
      "get": {
        "tags": [
          "restaurants"
        ],
        "summary": "List Restaurant Documents",
        "operationId": "list_restaurant_documents_food_v1_restaurants__restaurant_id__documents_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RestaurantDocumentOut"
                  },
                  "title": "Response List Restaurant Documents Food V1 Restaurants  Restaurant Id  Documents Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/documents/{document_type}": {
      "put": {
        "tags": [
          "restaurants"
        ],
        "summary": "Replace Restaurant Document",
        "operationId": "replace_restaurant_document_food_v1_restaurants__restaurant_id__documents__document_type__put",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "document_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Document Type"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestaurantDocumentIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantDocumentOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/submit": {
      "post": {
        "tags": [
          "restaurants"
        ],
        "summary": "Submit Restaurant For Review",
        "operationId": "submit_restaurant_for_review_food_v1_restaurants__restaurant_id__submit_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/availability": {
      "patch": {
        "tags": [
          "restaurants"
        ],
        "summary": "Set Restaurant Availability",
        "operationId": "set_restaurant_availability_food_v1_restaurants__restaurant_id__availability_patch",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestaurantAvailabilityIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/service-settings": {
      "put": {
        "tags": [
          "restaurants"
        ],
        "summary": "Update Service Settings",
        "operationId": "update_service_settings_food_v1_restaurants__restaurant_id__service_settings_put",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestaurantServiceSettingsIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/logo": {
      "put": {
        "tags": [
          "restaurants"
        ],
        "summary": "Update Restaurant Logo",
        "operationId": "update_restaurant_logo_food_v1_restaurants__restaurant_id__logo_put",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestaurantLogoIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/staff": {
      "get": {
        "tags": [
          "restaurants"
        ],
        "summary": "List Staff",
        "operationId": "list_staff_food_v1_restaurants__restaurant_id__staff_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StaffOut"
                  },
                  "title": "Response List Staff Food V1 Restaurants  Restaurant Id  Staff Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "restaurants"
        ],
        "summary": "Invite Staff",
        "operationId": "invite_staff_food_v1_restaurants__restaurant_id__staff_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StaffInviteIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StaffOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/staff/{target_user_id}": {
      "delete": {
        "tags": [
          "restaurants"
        ],
        "summary": "Remove Staff",
        "operationId": "remove_staff_food_v1_restaurants__restaurant_id__staff__target_user_id__delete",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "target_user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Target User Id"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/restaurants": {
      "get": {
        "tags": [
          "backoffice"
        ],
        "summary": "List Admin Restaurants",
        "operationId": "list_admin_restaurants_food_v1_internal_backoffice_restaurants_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/RestaurantStatus"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 20,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantListOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "backoffice"
        ],
        "summary": "Create Admin Restaurant",
        "operationId": "create_admin_restaurant_food_v1_internal_backoffice_restaurants_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "X-Backoffice-Actor",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Actor"
            }
          },
          {
            "name": "X-Backoffice-Command-Id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Command-Id"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminRestaurantCreateIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminRestaurantCreateOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/restaurants/{restaurant_id}": {
      "get": {
        "tags": [
          "backoffice"
        ],
        "summary": "Get Admin Restaurant",
        "operationId": "get_admin_restaurant_food_v1_internal_backoffice_restaurants__restaurant_id__get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/restaurants/{restaurant_id}/staff": {
      "get": {
        "tags": [
          "backoffice"
        ],
        "summary": "List Admin Staff",
        "operationId": "list_admin_staff_food_v1_internal_backoffice_restaurants__restaurant_id__staff_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StaffOut"
                  },
                  "title": "Response List Admin Staff Food V1 Internal Backoffice Restaurants  Restaurant Id  Staff Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/restaurants/{restaurant_id}/staff/{target_user_id}": {
      "put": {
        "tags": [
          "backoffice"
        ],
        "summary": "Change Admin Staff",
        "operationId": "change_admin_staff_food_v1_internal_backoffice_restaurants__restaurant_id__staff__target_user_id__put",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "target_user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "title": "Target User Id"
            }
          },
          {
            "name": "X-Backoffice-Actor",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Actor"
            }
          },
          {
            "name": "X-Backoffice-Command-Id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Command-Id"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StaffChangeIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StaffChangeOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/restaurants/{restaurant_id}/service-settings": {
      "put": {
        "tags": [
          "backoffice"
        ],
        "summary": "Update Admin Settings",
        "operationId": "update_admin_settings_food_v1_internal_backoffice_restaurants__restaurant_id__service_settings_put",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "X-Backoffice-Actor",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Actor"
            }
          },
          {
            "name": "X-Backoffice-Command-Id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Command-Id"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminSettingsIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminSettingsOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/restaurants/{restaurant_id}/decisions": {
      "post": {
        "tags": [
          "backoffice"
        ],
        "summary": "Decide Restaurant",
        "operationId": "decide_restaurant_food_v1_internal_backoffice_restaurants__restaurant_id__decisions_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "X-Backoffice-Actor",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Actor"
            }
          },
          {
            "name": "X-Backoffice-Command-Id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Command-Id"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestaurantDecisionIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantDecisionOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/restaurants/{restaurant_id}/documents": {
      "get": {
        "tags": [
          "backoffice"
        ],
        "summary": "List Admin Documents",
        "operationId": "list_admin_documents_food_v1_internal_backoffice_restaurants__restaurant_id__documents_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RestaurantDocumentOut"
                  },
                  "title": "Response List Admin Documents Food V1 Internal Backoffice Restaurants  Restaurant Id  Documents Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/restaurants/{restaurant_id}/documents/{document_type}/decision": {
      "post": {
        "tags": [
          "backoffice"
        ],
        "summary": "Decide Admin Document",
        "operationId": "decide_admin_document_food_v1_internal_backoffice_restaurants__restaurant_id__documents__document_type__decision_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "document_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Document Type"
            }
          },
          {
            "name": "X-Backoffice-Actor",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Actor"
            }
          },
          {
            "name": "X-Backoffice-Command-Id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Command-Id"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestaurantDocumentDecisionIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantDocumentDecisionOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/audit-events": {
      "get": {
        "tags": [
          "backoffice"
        ],
        "summary": "List Admin Actions",
        "operationId": "list_admin_actions_food_v1_internal_backoffice_audit_events_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Restaurant Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 20,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AdminActionOut"
                  },
                  "title": "Response List Admin Actions Food V1 Internal Backoffice Audit Events Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/orders": {
      "get": {
        "tags": [
          "backoffice"
        ],
        "summary": "List Admin Orders",
        "operationId": "list_admin_orders_food_v1_internal_backoffice_orders_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Restaurant Id"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/OrderStatus"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 20,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderListOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/orders/{order_id}": {
      "get": {
        "tags": [
          "backoffice"
        ],
        "summary": "Get Admin Order",
        "operationId": "get_admin_order_food_v1_internal_backoffice_orders__order_id__get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/orders/{order_id}/cancel": {
      "post": {
        "tags": [
          "backoffice"
        ],
        "summary": "Cancel Admin Order",
        "operationId": "cancel_admin_order_food_v1_internal_backoffice_orders__order_id__cancel_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          },
          {
            "name": "X-Backoffice-Actor",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Actor"
            }
          },
          {
            "name": "X-Backoffice-Command-Id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Command-Id"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCancelOrderIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCancelOrderOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/orders/{order_id}/delivery": {
      "get": {
        "tags": [
          "backoffice"
        ],
        "summary": "Get Admin Delivery",
        "operationId": "get_admin_delivery_food_v1_internal_backoffice_orders__order_id__delivery_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminDeliveryOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/orders/{order_id}/payment": {
      "get": {
        "tags": [
          "backoffice"
        ],
        "summary": "Get Admin Payment",
        "operationId": "get_admin_payment_food_v1_internal_backoffice_orders__order_id__payment_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPaymentOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/refund-requests": {
      "get": {
        "tags": [
          "backoffice"
        ],
        "summary": "List Admin Refund Requests",
        "operationId": "list_admin_refund_requests_food_v1_internal_backoffice_refund_requests_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 20,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AdminRefundRequestOut"
                  },
                  "title": "Response List Admin Refund Requests Food V1 Internal Backoffice Refund Requests Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/refund-requests/{refund_request_id}/approve": {
      "post": {
        "tags": [
          "backoffice"
        ],
        "summary": "Approve Admin Refund",
        "operationId": "approve_admin_refund_food_v1_internal_backoffice_refund_requests__refund_request_id__approve_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "refund_request_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Refund Request Id"
            }
          },
          {
            "name": "X-Backoffice-Actor",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Actor"
            }
          },
          {
            "name": "X-Backoffice-Command-Id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Command-Id"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminRefundDecisionIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminRefundDecisionOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/refund-requests/{refund_request_id}/reject": {
      "post": {
        "tags": [
          "backoffice"
        ],
        "summary": "Reject Admin Refund",
        "operationId": "reject_admin_refund_food_v1_internal_backoffice_refund_requests__refund_request_id__reject_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "refund_request_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Refund Request Id"
            }
          },
          {
            "name": "X-Backoffice-Actor",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Actor"
            }
          },
          {
            "name": "X-Backoffice-Command-Id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Command-Id"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminRefundDecisionIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminRefundDecisionOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/me/restaurants": {
      "get": {
        "tags": [
          "restaurants"
        ],
        "summary": "List My Restaurants",
        "operationId": "list_my_restaurants_food_v1_me_restaurants_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MyRestaurantOut"
                  },
                  "type": "array",
                  "title": "Response List My Restaurants Food V1 Me Restaurants Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      }
    },
    "/food/v1/restaurants/{restaurant_id}/menu": {
      "get": {
        "tags": [
          "catalog"
        ],
        "summary": "Get Menu",
        "operationId": "get_menu_food_v1_restaurants__restaurant_id__menu_get",
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MenuOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/dishes": {
      "get": {
        "tags": [
          "catalog"
        ],
        "summary": "List Manager Dishes",
        "operationId": "list_manager_dishes_food_v1_restaurants__restaurant_id__dishes_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MenuOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "catalog"
        ],
        "summary": "Create Dish",
        "operationId": "create_dish_food_v1_restaurants__restaurant_id__dishes_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "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/DishCreateIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DishOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/kitchen/dishes": {
      "get": {
        "tags": [
          "catalog"
        ],
        "summary": "List Kitchen Dishes",
        "operationId": "list_kitchen_dishes_food_v1_restaurants__restaurant_id__kitchen_dishes_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KitchenDishListOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/dishes/{dish_id}": {
      "patch": {
        "tags": [
          "catalog"
        ],
        "summary": "Update Dish",
        "operationId": "update_dish_food_v1_restaurants__restaurant_id__dishes__dish_id__patch",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "dish_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Dish Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DishUpdateIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DishOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/dishes/{dish_id}/availability": {
      "patch": {
        "tags": [
          "catalog"
        ],
        "summary": "Set Dish Availability",
        "operationId": "set_dish_availability_food_v1_restaurants__restaurant_id__dishes__dish_id__availability_patch",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "dish_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Dish Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AvailabilityToggleIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DishAvailabilityOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/backoffice/restaurants/{restaurant_id}/dishes": {
      "get": {
        "tags": [
          "backoffice"
        ],
        "summary": "Get Admin Catalog",
        "operationId": "get_admin_catalog_food_v1_internal_backoffice_restaurants__restaurant_id__dishes_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MenuOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/orders": {
      "get": {
        "tags": [
          "orders"
        ],
        "summary": "List My Orders",
        "operationId": "list_my_orders_food_v1_orders_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 20,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderOut"
                  },
                  "title": "Response List My Orders Food V1 Orders Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/orders/{order_id}": {
      "get": {
        "tags": [
          "orders"
        ],
        "summary": "Get My Order",
        "operationId": "get_my_order_food_v1_orders__order_id__get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/orders/{order_id}/cancel": {
      "post": {
        "tags": [
          "orders"
        ],
        "summary": "Cancel Order",
        "operationId": "cancel_order_food_v1_orders__order_id__cancel_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelOrderIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/orders/{order_id}/rating": {
      "post": {
        "tags": [
          "orders"
        ],
        "summary": "Rate Order",
        "description": "Customer rates a delivered order (SCRUM-547 #1).",
        "operationId": "rate_order_food_v1_orders__order_id__rating_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RateOrderIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderRatingOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "orders"
        ],
        "summary": "Get Order Rating",
        "operationId": "get_order_rating_food_v1_orders__order_id__rating_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderRatingOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/orders/{order_id}/items/{item_id}/substitution/respond": {
      "post": {
        "tags": [
          "orders"
        ],
        "summary": "Respond To Substitution",
        "operationId": "respond_to_substitution_food_v1_orders__order_id__items__item_id__substitution_respond_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          },
          {
            "name": "item_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Item Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubstitutionResponseIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/orders": {
      "post": {
        "tags": [
          "orders"
        ],
        "summary": "Place Order",
        "operationId": "place_order_food_v1_restaurants__restaurant_id__orders_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaceOrderIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "orders"
        ],
        "summary": "List Queue",
        "operationId": "list_queue_food_v1_restaurants__restaurant_id__orders_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filtre par statut, répétable: ?status=placed&status=preparing. Par défaut, la file active (placed, preparing, ready).",
              "title": "Status"
            },
            "description": "Filtre par statut, répétable: ?status=placed&status=preparing. Par défaut, la file active (placed, preparing, ready)."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/orders/{order_id}/accept": {
      "post": {
        "tags": [
          "orders"
        ],
        "summary": "Accept Order",
        "operationId": "accept_order_food_v1_restaurants__restaurant_id__orders__order_id__accept_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptOrderIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/OrderOut"
                    },
                    {
                      "$ref": "#/components/schemas/OrderKitchenOut"
                    }
                  ],
                  "title": "Response Accept Order Food V1 Restaurants  Restaurant Id  Orders  Order Id  Accept Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/orders/{order_id}/delivery/request": {
      "post": {
        "tags": [
          "orders"
        ],
        "summary": "Request Delivery Retry",
        "description": "Manual retry for the best-effort dispatch attempted in accept_order\n(see its docstring) -- e.g. DiddiSend was unreachable/unconfigured at\nacceptance time and is now available. request_delivery is idempotent by\norder_id, so calling this when a delivery already exists just returns\nit rather than requesting a second one.",
        "operationId": "request_delivery_retry_food_v1_restaurants__restaurant_id__orders__order_id__delivery_request_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/orders/{order_id}/reject": {
      "post": {
        "tags": [
          "orders"
        ],
        "summary": "Reject Order",
        "operationId": "reject_order_food_v1_restaurants__restaurant_id__orders__order_id__reject_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectOrderIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/OrderOut"
                    },
                    {
                      "$ref": "#/components/schemas/OrderKitchenOut"
                    }
                  ],
                  "title": "Response Reject Order Food V1 Restaurants  Restaurant Id  Orders  Order Id  Reject Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/orders/{order_id}/ready": {
      "post": {
        "tags": [
          "orders"
        ],
        "summary": "Mark Ready",
        "operationId": "mark_ready_food_v1_restaurants__restaurant_id__orders__order_id__ready_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/OrderOut"
                    },
                    {
                      "$ref": "#/components/schemas/OrderKitchenOut"
                    }
                  ],
                  "title": "Response Mark Ready Food V1 Restaurants  Restaurant Id  Orders  Order Id  Ready Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/orders/{order_id}/pickup/complete": {
      "post": {
        "tags": [
          "orders"
        ],
        "summary": "Complete Pickup Order",
        "operationId": "complete_pickup_order_food_v1_restaurants__restaurant_id__orders__order_id__pickup_complete_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/OrderOut"
                    },
                    {
                      "$ref": "#/components/schemas/OrderKitchenOut"
                    }
                  ],
                  "title": "Response Complete Pickup Order Food V1 Restaurants  Restaurant Id  Orders  Order Id  Pickup Complete Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/orders/{order_id}/items/{item_id}/substitution": {
      "post": {
        "tags": [
          "orders"
        ],
        "summary": "Propose Substitution",
        "operationId": "propose_substitution_food_v1_restaurants__restaurant_id__orders__order_id__items__item_id__substitution_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          },
          {
            "name": "item_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Item Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProposeSubstitutionIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/OrderOut"
                    },
                    {
                      "$ref": "#/components/schemas/OrderKitchenOut"
                    }
                  ],
                  "title": "Response Propose Substitution Food V1 Restaurants  Restaurant Id  Orders  Order Id  Items  Item Id  Substitution Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/orders/{order_id}/financial-breakdown": {
      "get": {
        "tags": [
          "orders"
        ],
        "summary": "Restaurant Order Financial Breakdown",
        "operationId": "restaurant_order_financial_breakdown_food_v1_restaurants__restaurant_id__orders__order_id__financial_breakdown_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantOrderFinancialOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/quote": {
      "post": {
        "tags": [
          "orders"
        ],
        "summary": "Quote Order",
        "description": "Calculate the Food-owned total before an order is created.\n\nThe delivery fee is the configured Food fee until the DiddiSend quote\ncontract is integrated. The order endpoint applies the same policy.",
        "operationId": "quote_order_food_v1_restaurants__restaurant_id__quote_post",
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderQuoteIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderQuoteOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/daily-summary": {
      "get": {
        "tags": [
          "orders"
        ],
        "summary": "Restaurant Daily Summary",
        "description": "Manager dashboard stats for a day (SCRUM-550): orders received and gross\nrevenue. Manager-only; the S2S /internal/pilotage routes are not reachable\nwith a partner token.",
        "operationId": "restaurant_daily_summary_food_v1_restaurants__restaurant_id__daily_summary_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "date",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date",
              "title": "Date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantDailySummaryOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/weekly-summary": {
      "get": {
        "tags": [
          "orders"
        ],
        "summary": "Restaurant Weekly Summary",
        "operationId": "restaurant_weekly_summary_food_v1_restaurants__restaurant_id__weekly_summary_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "week_start",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Week Start"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestaurantWeeklySummaryOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/payment-returns/{token}": {
      "get": {
        "tags": [
          "payments"
        ],
        "summary": "Get Payment Return",
        "description": "Resolve the authenticated browser-return context. The redirect itself does not confirm payment; read payment_status and then GET the order payment.",
        "operationId": "get_payment_return_food_v1_payment_returns__token__get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Token"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentReturnOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/orders/{order_id}/payment": {
      "get": {
        "tags": [
          "payments"
        ],
        "summary": "Get Payment",
        "operationId": "get_payment_food_v1_orders__order_id__payment_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order 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"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/orders/{order_id}/payment/refresh": {
      "post": {
        "tags": [
          "payments"
        ],
        "summary": "Refresh Payment",
        "operationId": "refresh_payment_food_v1_orders__order_id__payment_refresh_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order 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"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/orders/{order_id}/payments/prepare": {
      "post": {
        "tags": [
          "payments"
        ],
        "summary": "Prepare Online Payment",
        "description": "Customer-triggered online-payment preparation and retry.\n\nThe order remains ``placed`` while the customer prepares online payment.\nThe restaurant can accept only after DiddiPay confirms ``succeeded``. The\nemail is optional for the client: when absent, Food follows DiddiGo's rule\nand derives a provider-compatible value from the authenticated customer's\nphone claim. The operation is idempotent and never treats a browser\nredirect as payment confirmation.",
        "operationId": "prepare_online_payment_food_v1_orders__order_id__payments_prepare_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PrepareOnlinePaymentIn"
              }
            }
          }
        },
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/orders/{order_id}/refund-requests": {
      "post": {
        "tags": [
          "payments"
        ],
        "summary": "Submit Refund Request",
        "description": "Let the customer submit a request; Support/admin decides it in Backoffice.\n\nThe request body contains only a free-text reason. Food derives the refund\namount from the persisted payment amount, so a client cannot choose a\npartial or inflated amount.",
        "operationId": "submit_refund_request_food_v1_orders__order_id__refund_requests_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitRefundRequestIn"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundRequestOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "payments"
        ],
        "summary": "List Customer Refund Requests",
        "description": "Allow the order owner to follow submitted and decided refund requests.",
        "operationId": "list_customer_refund_requests_food_v1_orders__order_id__refund_requests_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RefundRequestOut"
                  },
                  "title": "Response List Customer Refund Requests Food V1 Orders  Order Id  Refund Requests Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/orders/{order_id}/payments/confirm-cash": {
      "post": {
        "tags": [
          "payments"
        ],
        "summary": "Confirm Cash",
        "operationId": "confirm_cash_food_v1_restaurants__restaurant_id__orders__order_id__payments_confirm_cash_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order 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"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/admin/refund-requests": {
      "get": {
        "tags": [
          "payments"
        ],
        "summary": "List Refund Queue",
        "operationId": "list_refund_queue_food_v1_admin_refund_requests_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RefundRequestOut"
                  },
                  "type": "array",
                  "title": "Response List Refund Queue Food V1 Admin Refund Requests Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      }
    },
    "/food/v1/admin/refund-requests/{refund_request_id}/approve": {
      "post": {
        "tags": [
          "payments"
        ],
        "summary": "Approve Refund",
        "operationId": "approve_refund_food_v1_admin_refund_requests__refund_request_id__approve_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "refund_request_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Refund Request Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundRequestOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/admin/refund-requests/{refund_request_id}/reject": {
      "post": {
        "tags": [
          "payments"
        ],
        "summary": "Reject Refund",
        "operationId": "reject_refund_food_v1_admin_refund_requests__refund_request_id__reject_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "refund_request_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Refund Request Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundRequestOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/orders/{order_id}/delivery": {
      "get": {
        "tags": [
          "delivery"
        ],
        "summary": "Get Delivery",
        "operationId": "get_delivery_food_v1_orders__order_id__delivery_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order 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"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/orders/{order_id}/delivery/tracking": {
      "get": {
        "tags": [
          "delivery"
        ],
        "summary": "Get Delivery Tracking",
        "description": "Stable Food read surface over DiddiSend's tracking projection.",
        "operationId": "get_delivery_tracking_food_v1_orders__order_id__delivery_tracking_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order 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"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/orders/{order_id}/delivery/refresh": {
      "post": {
        "tags": [
          "delivery"
        ],
        "summary": "Refresh Delivery",
        "operationId": "refresh_delivery_food_v1_orders__order_id__delivery_refresh_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order 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"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/devices/register": {
      "post": {
        "tags": [
          "notifications"
        ],
        "summary": "Register Device",
        "operationId": "register_device_food_v1_devices_register_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterDeviceIn"
              }
            }
          },
          "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": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      }
    },
    "/food/v1/devices/unregister": {
      "post": {
        "tags": [
          "notifications"
        ],
        "summary": "Unregister Device",
        "operationId": "unregister_device_food_v1_devices_unregister_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnregisterDeviceIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ]
      }
    },
    "/food/v1/restaurants/{restaurant_id}/wallet": {
      "get": {
        "tags": [
          "restaurant-wallet"
        ],
        "summary": "Get Wallet",
        "operationId": "get_wallet_food_v1_restaurants__restaurant_id__wallet_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WalletOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/wallet/entries": {
      "get": {
        "tags": [
          "restaurant-wallet"
        ],
        "summary": "List Wallet Entries",
        "operationId": "list_wallet_entries_food_v1_restaurants__restaurant_id__wallet_entries_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "order_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Order Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WalletEntryListOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/wallet/withdrawal-quote": {
      "get": {
        "tags": [
          "restaurant-wallet"
        ],
        "summary": "Get Withdrawal Quote",
        "operationId": "get_withdrawal_quote_food_v1_restaurants__restaurant_id__wallet_withdrawal_quote_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "amount_minor_units",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "title": "Amount Minor Units"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WithdrawalQuoteOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/wallet/withdrawals": {
      "post": {
        "tags": [
          "restaurant-wallet"
        ],
        "summary": "Request Withdrawal",
        "operationId": "request_withdrawal_food_v1_restaurants__restaurant_id__wallet_withdrawals_post",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "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/WithdrawalCreateIn"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WithdrawalOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "restaurant-wallet"
        ],
        "summary": "List Withdrawals",
        "description": "Restaurant payout (withdrawal) history for RestaurantWalletScreen\n(SCRUM-525 pt2). Empty until the withdrawal flow can execute (SCRUM-456).",
        "operationId": "list_withdrawals_food_v1_restaurants__restaurant_id__wallet_withdrawals_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 20,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WithdrawalListOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/restaurants/{restaurant_id}/wallet/withdrawals/{withdrawal_id}": {
      "get": {
        "tags": [
          "restaurant-wallet"
        ],
        "summary": "Get Withdrawal",
        "operationId": "get_withdrawal_food_v1_restaurants__restaurant_id__wallet_withdrawals__withdrawal_id__get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "withdrawal_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Withdrawal Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WithdrawalOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/admin/restaurants/{restaurant_id}/wallet/beneficiary": {
      "put": {
        "tags": [
          "backoffice-food"
        ],
        "summary": "Configure Wallet Beneficiary",
        "operationId": "configure_wallet_beneficiary_food_v1_admin_restaurants__restaurant_id__wallet_beneficiary_put",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Restaurant Id"
            }
          },
          {
            "name": "X-Backoffice-Actor",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Actor"
            }
          },
          {
            "name": "X-Backoffice-Command-Id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Backoffice-Command-Id"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BeneficiaryIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BeneficiaryOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/pilotage/daily-summary": {
      "get": {
        "tags": [
          "pilotage"
        ],
        "summary": "Daily Summary",
        "operationId": "daily_summary_food_v1_internal_pilotage_daily_summary_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date",
              "title": "Date"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SummaryOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/pilotage/finance-summary": {
      "get": {
        "tags": [
          "pilotage"
        ],
        "summary": "Finance Summary",
        "operationId": "finance_summary_food_v1_internal_pilotage_finance_summary_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date",
              "title": "Date"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SummaryOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/pilotage/breakdown": {
      "get": {
        "tags": [
          "pilotage"
        ],
        "summary": "Breakdown",
        "operationId": "breakdown_food_v1_internal_pilotage_breakdown_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date",
              "title": "Date"
            }
          },
          {
            "name": "dimension",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/PilotageBreakdownDimension",
              "description": "Dimension de ventilation supportee par DiddiFood."
            },
            "description": "Dimension de ventilation supportee par DiddiFood."
          },
          {
            "name": "metric",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/PilotageBreakdownMetric",
              "description": "Metrique financiere ou operationnelle a ventiler."
            },
            "description": "Metrique financiere ou operationnelle a ventiler."
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BreakdownOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/pilotage/orders/{order_id}/financial-breakdown": {
      "get": {
        "tags": [
          "pilotage"
        ],
        "summary": "Order Financial Breakdown",
        "description": "Return an order-level financial explanation for Pilotage/Support.\n\nThis route contains amounts only; customer, recipient and address data\nstay in the customer-facing order route.",
        "operationId": "order_financial_breakdown_food_v1_internal_pilotage_orders__order_id__financial_breakdown_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderFinancialBreakdownOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/food/v1/internal/pilotage/health-summary": {
      "get": {
        "tags": [
          "pilotage"
        ],
        "summary": "Health Summary",
        "operationId": "health_summary_food_v1_internal_pilotage_health_summary_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthSummaryOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/internal/v1/support/order/{order_id}/context": {
      "get": {
        "tags": [
          "support-context"
        ],
        "summary": "Get Order Support Context",
        "operationId": "get_order_support_context_internal_v1_support_order__order_id__context_get",
        "security": [
          {
            "OAuth2PasswordBearer": []
          }
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Order Id"
            }
          },
          {
            "name": "X-Support-Context-Scope",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Support-Context-Scope"
            }
          },
          {
            "name": "X-Client-ID",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Client-Id"
            }
          },
          {
            "name": "X-Service-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Service-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FoodOrderContextEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "summary": "Health",
        "operationId": "health_health_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object",
                  "title": "Response Health Health Get"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AcceptOrderIn": {
        "properties": {
          "prep_minutes": {
            "type": "integer",
            "maximum": 180.0,
            "exclusiveMinimum": 0.0,
            "title": "Prep Minutes"
          }
        },
        "type": "object",
        "required": [
          "prep_minutes"
        ],
        "title": "AcceptOrderIn"
      },
      "AdminActionOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "client_id": {
            "type": "string",
            "title": "Client Id"
          },
          "operator_user_id": {
            "type": "string",
            "title": "Operator User Id"
          },
          "action": {
            "type": "string",
            "title": "Action"
          },
          "restaurant_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Restaurant Id"
          },
          "resource_type": {
            "type": "string",
            "title": "Resource Type"
          },
          "resource_id": {
            "type": "string",
            "title": "Resource Id"
          },
          "reason": {
            "type": "string",
            "title": "Reason"
          },
          "request_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Request Id"
          },
          "command_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Command Id"
          },
          "idempotency_key": {
            "type": "string",
            "title": "Idempotency Key"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "result": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Result"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "client_id",
          "operator_user_id",
          "action",
          "restaurant_id",
          "resource_type",
          "resource_id",
          "reason",
          "request_id",
          "command_id",
          "idempotency_key",
          "status",
          "result",
          "error_code",
          "created_at",
          "completed_at"
        ],
        "title": "AdminActionOut"
      },
      "AdminCancelOrderIn": {
        "properties": {
          "reason": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Reason"
          },
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "operator_user_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Operator User Id"
          },
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 128,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Idempotency Key"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "reason"
        ],
        "title": "AdminCancelOrderIn"
      },
      "AdminCancelOrderOut": {
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "command_status": {
            "type": "string",
            "const": "completed",
            "title": "Command Status",
            "default": "completed"
          },
          "command_id": {
            "type": "string",
            "title": "Command Id"
          },
          "service_audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Service Audit Id"
          },
          "order_id": {
            "type": "string",
            "format": "uuid",
            "title": "Order Id"
          },
          "previous_status": {
            "type": "string",
            "title": "Previous Status"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Audit Id"
          },
          "cancelled_at": {
            "type": "string",
            "format": "date-time",
            "title": "Cancelled At"
          }
        },
        "type": "object",
        "required": [
          "command_id",
          "service_audit_id",
          "order_id",
          "previous_status",
          "status",
          "audit_id",
          "cancelled_at"
        ],
        "title": "AdminCancelOrderOut"
      },
      "AdminDeliveryOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "order_id": {
            "type": "string",
            "format": "uuid",
            "title": "Order Id"
          },
          "remote_delivery_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remote Delivery Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "required_vehicle_type": {
            "type": "string",
            "title": "Required Vehicle Type"
          },
          "exclusive": {
            "type": "boolean",
            "title": "Exclusive"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          },
          "last_synced_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Synced At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "order_id",
          "remote_delivery_id",
          "status",
          "required_vehicle_type",
          "exclusive",
          "created_at",
          "updated_at",
          "last_synced_at"
        ],
        "title": "AdminDeliveryOut"
      },
      "AdminOrderItemOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "dish_id": {
            "type": "string",
            "format": "uuid",
            "title": "Dish Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "quantity": {
            "type": "integer",
            "title": "Quantity"
          },
          "unit_price_minor_units": {
            "type": "integer",
            "title": "Unit Price Minor Units"
          },
          "subtotal_minor_units": {
            "type": "integer",
            "title": "Subtotal Minor Units"
          }
        },
        "type": "object",
        "required": [
          "id",
          "dish_id",
          "name",
          "quantity",
          "unit_price_minor_units",
          "subtotal_minor_units"
        ],
        "title": "AdminOrderItemOut"
      },
      "AdminOrderListOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/AdminOrderOut"
            },
            "type": "array",
            "title": "Items"
          },
          "limit": {
            "type": "integer",
            "title": "Limit"
          },
          "offset": {
            "type": "integer",
            "title": "Offset"
          }
        },
        "type": "object",
        "required": [
          "items",
          "limit",
          "offset"
        ],
        "title": "AdminOrderListOut"
      },
      "AdminOrderOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "customer_user_id": {
            "type": "string",
            "title": "Customer User Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "payment_method": {
            "type": "string",
            "title": "Payment Method"
          },
          "pickup_mode": {
            "type": "string",
            "title": "Pickup Mode"
          },
          "dropoff_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dropoff Address"
          },
          "recipient_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Name"
          },
          "recipient_phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Phone"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/AdminOrderItemOut"
            },
            "type": "array",
            "title": "Items"
          },
          "removed_items": {
            "items": {
              "$ref": "#/components/schemas/AdminOrderItemOut"
            },
            "type": "array",
            "title": "Removed Items"
          },
          "total_minor_units": {
            "type": "integer",
            "title": "Total Minor Units"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "XOF"
          },
          "placed_at": {
            "type": "string",
            "format": "date-time",
            "title": "Placed At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          },
          "respond_by": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Respond By"
          },
          "accepted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accepted At"
          },
          "marked_ready_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Marked Ready At"
          },
          "picked_up_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Picked Up At"
          },
          "ready_at_estimate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ready At Estimate"
          },
          "delivered_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivered At"
          },
          "rejected_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rejected At"
          },
          "cancelled_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancelled At"
          },
          "rejection_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rejection Reason"
          },
          "cancellation_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancellation Reason"
          }
        },
        "type": "object",
        "required": [
          "id",
          "restaurant_id",
          "customer_user_id",
          "status",
          "payment_method",
          "pickup_mode",
          "dropoff_address",
          "recipient_name",
          "recipient_phone",
          "items",
          "removed_items",
          "total_minor_units",
          "placed_at",
          "updated_at",
          "respond_by",
          "accepted_at",
          "marked_ready_at",
          "picked_up_at",
          "ready_at_estimate",
          "delivered_at",
          "rejected_at",
          "cancelled_at",
          "rejection_reason",
          "cancellation_reason"
        ],
        "title": "AdminOrderOut"
      },
      "AdminPaymentOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "order_id": {
            "type": "string",
            "format": "uuid",
            "title": "Order Id"
          },
          "method": {
            "type": "string",
            "title": "Method"
          },
          "amount_minor_units": {
            "type": "integer",
            "title": "Amount Minor Units"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "XOF"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "intent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Intent Id"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "order_id",
          "method",
          "amount_minor_units",
          "status",
          "intent_id",
          "created_at",
          "updated_at"
        ],
        "title": "AdminPaymentOut"
      },
      "AdminRefundDecisionIn": {
        "properties": {
          "reason": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Reason"
          },
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "operator_user_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Operator User Id"
          },
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 128,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Idempotency Key"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "reason"
        ],
        "title": "AdminRefundDecisionIn"
      },
      "AdminRefundDecisionOut": {
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "command_status": {
            "type": "string",
            "const": "completed",
            "title": "Command Status",
            "default": "completed"
          },
          "command_id": {
            "type": "string",
            "title": "Command Id"
          },
          "service_audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Service Audit Id"
          },
          "refund_request_id": {
            "type": "string",
            "format": "uuid",
            "title": "Refund Request Id"
          },
          "order_id": {
            "type": "string",
            "format": "uuid",
            "title": "Order Id"
          },
          "amount_minor_units": {
            "type": "integer",
            "title": "Amount Minor Units"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "XOF"
          },
          "reason": {
            "type": "string",
            "title": "Reason"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "decided_by_user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decided By User Id"
          },
          "decided_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decided At"
          },
          "refund_ref_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refund Ref Id"
          },
          "failure_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Reason"
          },
          "audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Audit Id"
          }
        },
        "type": "object",
        "required": [
          "command_id",
          "service_audit_id",
          "refund_request_id",
          "order_id",
          "amount_minor_units",
          "reason",
          "status",
          "decided_by_user_id",
          "decided_at",
          "refund_ref_id",
          "failure_reason",
          "audit_id"
        ],
        "title": "AdminRefundDecisionOut"
      },
      "AdminRefundRequestOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "payment_id": {
            "type": "string",
            "format": "uuid",
            "title": "Payment Id"
          },
          "order_id": {
            "type": "string",
            "format": "uuid",
            "title": "Order Id"
          },
          "amount_minor_units": {
            "type": "integer",
            "title": "Amount Minor Units"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "XOF"
          },
          "reason": {
            "type": "string",
            "title": "Reason"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "submitted_by_user_id": {
            "type": "string",
            "title": "Submitted By User Id"
          },
          "submitted_at": {
            "type": "string",
            "format": "date-time",
            "title": "Submitted At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "payment_id",
          "order_id",
          "amount_minor_units",
          "reason",
          "status",
          "submitted_by_user_id",
          "submitted_at"
        ],
        "title": "AdminRefundRequestOut"
      },
      "AdminRestaurantCreateIn": {
        "properties": {
          "owner_user_id": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "title": "Owner User Id"
          },
          "name": {
            "type": "string",
            "maxLength": 120,
            "minLength": 1,
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "address": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Address"
          },
          "latitude": {
            "type": "number",
            "maximum": 90.0,
            "minimum": -90.0,
            "title": "Latitude"
          },
          "longitude": {
            "type": "number",
            "maximum": 180.0,
            "minimum": -180.0,
            "title": "Longitude"
          },
          "reason": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Reason"
          },
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "operator_user_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Operator User Id"
          },
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 128,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Idempotency Key"
          },
          "logo_file_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Logo File Id"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "owner_user_id",
          "name",
          "address",
          "latitude",
          "longitude",
          "reason"
        ],
        "title": "AdminRestaurantCreateIn"
      },
      "AdminRestaurantCreateOut": {
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "command_status": {
            "type": "string",
            "const": "completed",
            "title": "Command Status",
            "default": "completed"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "command_id": {
            "type": "string",
            "title": "Command Id"
          },
          "service_audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Service Audit Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "owner_user_id": {
            "type": "string",
            "title": "Owner User Id"
          },
          "audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Audit Id"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "status",
          "command_id",
          "service_audit_id",
          "restaurant_id",
          "owner_user_id",
          "audit_id",
          "created_at"
        ],
        "title": "AdminRestaurantCreateOut"
      },
      "AdminSettingsIn": {
        "properties": {
          "weekly_hours": {
            "$ref": "#/components/schemas/WeeklyHoursIn"
          },
          "service_neighborhoods": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "maxItems": 100,
            "title": "Service Neighborhoods"
          },
          "service_radius_km": {
            "type": "number",
            "maximum": 10.0,
            "exclusiveMinimum": 0.0,
            "title": "Service Radius Km"
          },
          "reason": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Reason"
          },
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "operator_user_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Operator User Id"
          },
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 128,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Idempotency Key"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "weekly_hours",
          "service_neighborhoods",
          "service_radius_km",
          "reason"
        ],
        "title": "AdminSettingsIn"
      },
      "AdminSettingsOut": {
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "command_status": {
            "type": "string",
            "const": "completed",
            "title": "Command Status",
            "default": "completed"
          },
          "command_id": {
            "type": "string",
            "title": "Command Id"
          },
          "service_audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Service Audit Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "weekly_hours": {
            "additionalProperties": {
              "items": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "type": "array"
            },
            "type": "object",
            "title": "Weekly Hours"
          },
          "service_neighborhoods": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Service Neighborhoods"
          },
          "service_radius_km": {
            "type": "number",
            "title": "Service Radius Km"
          },
          "audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Audit Id"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "command_id",
          "service_audit_id",
          "restaurant_id",
          "weekly_hours",
          "service_neighborhoods",
          "service_radius_km",
          "audit_id",
          "updated_at"
        ],
        "title": "AdminSettingsOut"
      },
      "AvailabilityToggleIn": {
        "properties": {
          "is_available": {
            "type": "boolean",
            "title": "Is Available"
          },
          "until_end_of_day": {
            "type": "boolean",
            "title": "Until End Of Day",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "is_available"
        ],
        "title": "AvailabilityToggleIn"
      },
      "BeneficiaryIn": {
        "properties": {
          "beneficiary_reference": {
            "type": "string",
            "maxLength": 128,
            "minLength": 1,
            "title": "Beneficiary Reference"
          },
          "reason": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Reason"
          },
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "operator_user_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Operator User Id"
          },
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 128,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Idempotency Key"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "beneficiary_reference",
          "reason"
        ],
        "title": "BeneficiaryIn"
      },
      "BeneficiaryOut": {
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "command_status": {
            "type": "string",
            "const": "completed",
            "title": "Command Status",
            "default": "completed"
          },
          "command_id": {
            "type": "string",
            "title": "Command Id"
          },
          "service_audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Service Audit Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "beneficiary_reference": {
            "type": "string",
            "title": "Beneficiary Reference"
          },
          "configured": {
            "type": "boolean",
            "title": "Configured",
            "default": true
          }
        },
        "type": "object",
        "required": [
          "command_id",
          "service_audit_id",
          "restaurant_id",
          "beneficiary_reference"
        ],
        "title": "BeneficiaryOut"
      },
      "BreakdownItemOut": {
        "properties": {
          "key": {
            "type": "string",
            "title": "Key"
          },
          "value": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "number"
              }
            ],
            "title": "Value"
          }
        },
        "type": "object",
        "required": [
          "key",
          "value"
        ],
        "title": "BreakdownItemOut"
      },
      "BreakdownOut": {
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "pilotage.breakdown.v1",
            "title": "Contract Version"
          },
          "module": {
            "type": "string",
            "const": "diddifood",
            "title": "Module"
          },
          "date": {
            "type": "string",
            "format": "date",
            "title": "Date"
          },
          "timezone": {
            "type": "string",
            "const": "Africa/Abidjan",
            "title": "Timezone"
          },
          "dimension": {
            "$ref": "#/components/schemas/PilotageBreakdownDimension"
          },
          "metric": {
            "$ref": "#/components/schemas/PilotageBreakdownMetric"
          },
          "is_final": {
            "type": "boolean",
            "title": "Is Final"
          },
          "total": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "number"
              }
            ],
            "title": "Total"
          },
          "unit": {
            "type": "string",
            "enum": [
              "count",
              "XOF",
              "seconds"
            ],
            "title": "Unit"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/BreakdownItemOut"
            },
            "type": "array",
            "title": "Items"
          },
          "calculated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Calculated At"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Limitations"
          }
        },
        "type": "object",
        "required": [
          "contract_version",
          "module",
          "date",
          "timezone",
          "dimension",
          "metric",
          "is_final",
          "total",
          "unit",
          "items",
          "calculated_at",
          "limitations"
        ],
        "title": "BreakdownOut"
      },
      "CancelOrderIn": {
        "properties": {
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          }
        },
        "type": "object",
        "title": "CancelOrderIn"
      },
      "CourierTrackingOut": {
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id"
          },
          "display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Name"
          }
        },
        "type": "object",
        "title": "CourierTrackingOut"
      },
      "DeepLinkOut": {
        "properties": {
          "label": {
            "type": "string",
            "title": "Label"
          },
          "href": {
            "type": "string",
            "title": "Href"
          }
        },
        "type": "object",
        "required": [
          "label",
          "href"
        ],
        "title": "DeepLinkOut"
      },
      "DeliveryOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "order_id": {
            "type": "string",
            "format": "uuid",
            "title": "Order Id"
          },
          "remote_delivery_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remote Delivery Id"
          },
          "status": {
            "type": "string",
            "enum": [
              "requested",
              "assigned",
              "picked_up",
              "in_transit",
              "delivered",
              "failed"
            ],
            "title": "Status"
          },
          "required_vehicle_type": {
            "type": "string",
            "title": "Required Vehicle Type"
          },
          "exclusive": {
            "type": "boolean",
            "title": "Exclusive"
          },
          "pickup_latitude": {
            "type": "number",
            "title": "Pickup Latitude"
          },
          "pickup_longitude": {
            "type": "number",
            "title": "Pickup Longitude"
          },
          "dropoff_latitude": {
            "type": "number",
            "title": "Dropoff Latitude"
          },
          "dropoff_longitude": {
            "type": "number",
            "title": "Dropoff Longitude"
          },
          "ready_at_estimate": {
            "type": "string",
            "format": "date-time",
            "title": "Ready At Estimate"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          },
          "last_synced_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Synced At"
          },
          "tracking": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DeliveryTrackingOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "failure_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Code"
          },
          "failure_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Reason"
          },
          "failed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failed At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "order_id",
          "remote_delivery_id",
          "status",
          "required_vehicle_type",
          "exclusive",
          "pickup_latitude",
          "pickup_longitude",
          "dropoff_latitude",
          "dropoff_longitude",
          "ready_at_estimate",
          "created_at",
          "updated_at",
          "last_synced_at"
        ],
        "title": "DeliveryOut"
      },
      "DeliveryPositionOut": {
        "properties": {
          "latitude": {
            "type": "number",
            "title": "Latitude"
          },
          "longitude": {
            "type": "number",
            "title": "Longitude"
          }
        },
        "type": "object",
        "required": [
          "latitude",
          "longitude"
        ],
        "title": "DeliveryPositionOut"
      },
      "DeliveryTrackingOut": {
        "properties": {
          "courier": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourierTrackingOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "position": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DeliveryPositionOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "eta_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Eta Minutes"
          },
          "last_updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Updated At"
          }
        },
        "type": "object",
        "title": "DeliveryTrackingOut"
      },
      "DeviceOut": {
        "properties": {
          "platform": {
            "type": "string",
            "title": "Platform"
          },
          "active": {
            "type": "boolean",
            "title": "Active"
          }
        },
        "type": "object",
        "required": [
          "platform",
          "active"
        ],
        "title": "DeviceOut"
      },
      "DishAvailabilityOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "is_available": {
            "type": "boolean",
            "title": "Is Available"
          },
          "unavailable_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unavailable Until"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "category",
          "is_available"
        ],
        "title": "DishAvailabilityOut",
        "description": "Reduced DTO -- no price. What a kitchen-role caller gets back."
      },
      "DishCreateIn": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 150,
            "minLength": 1,
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "price_minor_units": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Price Minor Units"
          },
          "category": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 80
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "photo_file_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Photo File Id"
          }
        },
        "type": "object",
        "required": [
          "name",
          "price_minor_units"
        ],
        "title": "DishCreateIn"
      },
      "DishOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "price_minor_units": {
            "type": "integer",
            "title": "Price Minor Units"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "XOF"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "photo_file_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Photo File Id"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "is_available": {
            "type": "boolean",
            "title": "Is Available"
          },
          "unavailable_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unavailable Until"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "restaurant_id",
          "name",
          "description",
          "price_minor_units",
          "category",
          "photo_file_id",
          "is_available",
          "created_at",
          "updated_at"
        ],
        "title": "DishOut",
        "description": "Full DTO -- includes price. Used for public browse and manager views.\nNEVER returned to a kitchen-only caller (see SCRUM-42 / UC-357)."
      },
      "DishUpdateIn": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 150,
            "minLength": 1,
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "price_minor_units": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Price Minor Units"
          },
          "category": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 80
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "photo_file_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Photo File Id"
          }
        },
        "type": "object",
        "required": [
          "name",
          "price_minor_units"
        ],
        "title": "DishUpdateIn"
      },
      "FinancialEntryOut": {
        "properties": {
          "entry_id": {
            "type": "string",
            "title": "Entry Id"
          },
          "account_ref": {
            "type": "string",
            "title": "Account Ref"
          },
          "service": {
            "type": "string",
            "const": "diddifood",
            "title": "Service"
          },
          "flow_type": {
            "type": "string",
            "title": "Flow Type"
          },
          "direction": {
            "type": "string",
            "enum": [
              "credit",
              "debit"
            ],
            "title": "Direction"
          },
          "state": {
            "type": "string",
            "enum": [
              "posted",
              "reserved",
              "released"
            ],
            "title": "State"
          },
          "amount": {
            "type": "integer",
            "title": "Amount"
          },
          "currency": {
            "type": "string",
            "const": "XOF",
            "title": "Currency"
          },
          "source": {
            "$ref": "#/components/schemas/FinancialEntrySourceOut"
          },
          "payment_source": {
            "$ref": "#/components/schemas/FinancialEntryPaymentSourceOut"
          },
          "payment_intent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Payment Intent Id"
          },
          "related_entry_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Related Entry Id"
          },
          "business_reference": {
            "type": "string",
            "title": "Business Reference"
          },
          "idempotency_key": {
            "type": "string",
            "title": "Idempotency Key"
          },
          "occurred_at": {
            "type": "string",
            "format": "date-time",
            "title": "Occurred At"
          }
        },
        "type": "object",
        "required": [
          "entry_id",
          "account_ref",
          "service",
          "flow_type",
          "direction",
          "state",
          "amount",
          "currency",
          "source",
          "payment_source",
          "payment_intent_id",
          "related_entry_id",
          "business_reference",
          "idempotency_key",
          "occurred_at"
        ],
        "title": "FinancialEntryOut"
      },
      "FinancialEntryPaymentSourceOut": {
        "properties": {
          "channel": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Channel"
          },
          "network": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Network"
          },
          "processor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Processor"
          }
        },
        "type": "object",
        "required": [
          "channel",
          "network",
          "processor"
        ],
        "title": "FinancialEntryPaymentSourceOut"
      },
      "FinancialEntrySourceOut": {
        "properties": {
          "type": {
            "type": "string",
            "title": "Type"
          },
          "id": {
            "type": "string",
            "title": "Id"
          }
        },
        "type": "object",
        "required": [
          "type",
          "id"
        ],
        "title": "FinancialEntrySourceOut"
      },
      "FoodFinancialBreakdownOut": {
        "properties": {
          "version": {
            "type": "string",
            "title": "Version"
          },
          "currency": {
            "type": "string",
            "title": "Currency"
          },
          "order_total": {
            "type": "integer",
            "title": "Order Total"
          },
          "restaurant_payout": {
            "type": "integer",
            "title": "Restaurant Payout"
          },
          "delivery_fee": {
            "type": "integer",
            "title": "Delivery Fee"
          },
          "courier_earning": {
            "type": "integer",
            "title": "Courier Earning"
          },
          "food_commission": {
            "type": "integer",
            "title": "Food Commission"
          },
          "send_commission": {
            "type": "integer",
            "title": "Send Commission"
          },
          "customer_total": {
            "type": "integer",
            "title": "Customer Total"
          },
          "cash_to_collect": {
            "type": "integer",
            "title": "Cash To Collect"
          },
          "sha256": {
            "type": "string",
            "title": "Sha256"
          }
        },
        "type": "object",
        "required": [
          "version",
          "currency",
          "order_total",
          "restaurant_payout",
          "delivery_fee",
          "courier_earning",
          "food_commission",
          "send_commission",
          "customer_total",
          "cash_to_collect",
          "sha256"
        ],
        "title": "FoodFinancialBreakdownOut"
      },
      "FoodOrderContextEnvelope": {
        "properties": {
          "protocol": {
            "type": "string",
            "title": "Protocol"
          },
          "origin_service": {
            "type": "string",
            "title": "Origin Service"
          },
          "resource_type": {
            "type": "string",
            "title": "Resource Type"
          },
          "resource_id": {
            "type": "string",
            "format": "uuid",
            "title": "Resource Id"
          },
          "data": {
            "$ref": "#/components/schemas/FoodOrderSupportContext"
          },
          "redacted_fields": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Redacted Fields"
          },
          "as_of": {
            "type": "string",
            "format": "date-time",
            "title": "As Of"
          },
          "fetched_at": {
            "type": "string",
            "format": "date-time",
            "title": "Fetched At"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "protocol",
          "origin_service",
          "resource_type",
          "resource_id",
          "data",
          "redacted_fields",
          "as_of",
          "fetched_at"
        ],
        "title": "FoodOrderContextEnvelope"
      },
      "FoodOrderSupportContext": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          },
          "payment_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Payment Status"
          },
          "payment_method": {
            "type": "string",
            "title": "Payment Method"
          },
          "order_total_xof": {
            "type": "integer",
            "title": "Order Total Xof"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "restaurant_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Restaurant Name"
          },
          "delivery_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivery Status"
          },
          "delivery_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivery Id"
          },
          "remote_delivery_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remote Delivery Id"
          },
          "pickup_mode": {
            "type": "string",
            "title": "Pickup Mode"
          },
          "placed_at": {
            "type": "string",
            "format": "date-time",
            "title": "Placed At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          },
          "accepted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accepted At"
          },
          "marked_ready_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Marked Ready At"
          },
          "picked_up_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Picked Up At"
          },
          "delivered_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivered At"
          },
          "rejected_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rejected At"
          },
          "cancelled_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancelled At"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "status",
          "payment_status",
          "payment_method",
          "order_total_xof",
          "restaurant_id",
          "restaurant_name",
          "delivery_status",
          "delivery_id",
          "remote_delivery_id",
          "pickup_mode",
          "placed_at",
          "updated_at",
          "accepted_at",
          "marked_ready_at",
          "picked_up_at",
          "delivered_at",
          "rejected_at",
          "cancelled_at"
        ],
        "title": "FoodOrderSupportContext"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "HealthSourceOut": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          },
          "status": {
            "type": "string",
            "enum": [
              "fresh",
              "stale",
              "unavailable"
            ],
            "title": "Status"
          },
          "synchronized_at": {
            "type": "string",
            "format": "date-time",
            "title": "Synchronized At"
          },
          "source_updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Updated At"
          },
          "age_seconds": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Age Seconds"
          },
          "enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Enabled"
          },
          "detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          }
        },
        "type": "object",
        "required": [
          "name",
          "status",
          "synchronized_at",
          "source_updated_at"
        ],
        "title": "HealthSourceOut"
      },
      "HealthSummaryOut": {
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "pilotage.v1",
            "title": "Contract Version"
          },
          "module": {
            "type": "string",
            "const": "diddifood",
            "title": "Module"
          },
          "timezone": {
            "type": "string",
            "const": "Africa/Abidjan",
            "title": "Timezone"
          },
          "calculated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Calculated At"
          },
          "freshness_window_seconds": {
            "type": "integer",
            "title": "Freshness Window Seconds"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/HealthSourceOut"
            },
            "type": "array",
            "title": "Sources"
          }
        },
        "type": "object",
        "required": [
          "contract_version",
          "module",
          "timezone",
          "calculated_at",
          "freshness_window_seconds",
          "sources"
        ],
        "title": "HealthSummaryOut"
      },
      "KitchenDishListOut": {
        "properties": {
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/DishAvailabilityOut"
            },
            "type": "array",
            "title": "Items"
          }
        },
        "type": "object",
        "required": [
          "restaurant_id",
          "items"
        ],
        "title": "KitchenDishListOut"
      },
      "MenuOut": {
        "properties": {
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/DishOut"
            },
            "type": "array",
            "title": "Items"
          }
        },
        "type": "object",
        "required": [
          "restaurant_id",
          "items"
        ],
        "title": "MenuOut"
      },
      "MetricOut": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          },
          "value": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "number"
              }
            ],
            "title": "Value"
          },
          "unit": {
            "type": "string",
            "enum": [
              "count",
              "XOF",
              "seconds"
            ],
            "title": "Unit"
          }
        },
        "type": "object",
        "required": [
          "name",
          "value",
          "unit"
        ],
        "title": "MetricOut"
      },
      "MyRestaurantOut": {
        "properties": {
          "restaurant": {
            "$ref": "#/components/schemas/RestaurantOut"
          },
          "role": {
            "type": "string",
            "title": "Role"
          }
        },
        "type": "object",
        "required": [
          "restaurant",
          "role"
        ],
        "title": "MyRestaurantOut"
      },
      "OpeningPeriodIn": {
        "properties": {
          "opens_at": {
            "type": "string",
            "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
            "title": "Opens At"
          },
          "closes_at": {
            "type": "string",
            "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
            "title": "Closes At"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "opens_at",
          "closes_at"
        ],
        "title": "OpeningPeriodIn"
      },
      "OrderFinancialBreakdownOut": {
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "food.order-financial-breakdown.v1",
            "title": "Contract Version"
          },
          "module": {
            "type": "string",
            "const": "diddifood",
            "title": "Module"
          },
          "order_id": {
            "type": "string",
            "format": "uuid",
            "title": "Order Id"
          },
          "currency": {
            "type": "string",
            "const": "XOF",
            "title": "Currency"
          },
          "order_status": {
            "type": "string",
            "title": "Order Status"
          },
          "payment_method": {
            "type": "string",
            "title": "Payment Method"
          },
          "payment_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Payment Status"
          },
          "order_total_xof": {
            "type": "integer",
            "title": "Order Total Xof"
          },
          "customer_total_xof": {
            "type": "integer",
            "title": "Customer Total Xof"
          },
          "delivery_fee_xof": {
            "type": "integer",
            "title": "Delivery Fee Xof"
          },
          "restaurant_payout_xof": {
            "type": "integer",
            "title": "Restaurant Payout Xof"
          },
          "courier_earning_xof": {
            "type": "integer",
            "title": "Courier Earning Xof"
          },
          "food_commission_xof": {
            "type": "integer",
            "title": "Food Commission Xof"
          },
          "send_commission_xof": {
            "type": "integer",
            "title": "Send Commission Xof"
          },
          "cash_to_collect_xof": {
            "type": "integer",
            "title": "Cash To Collect Xof"
          },
          "diddipay_fee_xof": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Diddipay Fee Xof"
          },
          "refunds_requested_count": {
            "type": "integer",
            "title": "Refunds Requested Count"
          },
          "refunds_requested_xof": {
            "type": "integer",
            "title": "Refunds Requested Xof"
          },
          "refunds_refunded_count": {
            "type": "integer",
            "title": "Refunds Refunded Count"
          },
          "refunds_refunded_xof": {
            "type": "integer",
            "title": "Refunds Refunded Xof"
          },
          "calculated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Calculated At"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Limitations"
          }
        },
        "type": "object",
        "required": [
          "contract_version",
          "module",
          "order_id",
          "currency",
          "order_status",
          "payment_method",
          "payment_status",
          "order_total_xof",
          "customer_total_xof",
          "delivery_fee_xof",
          "restaurant_payout_xof",
          "courier_earning_xof",
          "food_commission_xof",
          "send_commission_xof",
          "cash_to_collect_xof",
          "diddipay_fee_xof",
          "refunds_requested_count",
          "refunds_requested_xof",
          "refunds_refunded_count",
          "refunds_refunded_xof",
          "calculated_at",
          "limitations"
        ],
        "title": "OrderFinancialBreakdownOut"
      },
      "OrderItemKitchenOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "dish_id": {
            "type": "string",
            "format": "uuid",
            "title": "Dish Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "quantity": {
            "type": "integer",
            "title": "Quantity"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          }
        },
        "type": "object",
        "required": [
          "id",
          "dish_id",
          "name",
          "quantity"
        ],
        "title": "OrderItemKitchenOut",
        "description": "Price-free item view -- what a kitchen-only caller gets (UC-357)."
      },
      "OrderItemOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "dish_id": {
            "type": "string",
            "format": "uuid",
            "title": "Dish Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "unit_price_minor_units": {
            "type": "integer",
            "title": "Unit Price Minor Units"
          },
          "quantity": {
            "type": "integer",
            "title": "Quantity"
          },
          "subtotal_minor_units": {
            "type": "integer",
            "title": "Subtotal Minor Units"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "substitution": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SubstitutionOut"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "id",
          "dish_id",
          "name",
          "unit_price_minor_units",
          "quantity",
          "subtotal_minor_units",
          "substitution"
        ],
        "title": "OrderItemOut"
      },
      "OrderItemRequestIn": {
        "properties": {
          "dish_id": {
            "type": "string",
            "format": "uuid",
            "title": "Dish Id"
          },
          "quantity": {
            "type": "integer",
            "maximum": 50.0,
            "exclusiveMinimum": 0.0,
            "title": "Quantity"
          }
        },
        "type": "object",
        "required": [
          "dish_id",
          "quantity"
        ],
        "title": "OrderItemRequestIn"
      },
      "OrderKitchenOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/OrderItemKitchenOut"
            },
            "type": "array",
            "title": "Items"
          },
          "placed_at": {
            "type": "string",
            "format": "date-time",
            "title": "Placed At"
          },
          "respond_by": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Respond By"
          },
          "accepted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accepted At"
          },
          "prep_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prep Minutes"
          },
          "ready_at_estimate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ready At Estimate"
          },
          "marked_ready_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Marked Ready At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "restaurant_id",
          "status",
          "items",
          "placed_at",
          "respond_by",
          "accepted_at",
          "prep_minutes",
          "ready_at_estimate",
          "marked_ready_at"
        ],
        "title": "OrderKitchenOut",
        "description": "Price-free order view for a kitchen-only caller -- no total, no unit\nprices, no financial fields at all (UC-357: the system must not expose\nprice or revenue to the kitchen role, not just hide it on screen)."
      },
      "OrderOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "customer_user_id": {
            "type": "string",
            "title": "Customer User Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "payment_method": {
            "type": "string",
            "title": "Payment Method"
          },
          "pickup_mode": {
            "type": "string",
            "title": "Pickup Mode"
          },
          "dropoff_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dropoff Address"
          },
          "dropoff_latitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dropoff Latitude"
          },
          "dropoff_longitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dropoff Longitude"
          },
          "recipient_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Name"
          },
          "recipient_phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Phone"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/OrderItemOut"
            },
            "type": "array",
            "title": "Items"
          },
          "total_minor_units": {
            "type": "integer",
            "title": "Total Minor Units"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "XOF"
          },
          "restaurant_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Restaurant Name"
          },
          "subtotal_minor_units": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subtotal Minor Units"
          },
          "delivery_fee_minor_units": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivery Fee Minor Units"
          },
          "financial_breakdown": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FoodFinancialBreakdownOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "placed_at": {
            "type": "string",
            "format": "date-time",
            "title": "Placed At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          },
          "respond_by": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Respond By"
          },
          "accepted_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accepted At"
          },
          "prep_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prep Minutes"
          },
          "ready_at_estimate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ready At Estimate"
          },
          "marked_ready_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Marked Ready At"
          },
          "picked_up_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Picked Up At"
          },
          "delivered_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivered At"
          },
          "rejected_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rejected At"
          },
          "rejection_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rejection Reason"
          },
          "cancelled_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancelled At"
          },
          "cancellation_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancellation Reason"
          }
        },
        "type": "object",
        "required": [
          "id",
          "restaurant_id",
          "customer_user_id",
          "status",
          "payment_method",
          "pickup_mode",
          "dropoff_address",
          "dropoff_latitude",
          "dropoff_longitude",
          "recipient_name",
          "recipient_phone",
          "items",
          "total_minor_units",
          "placed_at",
          "updated_at",
          "respond_by",
          "accepted_at",
          "prep_minutes",
          "ready_at_estimate",
          "marked_ready_at",
          "picked_up_at",
          "delivered_at",
          "rejected_at",
          "rejection_reason",
          "cancelled_at",
          "cancellation_reason"
        ],
        "title": "OrderOut"
      },
      "OrderQuoteIn": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/OrderItemRequestIn"
            },
            "type": "array",
            "minItems": 1,
            "title": "Items"
          },
          "pickup_mode": {
            "type": "string",
            "enum": [
              "delivery",
              "pickup"
            ],
            "title": "Pickup Mode",
            "default": "delivery"
          },
          "dropoff_latitude": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 90.0,
                "minimum": -90.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Dropoff Latitude"
          },
          "dropoff_longitude": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 180.0,
                "minimum": -180.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Dropoff Longitude"
          }
        },
        "type": "object",
        "required": [
          "items"
        ],
        "title": "OrderQuoteIn",
        "description": "Inputs needed to calculate a server-side cart quote before checkout."
      },
      "OrderQuoteItemOut": {
        "properties": {
          "dish_id": {
            "type": "string",
            "format": "uuid",
            "title": "Dish Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "unit_price_minor_units": {
            "type": "integer",
            "title": "Unit Price Minor Units"
          },
          "quantity": {
            "type": "integer",
            "title": "Quantity"
          },
          "subtotal_minor_units": {
            "type": "integer",
            "title": "Subtotal Minor Units"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          }
        },
        "type": "object",
        "required": [
          "dish_id",
          "name",
          "unit_price_minor_units",
          "quantity",
          "subtotal_minor_units"
        ],
        "title": "OrderQuoteItemOut"
      },
      "OrderQuoteOut": {
        "properties": {
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "pickup_mode": {
            "type": "string",
            "title": "Pickup Mode"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/OrderQuoteItemOut"
            },
            "type": "array",
            "title": "Items"
          },
          "subtotal_minor_units": {
            "type": "integer",
            "title": "Subtotal Minor Units"
          },
          "delivery_fee_minor_units": {
            "type": "integer",
            "title": "Delivery Fee Minor Units"
          },
          "total_minor_units": {
            "type": "integer",
            "title": "Total Minor Units"
          },
          "currency": {
            "type": "string",
            "const": "XOF",
            "title": "Currency",
            "default": "XOF"
          },
          "is_open": {
            "type": "boolean",
            "title": "Is Open"
          },
          "calculated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Calculated At"
          }
        },
        "type": "object",
        "required": [
          "restaurant_id",
          "pickup_mode",
          "items",
          "subtotal_minor_units",
          "delivery_fee_minor_units",
          "total_minor_units",
          "is_open",
          "calculated_at"
        ],
        "title": "OrderQuoteOut"
      },
      "OrderRatingOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "order_id": {
            "type": "string",
            "format": "uuid",
            "title": "Order Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "stars": {
            "type": "integer",
            "title": "Stars"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "order_id",
          "restaurant_id",
          "stars",
          "created_at"
        ],
        "title": "OrderRatingOut"
      },
      "OrderStatus": {
        "type": "string",
        "enum": [
          "placed",
          "preparing",
          "ready",
          "picked_up",
          "delivered",
          "rejected",
          "cancelled"
        ],
        "title": "OrderStatus"
      },
      "PaymentOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "order_id": {
            "type": "string",
            "format": "uuid",
            "title": "Order Id"
          },
          "method": {
            "type": "string",
            "enum": [
              "cash_on_delivery",
              "online"
            ],
            "title": "Method"
          },
          "amount_minor_units": {
            "type": "integer",
            "title": "Amount Minor Units"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "XOF"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "requires_action",
              "succeeded",
              "failed",
              "cancelled",
              "expired",
              "collected_cash",
              "refunded",
              "partially_refunded"
            ],
            "title": "Status"
          },
          "intent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Intent Id"
          },
          "next_action_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Action Url"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "order_id",
          "method",
          "amount_minor_units",
          "status",
          "intent_id",
          "next_action_url",
          "created_at",
          "updated_at"
        ],
        "title": "PaymentOut"
      },
      "PaymentReturnOut": {
        "properties": {
          "order_id": {
            "type": "string",
            "format": "uuid",
            "title": "Order Id"
          },
          "payment_status": {
            "type": "string",
            "enum": [
              "pending",
              "requires_action",
              "succeeded",
              "failed",
              "cancelled",
              "expired",
              "collected_cash",
              "refunded",
              "partially_refunded"
            ],
            "title": "Payment Status"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "title": "Expires At"
          },
          "order_path": {
            "type": "string",
            "title": "Order Path"
          },
          "payment_path": {
            "type": "string",
            "title": "Payment Path"
          }
        },
        "type": "object",
        "required": [
          "order_id",
          "payment_status",
          "expires_at",
          "order_path",
          "payment_path"
        ],
        "title": "PaymentReturnOut",
        "description": "Authenticated lookup after the payment provider redirects the browser."
      },
      "PilotageBreakdownDimension": {
        "type": "string",
        "enum": [
          "payment_method",
          "processor",
          "restaurant",
          "order_status",
          "pickup_mode",
          "delivery_mode",
          "refund_status",
          "withdrawal_status"
        ],
        "title": "PilotageBreakdownDimension"
      },
      "PilotageBreakdownMetric": {
        "type": "string",
        "enum": [
          "food_ordered_xof",
          "food_delivered_xof",
          "food_commission_recognized_xof",
          "restaurant_net_recognized_xof",
          "delivery_fee_xof",
          "courier_earning_xof",
          "send_commission_xof",
          "cash_to_collect_xof",
          "online_payments_succeeded_xof",
          "cash_collected_xof",
          "cash_regularized_xof",
          "withdrawals_requested_count",
          "withdrawals_requested_xof",
          "withdrawals_succeeded_count",
          "withdrawals_succeeded_xof",
          "withdrawals_failed_count",
          "withdrawals_failed_xof",
          "refunds_requested_count",
          "refunds_requested_xof",
          "refunds_succeeded_count",
          "refunds_succeeded_xof"
        ],
        "title": "PilotageBreakdownMetric"
      },
      "PlaceOrderIn": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/OrderItemRequestIn"
            },
            "type": "array",
            "minItems": 1,
            "title": "Items"
          },
          "payment_method": {
            "type": "string",
            "enum": [
              "cash_on_delivery",
              "online"
            ],
            "title": "Payment Method"
          },
          "pickup_mode": {
            "type": "string",
            "title": "Pickup Mode",
            "default": "delivery"
          },
          "dropoff_address": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Dropoff Address"
          },
          "dropoff_latitude": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 90.0,
                "minimum": -90.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Dropoff Latitude"
          },
          "dropoff_longitude": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 180.0,
                "minimum": -180.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Dropoff Longitude"
          },
          "recipient_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Name"
          },
          "recipient_phone": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 40,
                "minLength": 6
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Phone"
          }
        },
        "type": "object",
        "required": [
          "items",
          "payment_method"
        ],
        "title": "PlaceOrderIn"
      },
      "PrepareOnlinePaymentIn": {
        "properties": {
          "customer_email": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 3
              },
              {
                "type": "null"
              }
            ],
            "title": "Customer Email"
          }
        },
        "type": "object",
        "title": "PrepareOnlinePaymentIn"
      },
      "ProposeSubstitutionIn": {
        "properties": {
          "proposed_dish_id": {
            "type": "string",
            "format": "uuid",
            "title": "Proposed Dish Id"
          }
        },
        "type": "object",
        "required": [
          "proposed_dish_id"
        ],
        "title": "ProposeSubstitutionIn"
      },
      "RateOrderIn": {
        "properties": {
          "stars": {
            "type": "integer",
            "maximum": 5.0,
            "minimum": 1.0,
            "title": "Stars"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1000
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          }
        },
        "type": "object",
        "required": [
          "stars"
        ],
        "title": "RateOrderIn"
      },
      "RefundRequestOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "payment_id": {
            "type": "string",
            "format": "uuid",
            "title": "Payment Id"
          },
          "order_id": {
            "type": "string",
            "format": "uuid",
            "title": "Order Id"
          },
          "amount_minor_units": {
            "type": "integer",
            "title": "Amount Minor Units"
          },
          "reason": {
            "type": "string",
            "title": "Reason"
          },
          "status": {
            "type": "string",
            "enum": [
              "submitted",
              "approved",
              "rejected",
              "processing",
              "refunded",
              "failed"
            ],
            "title": "Status"
          },
          "submitted_by_user_id": {
            "type": "string",
            "title": "Submitted By User Id"
          },
          "submitted_at": {
            "type": "string",
            "format": "date-time",
            "title": "Submitted At"
          },
          "decided_by_user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decided By User Id"
          },
          "decided_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decided At"
          },
          "refund_ref_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refund Ref Id"
          },
          "failure_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Reason"
          }
        },
        "type": "object",
        "required": [
          "id",
          "payment_id",
          "order_id",
          "amount_minor_units",
          "reason",
          "status",
          "submitted_by_user_id",
          "submitted_at",
          "decided_by_user_id",
          "decided_at",
          "refund_ref_id",
          "failure_reason"
        ],
        "title": "RefundRequestOut"
      },
      "RegisterDeviceIn": {
        "properties": {
          "platform": {
            "type": "string",
            "pattern": "^(android|ios)$",
            "title": "Platform"
          },
          "fcm_token": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Fcm Token"
          }
        },
        "type": "object",
        "required": [
          "platform",
          "fcm_token"
        ],
        "title": "RegisterDeviceIn"
      },
      "RejectOrderIn": {
        "properties": {
          "reason": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Reason"
          }
        },
        "type": "object",
        "required": [
          "reason"
        ],
        "title": "RejectOrderIn"
      },
      "RestaurantAvailabilityIn": {
        "properties": {
          "is_open": {
            "type": "boolean",
            "title": "Is Open"
          }
        },
        "type": "object",
        "required": [
          "is_open"
        ],
        "title": "RestaurantAvailabilityIn"
      },
      "RestaurantCreateIn": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 120,
            "minLength": 1,
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "address": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Address"
          },
          "latitude": {
            "type": "number",
            "title": "Latitude"
          },
          "longitude": {
            "type": "number",
            "title": "Longitude"
          },
          "category": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "fast_food",
                  "maquis",
                  "pizza",
                  "traiteur",
                  "ivoirien"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "logo_file_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Logo File Id"
          }
        },
        "type": "object",
        "required": [
          "name",
          "address",
          "latitude",
          "longitude"
        ],
        "title": "RestaurantCreateIn"
      },
      "RestaurantDailySummaryOut": {
        "properties": {
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "date": {
            "type": "string",
            "format": "date",
            "title": "Date"
          },
          "timezone": {
            "type": "string",
            "const": "Africa/Abidjan",
            "title": "Timezone",
            "default": "Africa/Abidjan"
          },
          "orders_count": {
            "type": "integer",
            "title": "Orders Count"
          },
          "gross_revenue_minor_units": {
            "type": "integer",
            "title": "Gross Revenue Minor Units"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "XOF"
          },
          "average_rating": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Average Rating"
          },
          "review_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Count"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Limitations"
          }
        },
        "type": "object",
        "required": [
          "restaurant_id",
          "date",
          "orders_count",
          "gross_revenue_minor_units"
        ],
        "title": "RestaurantDailySummaryOut",
        "description": "Manager dashboard summary for one day (SCRUM-550)."
      },
      "RestaurantDecisionIn": {
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "approve",
              "reject",
              "suspend",
              "reactivate"
            ],
            "title": "Action"
          },
          "reason": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Reason"
          },
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "operator_user_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Operator User Id"
          },
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 128,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Idempotency Key"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "action",
          "reason"
        ],
        "title": "RestaurantDecisionIn"
      },
      "RestaurantDecisionOut": {
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "command_status": {
            "type": "string",
            "const": "completed",
            "title": "Command Status",
            "default": "completed"
          },
          "command_id": {
            "type": "string",
            "title": "Command Id"
          },
          "service_audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Service Audit Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "action": {
            "type": "string",
            "title": "Action"
          },
          "previous_status": {
            "type": "string",
            "title": "Previous Status"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Audit Id"
          },
          "decided_at": {
            "type": "string",
            "format": "date-time",
            "title": "Decided At"
          }
        },
        "type": "object",
        "required": [
          "command_id",
          "service_audit_id",
          "restaurant_id",
          "action",
          "previous_status",
          "status",
          "audit_id",
          "decided_at"
        ],
        "title": "RestaurantDecisionOut"
      },
      "RestaurantDocumentDecisionIn": {
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "approve",
              "reject"
            ],
            "title": "Action"
          },
          "reason": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Reason"
          },
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "operator_user_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Operator User Id"
          },
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 128,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Idempotency Key"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "action",
          "reason"
        ],
        "title": "RestaurantDocumentDecisionIn"
      },
      "RestaurantDocumentDecisionOut": {
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "command_status": {
            "type": "string",
            "const": "completed",
            "title": "Command Status",
            "default": "completed"
          },
          "command_id": {
            "type": "string",
            "title": "Command Id"
          },
          "service_audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Service Audit Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "document_type": {
            "type": "string",
            "title": "Document Type"
          },
          "action": {
            "type": "string",
            "title": "Action"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Audit Id"
          },
          "reviewed_at": {
            "type": "string",
            "format": "date-time",
            "title": "Reviewed At"
          }
        },
        "type": "object",
        "required": [
          "command_id",
          "service_audit_id",
          "restaurant_id",
          "document_type",
          "action",
          "status",
          "audit_id",
          "reviewed_at"
        ],
        "title": "RestaurantDocumentDecisionOut"
      },
      "RestaurantDocumentIn": {
        "properties": {
          "document_type": {
            "type": "string",
            "enum": [
              "manager_identity",
              "business_activity"
            ],
            "title": "Document Type"
          },
          "file_id": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "File Id"
          }
        },
        "type": "object",
        "required": [
          "document_type",
          "file_id"
        ],
        "title": "RestaurantDocumentIn"
      },
      "RestaurantDocumentOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "document_type": {
            "type": "string",
            "title": "Document Type"
          },
          "file_id": {
            "type": "string",
            "title": "File Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "rejection_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rejection Reason"
          },
          "submitted_at": {
            "type": "string",
            "format": "date-time",
            "title": "Submitted At"
          },
          "reviewed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed At"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "restaurant_id",
          "document_type",
          "file_id",
          "status",
          "submitted_at",
          "created_at",
          "updated_at"
        ],
        "title": "RestaurantDocumentOut"
      },
      "RestaurantListOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/RestaurantOut"
            },
            "type": "array",
            "title": "Items"
          },
          "limit": {
            "type": "integer",
            "title": "Limit"
          },
          "offset": {
            "type": "integer",
            "title": "Offset"
          },
          "total": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total"
          }
        },
        "type": "object",
        "required": [
          "items",
          "limit",
          "offset"
        ],
        "title": "RestaurantListOut"
      },
      "RestaurantLogoIn": {
        "properties": {
          "logo_file_id": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Logo File Id"
          }
        },
        "type": "object",
        "required": [
          "logo_file_id"
        ],
        "title": "RestaurantLogoIn"
      },
      "RestaurantOrderFinancialOut": {
        "properties": {
          "order_id": {
            "type": "string",
            "format": "uuid",
            "title": "Order Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "order_status": {
            "type": "string",
            "title": "Order Status"
          },
          "payment_method": {
            "type": "string",
            "title": "Payment Method"
          },
          "pickup_mode": {
            "type": "string",
            "title": "Pickup Mode"
          },
          "financial_breakdown": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FoodFinancialBreakdownOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Limitations"
          }
        },
        "type": "object",
        "required": [
          "order_id",
          "restaurant_id",
          "order_status",
          "payment_method",
          "pickup_mode",
          "financial_breakdown"
        ],
        "title": "RestaurantOrderFinancialOut"
      },
      "RestaurantOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "address": {
            "type": "string",
            "title": "Address"
          },
          "latitude": {
            "type": "number",
            "title": "Latitude"
          },
          "longitude": {
            "type": "number",
            "title": "Longitude"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "review_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Reason"
          },
          "weekly_hours": {
            "additionalProperties": {
              "items": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "type": "array"
            },
            "type": "object",
            "title": "Weekly Hours"
          },
          "service_neighborhoods": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Service Neighborhoods"
          },
          "service_radius_km": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Service Radius Km"
          },
          "logo_file_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Logo File Id"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          },
          "is_open": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Open"
          },
          "image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Url"
          },
          "rating": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rating"
          },
          "review_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Count"
          },
          "delivery_time_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivery Time Minutes"
          },
          "delivery_fee_minor_units": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivery Fee Minor Units"
          },
          "open_hours": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Open Hours"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "tagline": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tagline"
          },
          "badge": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Badge"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "description",
          "address",
          "latitude",
          "longitude",
          "status",
          "created_at",
          "updated_at"
        ],
        "title": "RestaurantOut"
      },
      "RestaurantServiceSettingsIn": {
        "properties": {
          "weekly_hours": {
            "$ref": "#/components/schemas/WeeklyHoursIn"
          },
          "service_neighborhoods": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "maxItems": 100,
            "title": "Service Neighborhoods"
          },
          "service_radius_km": {
            "type": "number",
            "maximum": 10.0,
            "exclusiveMinimum": 0.0,
            "title": "Service Radius Km"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "weekly_hours",
          "service_neighborhoods",
          "service_radius_km"
        ],
        "title": "RestaurantServiceSettingsIn"
      },
      "RestaurantStatus": {
        "type": "string",
        "enum": [
          "draft",
          "pending_review",
          "active",
          "rejected",
          "suspended",
          "temporarily_closed",
          "closed"
        ],
        "title": "RestaurantStatus"
      },
      "RestaurantWeeklySummaryOut": {
        "properties": {
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "week_start": {
            "type": "string",
            "format": "date",
            "title": "Week Start"
          },
          "week_end": {
            "type": "string",
            "format": "date",
            "title": "Week End"
          },
          "timezone": {
            "type": "string",
            "const": "Africa/Abidjan",
            "title": "Timezone",
            "default": "Africa/Abidjan"
          },
          "orders_count": {
            "type": "integer",
            "title": "Orders Count"
          },
          "gross_revenue_minor_units": {
            "type": "integer",
            "title": "Gross Revenue Minor Units"
          },
          "restaurant_earnings_minor_units": {
            "type": "integer",
            "title": "Restaurant Earnings Minor Units"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "XOF"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Limitations"
          }
        },
        "type": "object",
        "required": [
          "restaurant_id",
          "week_start",
          "week_end",
          "orders_count",
          "gross_revenue_minor_units",
          "restaurant_earnings_minor_units"
        ],
        "title": "RestaurantWeeklySummaryOut"
      },
      "SourceOut": {
        "properties": {
          "module": {
            "type": "string",
            "title": "Module"
          },
          "record_type": {
            "type": "string",
            "title": "Record Type"
          }
        },
        "type": "object",
        "required": [
          "module",
          "record_type"
        ],
        "title": "SourceOut"
      },
      "StaffChangeIn": {
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "grant",
              "remove"
            ],
            "title": "Action"
          },
          "role": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "manager",
                  "kitchen"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Role"
          },
          "reason": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Reason"
          },
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "operator_user_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Operator User Id"
          },
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 128,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Idempotency Key"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "action",
          "reason"
        ],
        "title": "StaffChangeIn"
      },
      "StaffChangeOut": {
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "backoffice.v1",
            "title": "Contract Version",
            "default": "backoffice.v1"
          },
          "command_status": {
            "type": "string",
            "const": "completed",
            "title": "Command Status",
            "default": "completed"
          },
          "command_id": {
            "type": "string",
            "title": "Command Id"
          },
          "service_audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Service Audit Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "user_id": {
            "type": "string",
            "title": "User Id"
          },
          "action": {
            "type": "string",
            "title": "Action"
          },
          "previous_role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Role"
          },
          "role": {
            "type": "string",
            "title": "Role"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "audit_id": {
            "type": "string",
            "format": "uuid",
            "title": "Audit Id"
          },
          "changed_at": {
            "type": "string",
            "format": "date-time",
            "title": "Changed At"
          }
        },
        "type": "object",
        "required": [
          "command_id",
          "service_audit_id",
          "restaurant_id",
          "user_id",
          "action",
          "previous_role",
          "role",
          "status",
          "audit_id",
          "changed_at"
        ],
        "title": "StaffChangeOut"
      },
      "StaffInviteIn": {
        "properties": {
          "user_id": {
            "type": "string",
            "title": "User Id"
          },
          "role": {
            "type": "string",
            "title": "Role"
          }
        },
        "type": "object",
        "required": [
          "user_id",
          "role"
        ],
        "title": "StaffInviteIn"
      },
      "StaffOut": {
        "properties": {
          "user_id": {
            "type": "string",
            "title": "User Id"
          },
          "role": {
            "type": "string",
            "title": "Role"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "user_id",
          "role",
          "status",
          "created_at"
        ],
        "title": "StaffOut"
      },
      "SubmitRefundRequestIn": {
        "properties": {
          "reason": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Reason"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "reason"
        ],
        "title": "SubmitRefundRequestIn"
      },
      "SubstitutionOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "proposed_dish_id": {
            "type": "string",
            "format": "uuid",
            "title": "Proposed Dish Id"
          },
          "proposed_name": {
            "type": "string",
            "title": "Proposed Name"
          },
          "proposed_price_minor_units": {
            "type": "integer",
            "title": "Proposed Price Minor Units"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "proposed_dish_id",
          "proposed_name",
          "proposed_price_minor_units",
          "status",
          "created_at"
        ],
        "title": "SubstitutionOut"
      },
      "SubstitutionResponseIn": {
        "properties": {
          "accept": {
            "type": "boolean",
            "title": "Accept"
          }
        },
        "type": "object",
        "required": [
          "accept"
        ],
        "title": "SubstitutionResponseIn"
      },
      "SummaryOut": {
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "pilotage.v1",
            "title": "Contract Version"
          },
          "module": {
            "type": "string",
            "const": "diddifood",
            "title": "Module"
          },
          "date": {
            "type": "string",
            "format": "date",
            "title": "Date"
          },
          "timezone": {
            "type": "string",
            "const": "Africa/Abidjan",
            "title": "Timezone"
          },
          "is_final": {
            "type": "boolean",
            "title": "Is Final"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/MetricOut"
            },
            "type": "array",
            "title": "Metrics"
          },
          "entries": {
            "items": {
              "$ref": "#/components/schemas/FinancialEntryOut"
            },
            "type": "array",
            "title": "Entries"
          },
          "calculated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Calculated At"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/SourceOut"
            },
            "type": "array",
            "title": "Sources"
          },
          "deep_links": {
            "items": {
              "$ref": "#/components/schemas/DeepLinkOut"
            },
            "type": "array",
            "title": "Deep Links"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Limitations"
          }
        },
        "type": "object",
        "required": [
          "contract_version",
          "module",
          "date",
          "timezone",
          "is_final",
          "metrics",
          "calculated_at",
          "sources",
          "deep_links",
          "limitations"
        ],
        "title": "SummaryOut"
      },
      "UnregisterDeviceIn": {
        "properties": {
          "fcm_token": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Fcm Token"
          }
        },
        "type": "object",
        "required": [
          "fcm_token"
        ],
        "title": "UnregisterDeviceIn"
      },
      "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"
      },
      "WalletEntryListOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/WalletEntryOut"
            },
            "type": "array",
            "title": "Items"
          },
          "limit": {
            "type": "integer",
            "title": "Limit"
          },
          "offset": {
            "type": "integer",
            "title": "Offset"
          }
        },
        "type": "object",
        "required": [
          "items",
          "limit",
          "offset"
        ],
        "title": "WalletEntryListOut"
      },
      "WalletEntryOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "entry_type": {
            "type": "string",
            "title": "Entry Type"
          },
          "amount_minor_units": {
            "type": "integer",
            "title": "Amount Minor Units"
          },
          "pending_delta": {
            "type": "integer",
            "title": "Pending Delta"
          },
          "available_delta": {
            "type": "integer",
            "title": "Available Delta"
          },
          "reserved_delta": {
            "type": "integer",
            "title": "Reserved Delta"
          },
          "order_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Order Id"
          },
          "withdrawal_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Withdrawal Id"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "entry_type",
          "amount_minor_units",
          "pending_delta",
          "available_delta",
          "reserved_delta",
          "order_id",
          "withdrawal_id",
          "metadata",
          "created_at"
        ],
        "title": "WalletEntryOut"
      },
      "WalletOut": {
        "properties": {
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "currency": {
            "type": "string",
            "title": "Currency"
          },
          "pending_balance": {
            "type": "integer",
            "title": "Pending Balance"
          },
          "available_balance": {
            "type": "integer",
            "title": "Available Balance"
          },
          "reserved_balance": {
            "type": "integer",
            "title": "Reserved Balance"
          },
          "beneficiary_configured": {
            "type": "boolean",
            "title": "Beneficiary Configured"
          },
          "minimum_withdrawal_amount": {
            "type": "integer",
            "title": "Minimum Withdrawal Amount"
          },
          "provider_fee_amount": {
            "type": "integer",
            "title": "Provider Fee Amount"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "restaurant_id",
          "currency",
          "pending_balance",
          "available_balance",
          "reserved_balance",
          "beneficiary_configured",
          "minimum_withdrawal_amount",
          "provider_fee_amount",
          "updated_at"
        ],
        "title": "WalletOut"
      },
      "WeeklyHoursIn": {
        "properties": {
          "monday": {
            "items": {
              "$ref": "#/components/schemas/OpeningPeriodIn"
            },
            "type": "array",
            "title": "Monday"
          },
          "tuesday": {
            "items": {
              "$ref": "#/components/schemas/OpeningPeriodIn"
            },
            "type": "array",
            "title": "Tuesday"
          },
          "wednesday": {
            "items": {
              "$ref": "#/components/schemas/OpeningPeriodIn"
            },
            "type": "array",
            "title": "Wednesday"
          },
          "thursday": {
            "items": {
              "$ref": "#/components/schemas/OpeningPeriodIn"
            },
            "type": "array",
            "title": "Thursday"
          },
          "friday": {
            "items": {
              "$ref": "#/components/schemas/OpeningPeriodIn"
            },
            "type": "array",
            "title": "Friday"
          },
          "saturday": {
            "items": {
              "$ref": "#/components/schemas/OpeningPeriodIn"
            },
            "type": "array",
            "title": "Saturday"
          },
          "sunday": {
            "items": {
              "$ref": "#/components/schemas/OpeningPeriodIn"
            },
            "type": "array",
            "title": "Sunday"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "title": "WeeklyHoursIn"
      },
      "WithdrawalCreateIn": {
        "properties": {
          "amount_minor_units": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Amount Minor Units"
          },
          "quote_id": {
            "type": "string",
            "format": "uuid",
            "title": "Quote Id"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "amount_minor_units",
          "quote_id"
        ],
        "title": "WithdrawalCreateIn"
      },
      "WithdrawalListOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/WithdrawalOut"
            },
            "type": "array",
            "title": "Items"
          },
          "limit": {
            "type": "integer",
            "title": "Limit"
          },
          "offset": {
            "type": "integer",
            "title": "Offset"
          }
        },
        "type": "object",
        "required": [
          "items",
          "limit",
          "offset"
        ],
        "title": "WithdrawalListOut"
      },
      "WithdrawalOut": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "restaurant_id": {
            "type": "string",
            "format": "uuid",
            "title": "Restaurant Id"
          },
          "requested_amount_minor_units": {
            "type": "integer",
            "title": "Requested Amount Minor Units"
          },
          "provider_fee_minor_units": {
            "type": "integer",
            "title": "Provider Fee Minor Units"
          },
          "payout_amount_minor_units": {
            "type": "integer",
            "title": "Payout Amount Minor Units"
          },
          "currency": {
            "type": "string",
            "title": "Currency"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "remote_payout_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remote Payout Id"
          },
          "failure_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Reason"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "restaurant_id",
          "requested_amount_minor_units",
          "provider_fee_minor_units",
          "payout_amount_minor_units",
          "currency",
          "status",
          "remote_payout_id",
          "failure_reason",
          "created_at",
          "updated_at"
        ],
        "title": "WithdrawalOut"
      },
      "WithdrawalQuoteOut": {
        "properties": {
          "quote_id": {
            "type": "string",
            "format": "uuid",
            "title": "Quote Id"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "XOF"
          },
          "requested_amount_minor_units": {
            "type": "integer",
            "title": "Requested Amount Minor Units"
          },
          "provider_fee_minor_units": {
            "type": "integer",
            "title": "Provider Fee Minor Units"
          },
          "payout_amount_minor_units": {
            "type": "integer",
            "title": "Payout Amount Minor Units"
          }
        },
        "type": "object",
        "required": [
          "quote_id",
          "requested_amount_minor_units",
          "provider_fee_minor_units",
          "payout_amount_minor_units"
        ],
        "title": "WithdrawalQuoteOut"
      }
    },
    "securitySchemes": {
      "OAuth2PasswordBearer": {
        "type": "oauth2",
        "flows": {
          "password": {
            "scopes": {},
            "tokenUrl": "/v1/auth/placeholder"
          }
        }
      }
    }
  }
}
