{
  "openapi": "3.0.0",
  "info": {
    "title": "trotters API",
    "version": "1.1.0",
    "description": "API documentation for trotters"
  },
  "paths": {
    "/v1/auth/login": {
      "post": {
        "operationId": "postAuthLogin",
        "tags": [
          "auth"
        ],
        "summary": "Authenticate a Trotters account.",
        "description": "Authenticate a Trotters account.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/phone/send": {
      "post": {
        "operationId": "postAuthPhoneSend",
        "tags": [
          "auth"
        ],
        "summary": "Send an OTP to a phone number.",
        "description": "Send an OTP to a phone number.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendPhoneOTPRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SendPhoneOTPResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/phone/verify": {
      "post": {
        "operationId": "postAuthPhoneVerify",
        "tags": [
          "auth"
        ],
        "summary": "Verify a phone OTP.",
        "description": "Verify a phone OTP.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyPhoneOTPRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerifyPhoneOTPResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/refresh": {
      "post": {
        "operationId": "postAuthRefresh",
        "tags": [
          "auth"
        ],
        "summary": "Refresh an active access token.",
        "description": "Refresh an active access token.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefreshTokenResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/register": {
      "post": {
        "operationId": "postAuthRegister",
        "tags": [
          "auth"
        ],
        "summary": "Register a rider or hybrid account.",
        "description": "Register a rider or hybrid account.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegisterResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/chat/conversations": {
      "get": {
        "operationId": "getChatConversations",
        "tags": [
          "chat"
        ],
        "summary": "List ride and dispatch conversations.",
        "description": "List ride and dispatch conversations.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListConversationsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/chat/conversations/{conversation_id}": {
      "get": {
        "operationId": "getChatConversationsConversationId",
        "tags": [
          "chat"
        ],
        "summary": "Get one conversation thread.",
        "description": "Get one conversation thread.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetConversationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/chat/conversations/{conversation_id}/messages": {
      "post": {
        "operationId": "postChatConversationsConversationIdMessages",
        "tags": [
          "chat"
        ],
        "summary": "Send a chat message.",
        "description": "Send a chat message.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendMessageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SendMessageResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/chat/conversations/{conversation_id}/read": {
      "post": {
        "operationId": "postChatConversationsConversationIdRead",
        "tags": [
          "chat"
        ],
        "summary": "Mark a conversation as read.",
        "description": "Mark a conversation as read.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarkReadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarkReadResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/chat/conversations/{conversation_id}/typing": {
      "post": {
        "operationId": "postChatConversationsConversationIdTyping",
        "tags": [
          "chat"
        ],
        "summary": "Broadcast typing presence.",
        "description": "Broadcast typing presence.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TypingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TypingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dispatches": {
      "post": {
        "operationId": "postDispatches",
        "tags": [
          "dispatches"
        ],
        "summary": "Create a parcel dispatch request.",
        "description": "Create a parcel dispatch request.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDispatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDispatchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dispatches/carrying": {
      "get": {
        "operationId": "getDispatchesCarrying",
        "tags": [
          "dispatches"
        ],
        "summary": "List dispatches being carried by the current driver.",
        "description": "List dispatches being carried by the current driver.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCarryingDispatchesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dispatches/search": {
      "get": {
        "operationId": "getDispatchesSearch",
        "tags": [
          "dispatches"
        ],
        "summary": "Search rides that can carry a parcel.",
        "description": "Search rides that can carry a parcel.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchDispatchRidesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dispatches/sent": {
      "get": {
        "operationId": "getDispatchesSent",
        "tags": [
          "dispatches"
        ],
        "summary": "List dispatches sent by the current user.",
        "description": "List dispatches sent by the current user.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSentDispatchesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dispatches/{dispatch_id}": {
      "get": {
        "operationId": "getDispatchesDispatchId",
        "tags": [
          "dispatches"
        ],
        "summary": "Get a dispatch by id.",
        "description": "Get a dispatch by id.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDispatchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dispatches/{dispatch_id}/accept": {
      "post": {
        "operationId": "postDispatchesDispatchIdAccept",
        "tags": [
          "dispatches"
        ],
        "summary": "Accept a dispatch on an active route.",
        "description": "Accept a dispatch on an active route.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptDispatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcceptDispatchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dispatches/{dispatch_id}/deliver": {
      "post": {
        "operationId": "postDispatchesDispatchIdDeliver",
        "tags": [
          "dispatches"
        ],
        "summary": "Confirm dispatch delivery.",
        "description": "Confirm dispatch delivery.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmDeliveryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfirmDeliveryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dispatches/{dispatch_id}/issue": {
      "post": {
        "operationId": "postDispatchesDispatchIdIssue",
        "tags": [
          "dispatches"
        ],
        "summary": "Report a dispatch issue.",
        "description": "Report a dispatch issue.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportIssueRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportIssueResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/dispatches/{dispatch_id}/pickup": {
      "post": {
        "operationId": "postDispatchesDispatchIdPickup",
        "tags": [
          "dispatches"
        ],
        "summary": "Confirm dispatch pickup.",
        "description": "Confirm dispatch pickup.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmPickupRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfirmPickupResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/driver/profile": {
      "get": {
        "operationId": "getDriverProfile",
        "tags": [
          "driver"
        ],
        "summary": "Get the current driver profile.",
        "description": "Get the current driver profile.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDriverProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "postDriverProfile",
        "tags": [
          "driver"
        ],
        "summary": "Create or upgrade a driver profile.",
        "description": "Create or upgrade a driver profile.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDriverProfileRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDriverProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/driver/rides": {
      "get": {
        "operationId": "getDriverRides",
        "tags": [
          "driver"
        ],
        "summary": "List rides posted by the driver.",
        "description": "List rides posted by the driver.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListDriverRidesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/driver/vehicles": {
      "post": {
        "operationId": "postDriverVehicles",
        "tags": [
          "driver"
        ],
        "summary": "Add a driver vehicle.",
        "description": "Add a driver vehicle.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddVehicleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddVehicleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/driver/vehicles/{vehicle_id}": {
      "delete": {
        "operationId": "deleteDriverVehiclesVehicleId",
        "tags": [
          "driver"
        ],
        "summary": "Delete a driver vehicle.",
        "description": "Delete a driver vehicle.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteVehicleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "operationId": "putDriverVehiclesVehicleId",
        "tags": [
          "driver"
        ],
        "summary": "Update a driver vehicle.",
        "description": "Update a driver vehicle.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateVehicleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateVehicleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/intercity/cities": {
      "get": {
        "operationId": "getIntercityCities",
        "tags": [
          "intercity"
        ],
        "summary": "List supported cities.",
        "description": "List supported cities.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCitiesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/intercity/routes": {
      "get": {
        "operationId": "getIntercityRoutes",
        "tags": [
          "intercity"
        ],
        "summary": "List popular intercity routes.",
        "description": "List popular intercity routes.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPopularRoutesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/passenger/rides": {
      "get": {
        "operationId": "getPassengerRides",
        "tags": [
          "passenger"
        ],
        "summary": "List rides requested by the passenger.",
        "description": "List rides requested by the passenger.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPassengerRidesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/privacy/export": {
      "get": {
        "operationId": "getPrivacyExport",
        "tags": [
          "privacy"
        ],
        "summary": "Export the user's movement and account data snapshot.",
        "description": "Export the user's movement and account data snapshot.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportPersonalDataResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/requests/{request_id}/accept": {
      "post": {
        "operationId": "postRequestsRequestIdAccept",
        "tags": [
          "requests"
        ],
        "summary": "Accept a ride request.",
        "description": "Accept a ride request.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptRequestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcceptRequestResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/requests/{request_id}/dropoff": {
      "post": {
        "operationId": "postRequestsRequestIdDropoff",
        "tags": [
          "requests"
        ],
        "summary": "Confirm passenger dropoff.",
        "description": "Confirm passenger dropoff.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmDropoffRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfirmDropoffResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/requests/{request_id}/pickup": {
      "post": {
        "operationId": "postRequestsRequestIdPickup",
        "tags": [
          "requests"
        ],
        "summary": "Confirm passenger pickup.",
        "description": "Confirm passenger pickup.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrottersRideConfirmPickupRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrottersRideConfirmPickupResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/requests/{request_id}/reject": {
      "post": {
        "operationId": "postRequestsRequestIdReject",
        "tags": [
          "requests"
        ],
        "summary": "Reject a ride request.",
        "description": "Reject a ride request.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectRequestRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RejectRequestResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/rides": {
      "post": {
        "operationId": "postRides",
        "tags": [
          "rides"
        ],
        "summary": "Post a planned shared ride.",
        "description": "Post a planned shared ride.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostRideRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PostRideResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/rides/instant/drivers": {
      "post": {
        "operationId": "postRidesInstantDrivers",
        "tags": [
          "rides"
        ],
        "summary": "Find available drivers who can reach a pickup for an on-demand ride.",
        "description": "Find available drivers who can reach a pickup for an on-demand ride.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FindInstantDriversRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FindInstantDriversResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/rides/route-estimate": {
      "post": {
        "operationId": "postRidesRouteEstimate",
        "tags": [
          "rides"
        ],
        "summary": "Estimate route distance, duration, and fallback geometry.",
        "description": "Estimate route distance, duration, and fallback geometry.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EstimateRouteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimateRouteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/rides/search": {
      "get": {
        "operationId": "getRidesSearch",
        "tags": [
          "rides"
        ],
        "summary": "Search for matching rides.",
        "description": "Search for matching rides.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchRidesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/rides/{ride_id}": {
      "delete": {
        "operationId": "deleteRidesRideId",
        "tags": [
          "rides"
        ],
        "summary": "Cancel a ride.",
        "description": "Cancel a ride.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelRideResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "operationId": "getRidesRideId",
        "tags": [
          "rides"
        ],
        "summary": "Get a ride by id.",
        "description": "Get a ride by id.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetRideResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "operationId": "putRidesRideId",
        "tags": [
          "rides"
        ],
        "summary": "Update a posted ride.",
        "description": "Update a posted ride.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRideRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateRideResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/rides/{ride_id}/complete": {
      "post": {
        "operationId": "postRidesRideIdComplete",
        "tags": [
          "rides"
        ],
        "summary": "Complete a ride.",
        "description": "Complete a ride.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteRideRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompleteRideResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/rides/{ride_id}/location": {
      "post": {
        "operationId": "postRidesRideIdLocation",
        "tags": [
          "rides"
        ],
        "summary": "Record ride location updates.",
        "description": "Record ride location updates.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLocationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateLocationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/rides/{ride_id}/rate": {
      "post": {
        "operationId": "postRidesRideIdRate",
        "tags": [
          "rides"
        ],
        "summary": "Rate a completed ride.",
        "description": "Rate a completed ride.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RateRideRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RateRideResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/rides/{ride_id}/request": {
      "post": {
        "operationId": "postRidesRideIdRequest",
        "tags": [
          "rides"
        ],
        "summary": "Request a seat on a ride.",
        "description": "Request a seat on a ride.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestRideRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequestRideResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/rides/{ride_id}/start": {
      "post": {
        "operationId": "postRidesRideIdStart",
        "tags": [
          "rides"
        ],
        "summary": "Start a ride.",
        "description": "Start a ride.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartRideRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartRideResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/safety/contacts": {
      "get": {
        "operationId": "getSafetyContacts",
        "tags": [
          "safety"
        ],
        "summary": "List emergency contacts.",
        "description": "List emergency contacts.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListEmergencyContactsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "postSafetyContacts",
        "tags": [
          "safety"
        ],
        "summary": "Add an emergency contact.",
        "description": "Add an emergency contact.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddEmergencyContactRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddEmergencyContactResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/safety/emergency": {
      "post": {
        "operationId": "postSafetyEmergency",
        "tags": [
          "safety"
        ],
        "summary": "Trigger an SOS flow.",
        "description": "Trigger an SOS flow.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TriggerSOSRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TriggerSOSResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/safety/incidents": {
      "get": {
        "operationId": "getSafetyIncidents",
        "tags": [
          "safety"
        ],
        "summary": "List safety incidents.",
        "description": "List safety incidents.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListIncidentsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "postSafetyIncidents",
        "tags": [
          "safety"
        ],
        "summary": "Report a safety incident.",
        "description": "Report a safety incident.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportIncidentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportIncidentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/safety/incidents/{incident_id}": {
      "get": {
        "operationId": "getSafetyIncidentsIncidentId",
        "tags": [
          "safety"
        ],
        "summary": "Get a safety incident.",
        "description": "Get a safety incident.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetIncidentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/schedule/blocks": {
      "get": {
        "operationId": "getScheduleBlocks",
        "tags": [
          "schedule"
        ],
        "summary": "List availability and planning blocks.",
        "description": "List availability and planning blocks.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListScheduleBlocksResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "postScheduleBlocks",
        "tags": [
          "schedule"
        ],
        "summary": "Create an availability or busy block.",
        "description": "Create an availability or busy block.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateScheduleBlockRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateScheduleBlockResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/schedule/blocks/{block_id}": {
      "delete": {
        "operationId": "deleteScheduleBlocksBlockId",
        "tags": [
          "schedule"
        ],
        "summary": "Delete an availability block.",
        "description": "Delete an availability block.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteScheduleBlockResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/schedule/export": {
      "get": {
        "operationId": "getScheduleExport",
        "tags": [
          "schedule"
        ],
        "summary": "Export movement schedule as an iCalendar payload.",
        "description": "Export movement schedule as an iCalendar payload.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportScheduleCalendarResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/schedule/notices": {
      "post": {
        "operationId": "postScheduleNotices",
        "tags": [
          "schedule"
        ],
        "summary": "Notify participants about a delay or timing change.",
        "description": "Notify participants about a delay or timing change.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateScheduleNoticeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateScheduleNoticeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/schedule/overview": {
      "get": {
        "operationId": "getScheduleOverview",
        "tags": [
          "schedule"
        ],
        "summary": "Get the user's movement schedule overview.",
        "description": "Get the user's movement schedule overview.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetScheduleOverviewResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/schedule/preferences": {
      "get": {
        "operationId": "getSchedulePreferences",
        "tags": [
          "schedule"
        ],
        "summary": "Get movement scheduling preferences.",
        "description": "Get movement scheduling preferences.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSchedulePreferencesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "operationId": "putSchedulePreferences",
        "tags": [
          "schedule"
        ],
        "summary": "Update movement scheduling preferences.",
        "description": "Update movement scheduling preferences.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSchedulePreferencesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateSchedulePreferencesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/users/me": {
      "get": {
        "operationId": "getUsersMe",
        "tags": [
          "users"
        ],
        "summary": "Get the current user profile.",
        "description": "Get the current user profile.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "operationId": "putUsersMe",
        "tags": [
          "users"
        ],
        "summary": "Update the current user profile.",
        "description": "Update the current user profile.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProfileRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/wallet/balance": {
      "get": {
        "operationId": "getWalletBalance",
        "tags": [
          "wallet"
        ],
        "summary": "Get wallet balance and summary.",
        "description": "Get wallet balance and summary.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetWalletResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/wallet/methods": {
      "get": {
        "operationId": "getWalletMethods",
        "tags": [
          "wallet"
        ],
        "summary": "List payment methods.",
        "description": "List payment methods.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPaymentMethodsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "postWalletMethods",
        "tags": [
          "wallet"
        ],
        "summary": "Add a payment or payout method.",
        "description": "Add a payment or payout method.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddPaymentMethodRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddPaymentMethodResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/wallet/methods/{method_id}": {
      "delete": {
        "operationId": "deleteWalletMethodsMethodId",
        "tags": [
          "wallet"
        ],
        "summary": "Delete a payment method.",
        "description": "Delete a payment method.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletePaymentMethodResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/wallet/transactions": {
      "get": {
        "operationId": "getWalletTransactions",
        "tags": [
          "wallet"
        ],
        "summary": "List wallet transactions.",
        "description": "List wallet transactions.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTransactionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/wallet/withdraw": {
      "post": {
        "operationId": "postWalletWithdraw",
        "tags": [
          "wallet"
        ],
        "summary": "Withdraw wallet funds.",
        "description": "Withdraw wallet funds.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WithdrawResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AcceptDispatchRequest": {
        "type": "object",
        "properties": {
          "dispatchId": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "rideId": {
            "type": "string"
          }
        }
      },
      "AcceptDispatchResponse": {
        "type": "object",
        "properties": {
          "dispatch": {
            "$ref": "#/components/schemas/Dispatch"
          }
        }
      },
      "AcceptRequestRequest": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "requestId": {
            "type": "string"
          },
          "responseMessage": {
            "type": "string"
          }
        }
      },
      "AcceptRequestResponse": {
        "type": "object",
        "properties": {
          "request": {
            "$ref": "#/components/schemas/RideRequest"
          }
        }
      },
      "AddEmergencyContactRequest": {
        "type": "object",
        "properties": {
          "isPrimary": {
            "type": "boolean"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "name": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "relationship": {
            "type": "string"
          },
          "shouldAutoNotify": {
            "type": "boolean"
          }
        }
      },
      "AddEmergencyContactResponse": {
        "type": "object",
        "properties": {
          "contact": {
            "$ref": "#/components/schemas/EmergencyContact"
          }
        }
      },
      "AddPaymentMethodRequest": {
        "type": "object",
        "properties": {
          "accountName": {
            "type": "string"
          },
          "accountNumber": {
            "type": "string"
          },
          "bankCode": {
            "type": "string"
          },
          "bankName": {
            "type": "string"
          },
          "isDefault": {
            "type": "boolean"
          },
          "methodType": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          }
        }
      },
      "AddPaymentMethodResponse": {
        "type": "object",
        "properties": {
          "method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "methodId": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        }
      },
      "AddVehicleRequest": {
        "type": "object",
        "properties": {
          "color": {
            "type": "string"
          },
          "isPrimary": {
            "type": "boolean"
          },
          "make": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "model": {
            "type": "string"
          },
          "photoUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "plateNumber": {
            "type": "string"
          },
          "seatCapacity": {
            "type": "integer",
            "format": "int32"
          },
          "vehicleType": {
            "type": "string"
          },
          "year": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AddVehicleResponse": {
        "type": "object",
        "properties": {
          "vehicle": {
            "$ref": "#/components/schemas/Vehicle"
          }
        }
      },
      "AuthenticateRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "password": {
            "type": "string",
            "minLength": 8
          }
        }
      },
      "AuthenticateResponse": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "expiresInSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "phone": {
            "type": "string"
          },
          "profile": {
            "$ref": "#/components/schemas/User"
          },
          "refreshToken": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "session": {
            "$ref": "#/components/schemas/Session"
          },
          "userId": {
            "type": "string"
          }
        }
      },
      "CancelRideResponse": {
        "type": "object",
        "properties": {
          "cancelled": {
            "type": "boolean"
          }
        }
      },
      "City": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "name": {
            "type": "string"
          },
          "population": {
            "type": "integer",
            "format": "int32"
          },
          "state": {
            "type": "string"
          }
        }
      },
      "CompleteRideRequest": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "rideId": {
            "type": "string"
          }
        }
      },
      "CompleteRideResponse": {
        "type": "object",
        "properties": {
          "ride": {
            "$ref": "#/components/schemas/Ride"
          },
          "summary": {
            "$ref": "#/components/schemas/RideSummary"
          }
        }
      },
      "ConfirmDeliveryRequest": {
        "type": "object",
        "properties": {
          "dispatchId": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "otpCode": {
            "type": "string"
          },
          "photoUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ConfirmDeliveryResponse": {
        "type": "object",
        "properties": {
          "dispatch": {
            "$ref": "#/components/schemas/Dispatch"
          }
        }
      },
      "ConfirmDropoffRequest": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "requestId": {
            "type": "string"
          }
        }
      },
      "ConfirmDropoffResponse": {
        "type": "object",
        "properties": {
          "request": {
            "$ref": "#/components/schemas/RideRequest"
          }
        }
      },
      "ConfirmPickupRequest": {
        "type": "object",
        "properties": {
          "dispatchId": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "otpCode": {
            "type": "string"
          },
          "photoUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ConfirmPickupResponse": {
        "type": "object",
        "properties": {
          "dispatch": {
            "$ref": "#/components/schemas/Dispatch"
          }
        }
      },
      "Conversation": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          },
          "lastMessage": {
            "$ref": "#/components/schemas/Message"
          },
          "participants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserSummary"
            }
          },
          "rideId": {
            "type": "string"
          },
          "unreadCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CreateDispatchRequest": {
        "type": "object",
        "properties": {
          "dropoff": {
            "$ref": "#/components/schemas/Location"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "package": {
            "$ref": "#/components/schemas/PackageDetails"
          },
          "pickup": {
            "$ref": "#/components/schemas/Location"
          },
          "pickupBefore": {
            "type": "string",
            "format": "date-time"
          },
          "recipientName": {
            "type": "string"
          },
          "recipientPhone": {
            "type": "string"
          }
        }
      },
      "CreateDispatchResponse": {
        "type": "object",
        "properties": {
          "availableRides": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DispatchMatch"
            }
          },
          "dispatch": {
            "$ref": "#/components/schemas/Dispatch"
          }
        }
      },
      "CreateDriverProfileRequest": {
        "type": "object",
        "properties": {
          "licenseExpiry": {
            "type": "string"
          },
          "licenseNumber": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          }
        }
      },
      "CreateDriverProfileResponse": {
        "type": "object",
        "properties": {
          "profile": {
            "$ref": "#/components/schemas/DriverProfile"
          }
        }
      },
      "CreateScheduleBlockRequest": {
        "type": "object",
        "properties": {
          "blockType": {
            "type": "string"
          },
          "endsAt": {
            "type": "string",
            "format": "date-time"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "notes": {
            "type": "string"
          },
          "recurrenceRule": {
            "type": "string"
          },
          "startsAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "CreateScheduleBlockResponse": {
        "type": "object",
        "properties": {
          "block": {
            "$ref": "#/components/schemas/ScheduleBlock"
          }
        }
      },
      "CreateScheduleNoticeRequest": {
        "type": "object",
        "properties": {
          "body": {
            "type": "string"
          },
          "dispatchId": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "noticeType": {
            "type": "string"
          },
          "rideId": {
            "type": "string"
          },
          "scheduledFor": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "CreateScheduleNoticeResponse": {
        "type": "object",
        "properties": {
          "notice": {
            "$ref": "#/components/schemas/ScheduleNotice"
          }
        }
      },
      "DeletePaymentMethodResponse": {
        "type": "object",
        "properties": {
          "methodId": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        }
      },
      "DeleteScheduleBlockResponse": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean"
          }
        }
      },
      "DeleteVehicleResponse": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean"
          }
        }
      },
      "Dispatch": {
        "type": "object",
        "properties": {
          "cancelledAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "deliveredAt": {
            "type": "string",
            "format": "date-time"
          },
          "deliveryOtp": {
            "type": "string"
          },
          "deliveryPhotoUrl": {
            "type": "string",
            "format": "uri"
          },
          "driverPayout": {
            "$ref": "#/components/schemas/Money"
          },
          "dropoff": {
            "$ref": "#/components/schemas/Location"
          },
          "id": {
            "type": "string"
          },
          "matchedAt": {
            "type": "string",
            "format": "date-time"
          },
          "package": {
            "$ref": "#/components/schemas/PackageDetails"
          },
          "pickedUpAt": {
            "type": "string",
            "format": "date-time"
          },
          "pickup": {
            "$ref": "#/components/schemas/Location"
          },
          "pickupOtp": {
            "type": "string"
          },
          "pickupPhotoUrl": {
            "type": "string",
            "format": "uri"
          },
          "platformFee": {
            "$ref": "#/components/schemas/Money"
          },
          "price": {
            "$ref": "#/components/schemas/Money"
          },
          "recipientName": {
            "type": "string"
          },
          "recipientPhone": {
            "type": "string"
          },
          "rideId": {
            "type": "string"
          },
          "sender": {
            "$ref": "#/components/schemas/UserSummary"
          },
          "senderUserId": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "DISPATCH_STATUS_UNSPECIFIED",
              "DISPATCH_STATUS_PENDING",
              "DISPATCH_STATUS_MATCHED",
              "DISPATCH_STATUS_PICKED_UP",
              "DISPATCH_STATUS_IN_TRANSIT",
              "DISPATCH_STATUS_DELIVERED",
              "DISPATCH_STATUS_CANCELLED"
            ]
          }
        }
      },
      "DispatchMatch": {
        "type": "object",
        "properties": {
          "deliveryEta": {
            "type": "string",
            "format": "date-time"
          },
          "driver": {
            "$ref": "#/components/schemas/UserSummary"
          },
          "pickupEta": {
            "type": "string",
            "format": "date-time"
          },
          "price": {
            "$ref": "#/components/schemas/Money"
          },
          "rideId": {
            "type": "string"
          },
          "vehicle": {
            "$ref": "#/components/schemas/VehicleSummary"
          }
        }
      },
      "DriverProfile": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "currentBalance": {
            "$ref": "#/components/schemas/Money"
          },
          "id": {
            "type": "string"
          },
          "licenseExpiry": {
            "type": "string"
          },
          "licenseNumber": {
            "type": "string"
          },
          "licenseVerified": {
            "type": "boolean"
          },
          "ninVerified": {
            "type": "boolean"
          },
          "totalEarnings": {
            "$ref": "#/components/schemas/Money"
          },
          "userId": {
            "type": "string"
          },
          "verificationStatus": {
            "type": "string"
          }
        }
      },
      "EmergencyContact": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "isPrimary": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "relationship": {
            "type": "string"
          },
          "shouldAutoNotify": {
            "type": "boolean"
          },
          "userId": {
            "type": "string"
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "example": "BAD_REQUEST"
          },
          "details": {
            "type": "object",
            "additionalProperties": {}
          },
          "error": {
            "type": "string",
            "example": "validation failed"
          }
        },
        "required": [
          "error"
        ]
      },
      "EstimateRouteRequest": {
        "type": "object",
        "properties": {
          "departureTime": {
            "type": "string",
            "format": "date-time"
          },
          "destination": {
            "$ref": "#/components/schemas/Location"
          },
          "mode": {
            "type": "string"
          },
          "origin": {
            "$ref": "#/components/schemas/Location"
          },
          "stops": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Location"
            }
          }
        }
      },
      "EstimateRouteResponse": {
        "type": "object",
        "properties": {
          "distanceMeters": {
            "type": "integer",
            "format": "int64"
          },
          "durationSeconds": {
            "type": "integer",
            "format": "int64"
          },
          "legs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteLeg"
            }
          },
          "polyline": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          }
        }
      },
      "ExportPersonalDataResponse": {
        "type": "object",
        "properties": {
          "exportSections": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "generatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ExportScheduleCalendarResponse": {
        "type": "object",
        "properties": {
          "calendar": {
            "type": "string"
          },
          "contentType": {
            "type": "string"
          }
        }
      },
      "FindInstantDriversRequest": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "pickup": {
            "$ref": "#/components/schemas/Location"
          },
          "pickupBudgetSeconds": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "FindInstantDriversResponse": {
        "type": "object",
        "properties": {
          "drivers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstantDriverMatch"
            }
          },
          "matchStrategy": {
            "type": "string"
          },
          "pickup": {
            "$ref": "#/components/schemas/Location"
          }
        }
      },
      "GetCitiesResponse": {
        "type": "object",
        "properties": {
          "cities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/City"
            }
          }
        }
      },
      "GetConversationResponse": {
        "type": "object",
        "properties": {
          "conversation": {
            "$ref": "#/components/schemas/Conversation"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Message"
            }
          }
        }
      },
      "GetDispatchResponse": {
        "type": "object",
        "properties": {
          "dispatch": {
            "$ref": "#/components/schemas/Dispatch"
          }
        }
      },
      "GetDriverProfileResponse": {
        "type": "object",
        "properties": {
          "profile": {
            "$ref": "#/components/schemas/DriverProfile"
          },
          "vehicles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vehicle"
            }
          }
        }
      },
      "GetIncidentResponse": {
        "type": "object",
        "properties": {
          "incident": {
            "$ref": "#/components/schemas/SafetyIncident"
          }
        }
      },
      "GetPopularRoutesResponse": {
        "type": "object",
        "properties": {
          "routes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PopularRoute"
            }
          }
        }
      },
      "GetProfileResponse": {
        "type": "object",
        "properties": {
          "user": {
            "$ref": "#/components/schemas/User"
          }
        }
      },
      "GetRideResponse": {
        "type": "object",
        "properties": {
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RideRequest"
            }
          },
          "ride": {
            "$ref": "#/components/schemas/Ride"
          }
        }
      },
      "GetScheduleOverviewResponse": {
        "type": "object",
        "properties": {
          "blocks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleBlock"
            }
          },
          "generatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleTimelineItem"
            }
          },
          "notices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleNotice"
            }
          },
          "reminders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleReminder"
            }
          }
        }
      },
      "GetSchedulePreferencesResponse": {
        "type": "object",
        "properties": {
          "preferences": {
            "$ref": "#/components/schemas/SchedulePreferences"
          }
        }
      },
      "GetWalletResponse": {
        "type": "object",
        "properties": {
          "wallet": {
            "$ref": "#/components/schemas/Wallet"
          }
        }
      },
      "GlobalContext": {
        "type": "object",
        "properties": {
          "actorType": {
            "type": "string"
          },
          "auditContext": {
            "type": "string"
          },
          "deviceId": {
            "type": "string"
          },
          "ipAddress": {
            "type": "string"
          },
          "jurisdiction": {
            "type": "string"
          },
          "organizationId": {
            "type": "string"
          },
          "regulatedEntityRef": {
            "type": "string"
          },
          "roleId": {
            "type": "string"
          },
          "sessionId": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "userAgent": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        }
      },
      "InstantDriverMatch": {
        "type": "object",
        "properties": {
          "distanceMeters": {
            "type": "integer",
            "format": "int32"
          },
          "driverAvatarUrl": {
            "type": "string",
            "format": "uri"
          },
          "driverId": {
            "type": "string"
          },
          "driverName": {
            "type": "string"
          },
          "driverRating": {
            "type": "number",
            "format": "double"
          },
          "driverTotalRides": {
            "type": "integer",
            "format": "int32"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "locationAgeSecs": {
            "type": "integer",
            "format": "int32"
          },
          "pickupEtaMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "seatCapacity": {
            "type": "integer",
            "format": "int32"
          },
          "vehicle": {
            "type": "string"
          },
          "vehicleColour": {
            "type": "string"
          },
          "vehiclePlate": {
            "type": "string"
          }
        }
      },
      "ListCarryingDispatchesResponse": {
        "type": "object",
        "properties": {
          "dispatches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Dispatch"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationResponse"
          }
        }
      },
      "ListConversationsResponse": {
        "type": "object",
        "properties": {
          "conversations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Conversation"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationResponse"
          }
        }
      },
      "ListDriverRidesResponse": {
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/PaginationResponse"
          },
          "rides": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ride"
            }
          }
        }
      },
      "ListEmergencyContactsResponse": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmergencyContact"
            }
          }
        }
      },
      "ListIncidentsResponse": {
        "type": "object",
        "properties": {
          "incidents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SafetyIncident"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationResponse"
          }
        }
      },
      "ListPassengerRidesResponse": {
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/PaginationResponse"
          },
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RideRequest"
            }
          }
        }
      },
      "ListPaymentMethodsResponse": {
        "type": "object",
        "properties": {
          "methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethod"
            }
          }
        }
      },
      "ListScheduleBlocksResponse": {
        "type": "object",
        "properties": {
          "blocks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleBlock"
            }
          }
        }
      },
      "ListSentDispatchesResponse": {
        "type": "object",
        "properties": {
          "dispatches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Dispatch"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationResponse"
          }
        }
      },
      "ListTransactionsResponse": {
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/PaginationResponse"
          },
          "transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            }
          }
        }
      },
      "Location": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "placeId": {
            "type": "string"
          }
        }
      },
      "MarkReadRequest": {
        "type": "object",
        "properties": {
          "conversationId": {
            "type": "string"
          },
          "lastMessageId": {
            "type": "string"
          }
        }
      },
      "MarkReadResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          }
        }
      },
      "Message": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string"
          },
          "conversationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          },
          "messageType": {
            "type": "string",
            "enum": [
              "MESSAGE_TYPE_UNSPECIFIED",
              "MESSAGE_TYPE_TEXT",
              "MESSAGE_TYPE_TEMPLATE",
              "MESSAGE_TYPE_SYSTEM",
              "MESSAGE_TYPE_LOCATION"
            ]
          },
          "readAt": {
            "type": "string",
            "format": "date-time"
          },
          "sender": {
            "$ref": "#/components/schemas/UserSummary"
          },
          "senderUserId": {
            "type": "string"
          }
        }
      },
      "Metadata": {
        "type": "object",
        "properties": {
          "aiConfidence": {
            "type": "number",
            "format": "double"
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "causationId": {
            "type": "string"
          },
          "channel": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "dataClassification": {
            "type": "string"
          },
          "embeddingId": {
            "type": "string"
          },
          "extrasJson": {
            "type": "string",
            "format": "byte"
          },
          "gamificationState": {
            "type": "string"
          },
          "globalContext": {
            "$ref": "#/components/schemas/GlobalContext"
          },
          "idempotencyKey": {
            "type": "string"
          },
          "jurisdictionTags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "knowledgeGraph": {
            "type": "string"
          },
          "legalBasisCode": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "payloadHash": {
            "type": "string"
          },
          "policySnapshotRef": {
            "type": "string"
          },
          "processedAt": {
            "type": "string",
            "format": "date-time"
          },
          "reasonCode": {
            "type": "string"
          },
          "requestId": {
            "type": "string"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "retentionClass": {
            "type": "string"
          },
          "routeKey": {
            "type": "string"
          },
          "signatureRef": {
            "type": "string"
          },
          "sourceChannel": {
            "type": "string"
          },
          "sourceQueue": {
            "type": "string"
          },
          "sourceRef": {
            "type": "string"
          },
          "sourceService": {
            "type": "string"
          },
          "spanId": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "tenantRegion": {
            "type": "string"
          },
          "traceId": {
            "type": "string"
          },
          "validityPeriod": {
            "$ref": "#/components/schemas/ValidityPeriod"
          }
        }
      },
      "Money": {
        "type": "object",
        "properties": {
          "amountMinor": {
            "type": "string"
          },
          "assetCode": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "minorUnits": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "PackageDetails": {
        "type": "object",
        "properties": {
          "declaredValue": {
            "$ref": "#/components/schemas/Money"
          },
          "description": {
            "type": "string"
          },
          "fragile": {
            "type": "boolean"
          },
          "photoUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "size": {
            "type": "string",
            "enum": [
              "PACKAGE_SIZE_UNSPECIFIED",
              "PACKAGE_SIZE_ENVELOPE",
              "PACKAGE_SIZE_SMALL",
              "PACKAGE_SIZE_MEDIUM",
              "PACKAGE_SIZE_LARGE",
              "PACKAGE_SIZE_BULK"
            ]
          },
          "weightKg": {
            "type": "number",
            "format": "float"
          }
        }
      },
      "PaginatedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {}
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        }
      },
      "Pagination": {
        "type": "object",
        "properties": {
          "next_page_token": {
            "type": "string",
            "example": "cursor:def456"
          },
          "page_size": {
            "type": "integer",
            "format": "int32",
            "example": 50
          },
          "page_token": {
            "type": "string",
            "example": "cursor:abc123"
          },
          "total_count": {
            "type": "integer",
            "format": "int64",
            "example": 120
          }
        }
      },
      "PaginationResponse": {
        "type": "object",
        "properties": {
          "hasMore": {
            "type": "boolean"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "nextCursor": {
            "type": "string"
          },
          "nextPageToken": {
            "type": "string"
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "PaymentMethod": {
        "type": "object",
        "properties": {
          "accountName": {
            "type": "string"
          },
          "bankName": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "isActive": {
            "type": "boolean"
          },
          "isDefault": {
            "type": "boolean"
          },
          "last4": {
            "type": "string"
          },
          "methodId": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PopularRoute": {
        "type": "object",
        "properties": {
          "basePrice": {
            "$ref": "#/components/schemas/Money"
          },
          "demandScore": {
            "type": "number",
            "format": "float"
          },
          "destinationCity": {
            "$ref": "#/components/schemas/City"
          },
          "distanceKm": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "string"
          },
          "originCity": {
            "$ref": "#/components/schemas/City"
          },
          "typicalDurationMinutes": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PostRideRequest": {
        "type": "object",
        "properties": {
          "acceptsDispatch": {
            "type": "boolean"
          },
          "availableSeats": {
            "type": "integer",
            "format": "int32"
          },
          "departureTime": {
            "type": "string",
            "format": "date-time"
          },
          "destination": {
            "$ref": "#/components/schemas/Location"
          },
          "dispatchCapacityKg": {
            "type": "number",
            "format": "float"
          },
          "flexibilityMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "maxDetourMeters": {
            "type": "integer",
            "format": "int32"
          },
          "origin": {
            "$ref": "#/components/schemas/Location"
          },
          "preferences": {
            "$ref": "#/components/schemas/RidePreferences"
          },
          "rideType": {
            "type": "string",
            "enum": [
              "RIDE_TYPE_UNSPECIFIED",
              "RIDE_TYPE_CITY",
              "RIDE_TYPE_INTERCITY",
              "RIDE_TYPE_INSTANT"
            ]
          },
          "vehicleId": {
            "type": "string"
          }
        }
      },
      "PostRideResponse": {
        "type": "object",
        "properties": {
          "ride": {
            "$ref": "#/components/schemas/Ride"
          },
          "suggestedPrice": {
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "RateRideRequest": {
        "type": "object",
        "properties": {
          "categories": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            }
          },
          "comment": {
            "type": "string"
          },
          "requestId": {
            "type": "string"
          },
          "stars": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "RateRideResponse": {
        "type": "object",
        "properties": {
          "submitted": {
            "type": "boolean"
          }
        }
      },
      "RefreshTokenRequest": {
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string"
          }
        }
      },
      "RefreshTokenResponse": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string"
          },
          "expiresInSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "refreshToken": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        }
      },
      "RegisterRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email"
          },
          "fullName": {
            "type": "string"
          },
          "homeCity": {
            "type": "string"
          },
          "password": {
            "type": "string",
            "minLength": 8
          },
          "phone": {
            "type": "string"
          }
        }
      },
      "RegisterResponse": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string"
          },
          "driverProfileRequired": {
            "type": "boolean"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "expiresInSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "phone": {
            "type": "string"
          },
          "profile": {
            "$ref": "#/components/schemas/User"
          },
          "refreshToken": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        }
      },
      "RejectRequestRequest": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "reason": {
            "type": "string"
          },
          "requestId": {
            "type": "string"
          }
        }
      },
      "RejectRequestResponse": {
        "type": "object",
        "properties": {
          "rejected": {
            "type": "boolean"
          }
        }
      },
      "ReportIncidentRequest": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "evidenceUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "incidentType": {
            "type": "string"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "reportedUserId": {
            "type": "string"
          },
          "rideId": {
            "type": "string"
          },
          "severity": {
            "type": "string"
          }
        }
      },
      "ReportIncidentResponse": {
        "type": "object",
        "properties": {
          "incident": {
            "$ref": "#/components/schemas/SafetyIncident"
          }
        }
      },
      "ReportIssueRequest": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "dispatchId": {
            "type": "string"
          },
          "evidenceUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "issueType": {
            "type": "string"
          }
        }
      },
      "ReportIssueResponse": {
        "type": "object",
        "properties": {
          "incidentId": {
            "type": "string"
          }
        }
      },
      "RequestRideRequest": {
        "type": "object",
        "properties": {
          "dropoff": {
            "$ref": "#/components/schemas/Location"
          },
          "messageToDriver": {
            "type": "string"
          },
          "pickup": {
            "$ref": "#/components/schemas/Location"
          },
          "rideId": {
            "type": "string"
          },
          "seats": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "RequestRideResponse": {
        "type": "object",
        "properties": {
          "quotedPrice": {
            "$ref": "#/components/schemas/Money"
          },
          "request": {
            "$ref": "#/components/schemas/RideRequest"
          }
        }
      },
      "Ride": {
        "type": "object",
        "properties": {
          "acceptsDispatch": {
            "type": "boolean"
          },
          "availableSeats": {
            "type": "integer",
            "format": "int32"
          },
          "cancellationReason": {
            "type": "string"
          },
          "cancelledAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "departureTime": {
            "type": "string",
            "format": "date-time"
          },
          "destination": {
            "$ref": "#/components/schemas/Location"
          },
          "dispatchCapacityKg": {
            "type": "number",
            "format": "float"
          },
          "driver": {
            "$ref": "#/components/schemas/UserSummary"
          },
          "driverUserId": {
            "type": "string"
          },
          "estimatedArrival": {
            "type": "string",
            "format": "date-time"
          },
          "flexibilityMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": "string"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "maxDetourMeters": {
            "type": "integer",
            "format": "int32"
          },
          "origin": {
            "$ref": "#/components/schemas/Location"
          },
          "preferences": {
            "$ref": "#/components/schemas/RidePreferences"
          },
          "pricePerSeat": {
            "$ref": "#/components/schemas/Money"
          },
          "recurrenceDays": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "rideType": {
            "type": "string",
            "enum": [
              "RIDE_TYPE_UNSPECIFIED",
              "RIDE_TYPE_CITY",
              "RIDE_TYPE_INTERCITY",
              "RIDE_TYPE_INSTANT"
            ]
          },
          "routeDistanceMeters": {
            "type": "integer",
            "format": "int32"
          },
          "routeDurationSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "routePolyline": {
            "type": "string"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "enum": [
              "RIDE_STATUS_UNSPECIFIED",
              "RIDE_STATUS_POSTED",
              "RIDE_STATUS_MATCHED",
              "RIDE_STATUS_ACTIVE",
              "RIDE_STATUS_COMPLETED",
              "RIDE_STATUS_CANCELLED"
            ]
          },
          "vehicle": {
            "$ref": "#/components/schemas/VehicleSummary"
          }
        }
      },
      "RideMatch": {
        "type": "object",
        "properties": {
          "detourMeters": {
            "type": "integer",
            "format": "int32"
          },
          "driver": {
            "$ref": "#/components/schemas/UserSummary"
          },
          "dropoffEta": {
            "type": "string",
            "format": "date-time"
          },
          "matchPercentage": {
            "type": "integer",
            "format": "int32"
          },
          "pickupEta": {
            "type": "string",
            "format": "date-time"
          },
          "preferences": {
            "$ref": "#/components/schemas/RidePreferences"
          },
          "price": {
            "$ref": "#/components/schemas/Money"
          },
          "rideId": {
            "type": "string"
          },
          "rideType": {
            "type": "string",
            "enum": [
              "RIDE_TYPE_UNSPECIFIED",
              "RIDE_TYPE_CITY",
              "RIDE_TYPE_INTERCITY",
              "RIDE_TYPE_INSTANT"
            ]
          },
          "seatsAvailable": {
            "type": "integer",
            "format": "int32"
          },
          "vehicle": {
            "$ref": "#/components/schemas/VehicleSummary"
          }
        }
      },
      "RidePreferences": {
        "type": "object",
        "properties": {
          "conversation": {
            "type": "boolean"
          },
          "music": {
            "type": "boolean"
          },
          "noSmoking": {
            "type": "boolean"
          },
          "petsOk": {
            "type": "boolean"
          }
        }
      },
      "RideRequest": {
        "type": "object",
        "properties": {
          "detourDistanceMeters": {
            "type": "integer",
            "format": "int32"
          },
          "driverPayout": {
            "$ref": "#/components/schemas/Money"
          },
          "driverResponse": {
            "type": "string"
          },
          "dropoff": {
            "$ref": "#/components/schemas/Location"
          },
          "droppedOffAt": {
            "type": "string",
            "format": "date-time"
          },
          "estimatedDropoffTime": {
            "type": "string",
            "format": "date-time"
          },
          "estimatedPickupTime": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          },
          "messageToDriver": {
            "type": "string"
          },
          "passenger": {
            "$ref": "#/components/schemas/UserSummary"
          },
          "passengerPrice": {
            "$ref": "#/components/schemas/Money"
          },
          "passengerUserId": {
            "type": "string"
          },
          "pickedUpAt": {
            "type": "string",
            "format": "date-time"
          },
          "pickup": {
            "$ref": "#/components/schemas/Location"
          },
          "platformFee": {
            "$ref": "#/components/schemas/Money"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "respondedAt": {
            "type": "string",
            "format": "date-time"
          },
          "rideId": {
            "type": "string"
          },
          "routeMatchPercentage": {
            "type": "number",
            "format": "float"
          },
          "seatsRequested": {
            "type": "integer",
            "format": "int32"
          },
          "status": {
            "type": "string",
            "enum": [
              "REQUEST_STATUS_UNSPECIFIED",
              "REQUEST_STATUS_PENDING",
              "REQUEST_STATUS_ACCEPTED",
              "REQUEST_STATUS_REJECTED",
              "REQUEST_STATUS_CANCELLED",
              "REQUEST_STATUS_PICKED_UP",
              "REQUEST_STATUS_DROPPED_OFF",
              "REQUEST_STATUS_COMPLETED"
            ]
          }
        }
      },
      "RideSummary": {
        "type": "object",
        "properties": {
          "averageRating": {
            "type": "number",
            "format": "float"
          },
          "totalDistanceMeters": {
            "type": "integer",
            "format": "int32"
          },
          "totalDurationSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "totalEarnings": {
            "$ref": "#/components/schemas/Money"
          },
          "totalPassengers": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "RouteLeg": {
        "type": "object",
        "properties": {
          "arrivalTime": {
            "type": "string",
            "format": "date-time"
          },
          "departureTime": {
            "type": "string",
            "format": "date-time"
          },
          "destination": {
            "$ref": "#/components/schemas/Location"
          },
          "distanceMeters": {
            "type": "integer",
            "format": "int64"
          },
          "durationSeconds": {
            "type": "integer",
            "format": "int64"
          },
          "origin": {
            "$ref": "#/components/schemas/Location"
          }
        }
      },
      "SafetyIncident": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "type": "string"
          },
          "evidenceUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "id": {
            "type": "string"
          },
          "incidentType": {
            "type": "string",
            "enum": [
              "INCIDENT_TYPE_UNSPECIFIED",
              "INCIDENT_TYPE_SOS_TRIGGERED",
              "INCIDENT_TYPE_HARASSMENT",
              "INCIDENT_TYPE_UNSAFE_DRIVING",
              "INCIDENT_TYPE_NO_SHOW",
              "INCIDENT_TYPE_OTHER"
            ]
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "reportedUser": {
            "$ref": "#/components/schemas/UserSummary"
          },
          "reportedUserId": {
            "type": "string"
          },
          "reporter": {
            "$ref": "#/components/schemas/UserSummary"
          },
          "reporterUserId": {
            "type": "string"
          },
          "resolutionNotes": {
            "type": "string"
          },
          "resolvedAt": {
            "type": "string",
            "format": "date-time"
          },
          "rideId": {
            "type": "string"
          },
          "severity": {
            "type": "string",
            "enum": [
              "INCIDENT_SEVERITY_UNSPECIFIED",
              "INCIDENT_SEVERITY_LOW",
              "INCIDENT_SEVERITY_MEDIUM",
              "INCIDENT_SEVERITY_HIGH",
              "INCIDENT_SEVERITY_CRITICAL"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "INCIDENT_STATUS_UNSPECIFIED",
              "INCIDENT_STATUS_OPEN",
              "INCIDENT_STATUS_INVESTIGATING",
              "INCIDENT_STATUS_RESOLVED",
              "INCIDENT_STATUS_DISMISSED"
            ]
          }
        }
      },
      "ScheduleBlock": {
        "type": "object",
        "properties": {
          "blockId": {
            "type": "string"
          },
          "blockType": {
            "type": "string"
          },
          "endsAt": {
            "type": "string",
            "format": "date-time"
          },
          "notes": {
            "type": "string"
          },
          "recurrenceRule": {
            "type": "string"
          },
          "startsAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "ScheduleNotice": {
        "type": "object",
        "properties": {
          "acknowledgedAt": {
            "type": "string",
            "format": "date-time"
          },
          "body": {
            "type": "string"
          },
          "deliveredAt": {
            "type": "string",
            "format": "date-time"
          },
          "dispatchId": {
            "type": "string"
          },
          "noticeId": {
            "type": "string"
          },
          "noticeType": {
            "type": "string"
          },
          "rideId": {
            "type": "string"
          },
          "scheduledFor": {
            "type": "string",
            "format": "date-time"
          },
          "state": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "SchedulePreferences": {
        "type": "object",
        "properties": {
          "analyticsConsent": {
            "type": "boolean"
          },
          "calendarSyncEnabled": {
            "type": "boolean"
          },
          "emailEnabled": {
            "type": "boolean"
          },
          "locationSharingEnabled": {
            "type": "boolean"
          },
          "marketingConsent": {
            "type": "boolean"
          },
          "privacyAcknowledgedAt": {
            "type": "string",
            "format": "date-time"
          },
          "pushEnabled": {
            "type": "boolean"
          },
          "quietHoursEnd": {
            "type": "string"
          },
          "quietHoursStart": {
            "type": "string"
          },
          "reminderLeadMinutes": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "smsEnabled": {
            "type": "boolean"
          },
          "timezone": {
            "type": "string"
          }
        }
      },
      "ScheduleReminder": {
        "type": "object",
        "properties": {
          "itemId": {
            "type": "string"
          },
          "leadMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "remindAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "ScheduleTimelineItem": {
        "type": "object",
        "properties": {
          "conversationId": {
            "type": "string"
          },
          "counterparty": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "endsAt": {
            "type": "string",
            "format": "date-time"
          },
          "itemId": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "locationLabel": {
            "type": "string"
          },
          "sourceId": {
            "type": "string"
          },
          "startsAt": {
            "type": "string",
            "format": "date-time"
          },
          "state": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "SearchDispatchRidesResponse": {
        "type": "object",
        "properties": {
          "matches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DispatchMatch"
            }
          }
        }
      },
      "SearchRidesResponse": {
        "type": "object",
        "properties": {
          "matches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RideMatch"
            }
          }
        }
      },
      "SendMessageRequest": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string"
          },
          "conversationId": {
            "type": "string"
          },
          "messageType": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          }
        }
      },
      "SendMessageResponse": {
        "type": "object",
        "properties": {
          "message": {
            "$ref": "#/components/schemas/Message"
          }
        }
      },
      "SendPhoneOTPRequest": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "phone": {
            "type": "string"
          }
        }
      },
      "SendPhoneOTPResponse": {
        "type": "object",
        "properties": {
          "expiresInSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "sent": {
            "type": "boolean"
          }
        }
      },
      "Session": {
        "type": "object",
        "properties": {
          "onboardingStep": {
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        }
      },
      "StandardSuccessResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "additionalProperties": {}
          },
          "message": {
            "type": "string",
            "example": "Successful response"
          },
          "status": {
            "type": "string",
            "example": "ok"
          }
        }
      },
      "StartRideRequest": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "rideId": {
            "type": "string"
          }
        }
      },
      "StartRideResponse": {
        "type": "object",
        "properties": {
          "ride": {
            "$ref": "#/components/schemas/Ride"
          }
        }
      },
      "Transaction": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Money"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "type": "string"
          },
          "dispatchId": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "netAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "payer": {
            "$ref": "#/components/schemas/UserSummary"
          },
          "payerUserId": {
            "type": "string"
          },
          "paymentProvider": {
            "type": "string"
          },
          "platformFee": {
            "$ref": "#/components/schemas/Money"
          },
          "providerReference": {
            "type": "string"
          },
          "recipient": {
            "$ref": "#/components/schemas/UserSummary"
          },
          "recipientUserId": {
            "type": "string"
          },
          "rideRequestId": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "TRANSACTION_STATUS_UNSPECIFIED",
              "TRANSACTION_STATUS_PENDING",
              "TRANSACTION_STATUS_PROCESSING",
              "TRANSACTION_STATUS_COMPLETED",
              "TRANSACTION_STATUS_FAILED"
            ]
          },
          "transactionType": {
            "type": "string",
            "enum": [
              "TRANSACTION_TYPE_UNSPECIFIED",
              "TRANSACTION_TYPE_RIDE_PAYMENT",
              "TRANSACTION_TYPE_DISPATCH_PAYMENT",
              "TRANSACTION_TYPE_DRIVER_PAYOUT",
              "TRANSACTION_TYPE_REFUND",
              "TRANSACTION_TYPE_TOPUP",
              "TRANSACTION_TYPE_WITHDRAWAL"
            ]
          }
        }
      },
      "TriggerSOSRequest": {
        "type": "object",
        "properties": {
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "rideId": {
            "type": "string"
          }
        }
      },
      "TriggerSOSResponse": {
        "type": "object",
        "properties": {
          "contactsCount": {
            "type": "integer",
            "format": "int32"
          },
          "contactsNotified": {
            "type": "boolean"
          },
          "incidentId": {
            "type": "string"
          }
        }
      },
      "TrottersRideConfirmPickupRequest": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "requestId": {
            "type": "string"
          }
        }
      },
      "TrottersRideConfirmPickupResponse": {
        "type": "object",
        "properties": {
          "request": {
            "$ref": "#/components/schemas/RideRequest"
          }
        }
      },
      "TypingRequest": {
        "type": "object",
        "properties": {
          "conversationId": {
            "type": "string"
          },
          "typing": {
            "type": "boolean"
          }
        }
      },
      "TypingResponse": {
        "type": "object",
        "properties": {
          "conversationId": {
            "type": "string"
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "received": {
            "type": "boolean"
          },
          "typing": {
            "type": "boolean"
          }
        }
      },
      "UpdateLocationRequest": {
        "type": "object",
        "properties": {
          "accuracyMeters": {
            "type": "number",
            "format": "float"
          },
          "heading": {
            "type": "number",
            "format": "float"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "rideId": {
            "type": "string"
          },
          "speedKmh": {
            "type": "number",
            "format": "float"
          }
        }
      },
      "UpdateLocationResponse": {
        "type": "object",
        "properties": {
          "received": {
            "type": "boolean"
          }
        }
      },
      "UpdateProfileRequest": {
        "type": "object",
        "properties": {
          "avatarUrl": {
            "type": "string",
            "format": "uri"
          },
          "fullName": {
            "type": "string"
          },
          "homeCity": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "workCity": {
            "type": "string"
          }
        }
      },
      "UpdateProfileResponse": {
        "type": "object",
        "properties": {
          "user": {
            "$ref": "#/components/schemas/User"
          }
        }
      },
      "UpdateRideRequest": {
        "type": "object",
        "properties": {
          "availableSeats": {
            "type": "integer",
            "format": "int32"
          },
          "departureTime": {
            "type": "string",
            "format": "date-time"
          },
          "flexibilityMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "preferences": {
            "$ref": "#/components/schemas/RidePreferences"
          },
          "pricePerSeat": {
            "$ref": "#/components/schemas/Money"
          },
          "rideId": {
            "type": "string"
          }
        }
      },
      "UpdateRideResponse": {
        "type": "object",
        "properties": {
          "ride": {
            "$ref": "#/components/schemas/Ride"
          }
        }
      },
      "UpdateSchedulePreferencesRequest": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "preferences": {
            "$ref": "#/components/schemas/SchedulePreferences"
          }
        }
      },
      "UpdateSchedulePreferencesResponse": {
        "type": "object",
        "properties": {
          "preferences": {
            "$ref": "#/components/schemas/SchedulePreferences"
          }
        }
      },
      "UpdateVehicleRequest": {
        "type": "object",
        "properties": {
          "color": {
            "type": "string"
          },
          "isPrimary": {
            "type": "boolean"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "photoUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "vehicleId": {
            "type": "string"
          }
        }
      },
      "UpdateVehicleResponse": {
        "type": "object",
        "properties": {
          "vehicle": {
            "$ref": "#/components/schemas/Vehicle"
          }
        }
      },
      "User": {
        "type": "object",
        "properties": {
          "avatarUrl": {
            "type": "string",
            "format": "uri"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "fullName": {
            "type": "string"
          },
          "homeCity": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "isDriverEnabled": {
            "type": "boolean"
          },
          "phone": {
            "type": "string"
          },
          "ratingAsDriver": {
            "type": "number",
            "format": "float"
          },
          "ratingAsPassenger": {
            "type": "number",
            "format": "float"
          },
          "totalDispatchesCarried": {
            "type": "integer",
            "format": "int32"
          },
          "totalDispatchesSent": {
            "type": "integer",
            "format": "int32"
          },
          "totalRidesAsDriver": {
            "type": "integer",
            "format": "int32"
          },
          "totalRidesAsPassenger": {
            "type": "integer",
            "format": "int32"
          },
          "verificationLevel": {
            "type": "string"
          },
          "workCity": {
            "type": "string"
          }
        }
      },
      "UserSummary": {
        "type": "object",
        "properties": {
          "avatarUrl": {
            "type": "string",
            "format": "uri"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "rating": {
            "type": "number",
            "format": "float"
          },
          "totalRides": {
            "type": "integer",
            "format": "int32"
          },
          "verificationLevel": {
            "type": "string"
          },
          "verified": {
            "type": "boolean"
          }
        }
      },
      "ValidityPeriod": {
        "type": "object",
        "properties": {
          "effectiveFrom": {
            "type": "string"
          },
          "effectiveTo": {
            "type": "string"
          }
        }
      },
      "Vehicle": {
        "type": "object",
        "properties": {
          "color": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "driverProfileId": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "isPrimary": {
            "type": "boolean"
          },
          "isVerified": {
            "type": "boolean"
          },
          "make": {
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "photoUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "plateNumber": {
            "type": "string"
          },
          "seatCapacity": {
            "type": "integer",
            "format": "int32"
          },
          "vehicleType": {
            "type": "string"
          },
          "year": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "VehicleSummary": {
        "type": "object",
        "properties": {
          "color": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "make": {
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "plate": {
            "type": "string"
          },
          "seatCapacity": {
            "type": "integer",
            "format": "int32"
          },
          "vehicleType": {
            "type": "string"
          },
          "year": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "VerifyPhoneOTPRequest": {
        "type": "object",
        "properties": {
          "otpCode": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          }
        }
      },
      "VerifyPhoneOTPResponse": {
        "type": "object",
        "properties": {
          "verified": {
            "type": "boolean"
          }
        }
      },
      "Wallet": {
        "type": "object",
        "properties": {
          "balance": {
            "$ref": "#/components/schemas/Money"
          },
          "lastTransactionAt": {
            "type": "string",
            "format": "date-time"
          },
          "pendingBalance": {
            "$ref": "#/components/schemas/Money"
          },
          "totalEarned": {
            "$ref": "#/components/schemas/Money"
          },
          "totalSpent": {
            "$ref": "#/components/schemas/Money"
          },
          "userId": {
            "type": "string"
          }
        }
      },
      "WithdrawRequest": {
        "type": "object",
        "properties": {
          "accountNumber": {
            "type": "string"
          },
          "amount": {
            "$ref": "#/components/schemas/Money"
          },
          "bankCode": {
            "type": "string"
          }
        }
      },
      "WithdrawResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "transactionId": {
            "type": "string"
          }
        }
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "JWT bearer token. Example: Authorization: Bearer \u003ctoken\u003e"
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "auth"
    },
    {
      "name": "chat"
    },
    {
      "name": "dispatches"
    },
    {
      "name": "driver"
    },
    {
      "name": "intercity"
    },
    {
      "name": "passenger"
    },
    {
      "name": "privacy"
    },
    {
      "name": "requests"
    },
    {
      "name": "rides"
    },
    {
      "name": "safety"
    },
    {
      "name": "schedule"
    },
    {
      "name": "users"
    },
    {
      "name": "wallet"
    }
  ]
}
