{
  "openapi": "3.1.1",
  "info": {
    "title": "FleetShare.Api | v1",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "http://apirent.indev.com.bd/"
    }
  ],
  "paths": {
    "/health": {
      "get": {
        "tags": [
          "FleetShare.Api"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/health/ready": {
      "get": {
        "tags": [
          "FleetShare.Api"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/": {
      "get": {
        "tags": [
          "FleetShare.Api"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Auth/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Auth/validate-session": {
      "get": {
        "tags": [
          "Auth"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Auth/send-otp": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendOtpRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SendOtpRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SendOtpRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SendOtpResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SendOtpResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SendOtpResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Auth/verify-otp-reset-password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ResetPasswordResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResetPasswordResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResetPasswordResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/Closings/summary": {
      "get": {
        "tags": [
          "Closings"
        ],
        "parameters": [
          {
            "name": "vehicleId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "year",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "month",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "X-User-Role",
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlySummaryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlySummaryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlySummaryDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/Closings/finalize": {
      "post": {
        "tags": [
          "Closings"
        ],
        "parameters": [
          {
            "name": "vehicleId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "year",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "month",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "X-User-Role",
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlySummaryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlySummaryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonthlySummaryDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/Closings/settlements/{settlementId}": {
      "patch": {
        "tags": [
          "Closings"
        ],
        "parameters": [
          {
            "name": "settlementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-User-Role",
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSettlementDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSettlementDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSettlementDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerSettlementDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerSettlementDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerSettlementDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/Drivers/vehicle/{vehicleId}": {
      "get": {
        "tags": [
          "Drivers"
        ],
        "parameters": [
          {
            "name": "vehicleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DriverDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DriverDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DriverDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Drivers": {
      "post": {
        "tags": [
          "Drivers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDriverDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDriverDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDriverDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DriverDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DriverDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DriverDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/Drivers/{id}": {
      "delete": {
        "tags": [
          "Drivers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Maintenance/vehicle/{vehicleId}/status": {
      "get": {
        "tags": [
          "Maintenance"
        ],
        "parameters": [
          {
            "name": "vehicleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MaintenanceStatusDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MaintenanceStatusDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MaintenanceStatusDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Maintenance/vehicle/{vehicleId}/rules": {
      "get": {
        "tags": [
          "Maintenance"
        ],
        "parameters": [
          {
            "name": "vehicleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MaintenanceRuleDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MaintenanceRuleDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MaintenanceRuleDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Maintenance/rules/{ruleId}/baseline": {
      "put": {
        "tags": [
          "Maintenance"
        ],
        "parameters": [
          {
            "name": "ruleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBaselineDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBaselineDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBaselineDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Maintenance/rules": {
      "post": {
        "tags": [
          "Maintenance"
        ],
        "parameters": [
          {
            "name": "vehicleId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "serviceName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "intervalKm",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
              "type": [
                "number",
                "string"
              ],
              "format": "double"
            }
          },
          {
            "name": "intervalDays",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MaintenanceRuleDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaintenanceRuleDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaintenanceRuleDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/Maintenance/records": {
      "post": {
        "tags": [
          "Maintenance"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddMaintenanceRecordDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddMaintenanceRecordDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddMaintenanceRecordDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Maintenance/vehicle/{vehicleId}/records": {
      "get": {
        "tags": [
          "Maintenance"
        ],
        "parameters": [
          {
            "name": "vehicleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MaintenanceRecordDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MaintenanceRecordDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MaintenanceRecordDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Partners/vehicle/{vehicleId}": {
      "get": {
        "tags": [
          "Partners"
        ],
        "parameters": [
          {
            "name": "vehicleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-User-Role",
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PartnerDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PartnerDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PartnerDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Partners": {
      "post": {
        "tags": [
          "Partners"
        ],
        "parameters": [
          {
            "name": "X-User-Role",
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePartnerDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePartnerDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePartnerDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/Partners/{id}": {
      "delete": {
        "tags": [
          "Partners"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-User-Role",
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/System/epoch": {
      "get": {
        "tags": [
          "System"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/System/factory-reset": {
      "post": {
        "tags": [
          "System"
        ],
        "parameters": [
          {
            "name": "X-User-Role",
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Trips/vehicle/{vehicleId}": {
      "get": {
        "tags": [
          "Trips"
        ],
        "parameters": [
          {
            "name": "vehicleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fromDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TripDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TripDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TripDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/Trips/start": {
      "post": {
        "tags": [
          "Trips"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartTripDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/StartTripDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/StartTripDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TripDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/Trips/{tripId}/complete": {
      "post": {
        "tags": [
          "Trips"
        ],
        "parameters": [
          {
            "name": "tripId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteTripDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteTripDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteTripDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TripDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/Trips/{tripId}/cancel": {
      "post": {
        "tags": [
          "Trips"
        ],
        "parameters": [
          {
            "name": "tripId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TripDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/Trips": {
      "post": {
        "tags": [
          "Trips"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTripDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTripDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTripDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TripDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/Vehicles": {
      "get": {
        "tags": [
          "Vehicles"
        ],
        "parameters": [
          {
            "name": "X-User-Role",
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VehicleDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VehicleDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VehicleDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Vehicles"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVehicleDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVehicleDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVehicleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VehicleDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VehicleDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VehicleDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/Vehicles/{id}": {
      "get": {
        "tags": [
          "Vehicles"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-User-Role",
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VehicleDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VehicleDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VehicleDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Vehicles"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateVehicleDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateVehicleDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateVehicleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VehicleDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VehicleDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VehicleDto"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Vehicles"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddMaintenanceRecordDto": {
        "required": [
          "vehicleId",
          "ruleId",
          "serviceDate",
          "odometerKm",
          "partsCost",
          "labourCost",
          "expenseCategory",
          "workshopName",
          "notes"
        ],
        "type": "object",
        "properties": {
          "vehicleId": {
            "type": "string",
            "format": "uuid"
          },
          "ruleId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "serviceDate": {
            "type": "string",
            "format": "date"
          },
          "odometerKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "partsCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "labourCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "expenseCategory": {
            "type": "string"
          },
          "workshopName": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CompleteTripDto": {
        "required": [
          "distanceKm",
          "fuelLitres",
          "fuelCost",
          "incidentalExpense",
          "tripTips",
          "notes"
        ],
        "type": "object",
        "properties": {
          "distanceKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "fuelLitres": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "fuelCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "incidentalExpense": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "tripTips": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CreateDriverDto": {
        "required": [
          "vehicleId",
          "fullName",
          "phoneNumber",
          "email",
          "password",
          "baseMonthlySalary",
          "drivingLicenseNumber"
        ],
        "type": "object",
        "properties": {
          "vehicleId": {
            "type": "string",
            "format": "uuid"
          },
          "fullName": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "email": {
            "type": [
              "null",
              "string"
            ]
          },
          "password": {
            "type": "string"
          },
          "baseMonthlySalary": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "drivingLicenseNumber": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CreatePartnerDto": {
        "required": [
          "vehicleId",
          "partnerName",
          "phoneNumber",
          "capitalInvested",
          "explicitEquityPercentage"
        ],
        "type": "object",
        "properties": {
          "vehicleId": {
            "type": "string",
            "format": "uuid"
          },
          "partnerName": {
            "type": "string"
          },
          "phoneNumber": {
            "type": [
              "null",
              "string"
            ]
          },
          "capitalInvested": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "explicitEquityPercentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "CreateTripDto": {
        "required": [
          "vehicleId",
          "driverId",
          "tripDate",
          "origin",
          "destination",
          "odometerStartKm",
          "odometerEndKm",
          "grossFare",
          "fuelLitres",
          "fuelCost",
          "incidentalExpense",
          "tripTips",
          "notes"
        ],
        "type": "object",
        "properties": {
          "vehicleId": {
            "type": "string",
            "format": "uuid"
          },
          "driverId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "tripDate": {
            "type": "string",
            "format": "date"
          },
          "origin": {
            "type": "string"
          },
          "destination": {
            "type": "string"
          },
          "odometerStartKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "odometerEndKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "grossFare": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "fuelLitres": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "fuelCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "incidentalExpense": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "tripTips": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CreateVehicleDto": {
        "required": [
          "name",
          "registrationNumber",
          "vehicleType",
          "modelYear",
          "fuelType",
          "basePurchasePrice",
          "totalCapitalizedInvestment",
          "initialOdometerKm"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "registrationNumber": {
            "type": "string"
          },
          "vehicleType": {
            "type": "string"
          },
          "modelYear": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "fuelType": {
            "type": "string"
          },
          "basePurchasePrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalCapitalizedInvestment": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "initialOdometerKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "DriverDto": {
        "required": [
          "id",
          "vehicleId",
          "vehicleName",
          "fullName",
          "phoneNumber",
          "email",
          "baseMonthlySalary",
          "drivingLicenseNumber",
          "isActive"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "vehicleId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "vehicleName": {
            "type": "string"
          },
          "fullName": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "baseMonthlySalary": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "drivingLicenseNumber": {
            "type": [
              "null",
              "string"
            ]
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "LoginRequest": {
        "required": [
          "usernameOrPhone",
          "email",
          "password"
        ],
        "type": "object",
        "properties": {
          "usernameOrPhone": {
            "type": [
              "null",
              "string"
            ]
          },
          "email": {
            "type": [
              "null",
              "string"
            ]
          },
          "password": {
            "type": "string"
          }
        }
      },
      "LoginResponse": {
        "required": [
          "id",
          "email",
          "phoneNumber",
          "fullName",
          "role",
          "assignedVehicleId",
          "assignedVehicleName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "email": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "fullName": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "assignedVehicleId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "assignedVehicleName": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "MaintenanceRecordDto": {
        "required": [
          "id",
          "vehicleId",
          "ruleId",
          "serviceName",
          "serviceDate",
          "odometerKm",
          "partsCost",
          "labourCost",
          "totalCost",
          "expenseCategory",
          "workshopName",
          "notes",
          "createdAt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "vehicleId": {
            "type": "string",
            "format": "uuid"
          },
          "ruleId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "serviceName": {
            "type": [
              "null",
              "string"
            ]
          },
          "serviceDate": {
            "type": "string",
            "format": "date"
          },
          "odometerKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "partsCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "labourCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "expenseCategory": {
            "type": "string"
          },
          "workshopName": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "MaintenanceRuleDto": {
        "required": [
          "id",
          "vehicleId",
          "serviceName",
          "intervalKm",
          "intervalDays",
          "advanceNoticeKm",
          "advanceNoticeDays",
          "initialBaselineKm",
          "initialBaselineDate",
          "isActive"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "vehicleId": {
            "type": "string",
            "format": "uuid"
          },
          "serviceName": {
            "type": "string"
          },
          "intervalKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "intervalDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "advanceNoticeKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "advanceNoticeDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "initialBaselineKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "initialBaselineDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "MaintenanceStatusDto": {
        "required": [
          "ruleId",
          "serviceName",
          "intervalKm",
          "intervalDays",
          "lastServiceKm",
          "lastServiceDate",
          "nextDueKm",
          "nextDueDate",
          "remainingKm",
          "remainingDays",
          "status"
        ],
        "type": "object",
        "properties": {
          "ruleId": {
            "type": "string",
            "format": "uuid"
          },
          "serviceName": {
            "type": "string"
          },
          "intervalKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "intervalDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "lastServiceKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lastServiceDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "nextDueKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "nextDueDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "remainingKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "remainingDays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "MonthlySummaryDto": {
        "required": [
          "vehicleId",
          "year",
          "month",
          "totalTripsCount",
          "grossRentalIncome",
          "tripTipsIncome",
          "totalRevenue",
          "totalFuelLitres",
          "totalFuelCost",
          "totalIncidentalExpenses",
          "operatingCashMargin",
          "driverBaseSalary",
          "driverTipsAllowance",
          "totalDriverCost",
          "maintenanceExpenses",
          "otherOverheads",
          "finalNetDistributableProfit",
          "isLoss",
          "isLocked",
          "partnerSettlements"
        ],
        "type": "object",
        "properties": {
          "vehicleId": {
            "type": "string",
            "format": "uuid"
          },
          "year": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "month": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "totalTripsCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "grossRentalIncome": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "tripTipsIncome": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalRevenue": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalFuelLitres": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalFuelCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalIncidentalExpenses": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "operatingCashMargin": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "driverBaseSalary": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "driverTipsAllowance": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalDriverCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "maintenanceExpenses": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "otherOverheads": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "finalNetDistributableProfit": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "isLoss": {
            "type": "boolean"
          },
          "isLocked": {
            "type": "boolean"
          },
          "partnerSettlements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartnerSettlementDto"
            }
          }
        }
      },
      "PartnerDto": {
        "required": [
          "id",
          "vehicleId",
          "partnerName",
          "phoneNumber",
          "capitalInvested",
          "equityPercentage",
          "effectiveFrom"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "vehicleId": {
            "type": "string",
            "format": "uuid"
          },
          "partnerName": {
            "type": "string"
          },
          "phoneNumber": {
            "type": [
              "null",
              "string"
            ]
          },
          "capitalInvested": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "equityPercentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "PartnerSettlementDto": {
        "required": [
          "settlementId",
          "partnerId",
          "partnerName",
          "equityPercentage",
          "entitledProfit",
          "advanceDeductions",
          "netPayable",
          "amountPaid",
          "settlementStatus",
          "paymentMethod",
          "paymentReference",
          "paidAt",
          "notes"
        ],
        "type": "object",
        "properties": {
          "settlementId": {
            "type": "string",
            "format": "uuid"
          },
          "partnerId": {
            "type": "string",
            "format": "uuid"
          },
          "partnerName": {
            "type": "string"
          },
          "equityPercentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "entitledProfit": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "advanceDeductions": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "netPayable": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "amountPaid": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "settlementStatus": {
            "type": "string"
          },
          "paymentMethod": {
            "type": [
              "null",
              "string"
            ]
          },
          "paymentReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "paidAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ResetPasswordRequest": {
        "required": [
          "phoneNumber",
          "otp",
          "newPassword"
        ],
        "type": "object",
        "properties": {
          "phoneNumber": {
            "type": "string"
          },
          "otp": {
            "type": "string"
          },
          "newPassword": {
            "type": "string"
          }
        }
      },
      "ResetPasswordResponse": {
        "required": [
          "success",
          "message"
        ],
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "SendOtpRequest": {
        "required": [
          "phoneNumber"
        ],
        "type": "object",
        "properties": {
          "phoneNumber": {
            "type": "string"
          }
        }
      },
      "SendOtpResponse": {
        "required": [
          "success",
          "message",
          "otp"
        ],
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "otp": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "StartTripDto": {
        "required": [
          "vehicleId",
          "driverId",
          "tripDate",
          "origin",
          "destination",
          "grossFare",
          "notes"
        ],
        "type": "object",
        "properties": {
          "vehicleId": {
            "type": "string",
            "format": "uuid"
          },
          "driverId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "tripDate": {
            "type": "string",
            "format": "date"
          },
          "origin": {
            "type": "string"
          },
          "destination": {
            "type": "string"
          },
          "grossFare": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "TripDto": {
        "required": [
          "id",
          "vehicleId",
          "driverId",
          "driverName",
          "tripDate",
          "origin",
          "destination",
          "odometerStartKm",
          "odometerEndKm",
          "distanceKm",
          "grossFare",
          "fuelLitres",
          "fuelCost",
          "incidentalExpense",
          "tripTips",
          "netProfit",
          "status",
          "notes"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "vehicleId": {
            "type": "string",
            "format": "uuid"
          },
          "driverId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "driverName": {
            "type": [
              "null",
              "string"
            ]
          },
          "tripDate": {
            "type": "string",
            "format": "date"
          },
          "origin": {
            "type": "string"
          },
          "destination": {
            "type": "string"
          },
          "odometerStartKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "odometerEndKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "distanceKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "grossFare": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "fuelLitres": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "fuelCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "incidentalExpense": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "tripTips": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "netProfit": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "status": {
            "type": "string"
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "UpdateBaselineDto": {
        "required": [
          "baselineOdometerKm",
          "baselineDate"
        ],
        "type": "object",
        "properties": {
          "baselineOdometerKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "baselineDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          }
        }
      },
      "UpdateSettlementDto": {
        "required": [
          "settlementStatus",
          "amountPaid",
          "paymentMethod",
          "paymentReference",
          "notes"
        ],
        "type": "object",
        "properties": {
          "settlementStatus": {
            "type": "string"
          },
          "amountPaid": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "paymentMethod": {
            "type": [
              "null",
              "string"
            ]
          },
          "paymentReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "UpdateVehicleDto": {
        "required": [
          "name",
          "registrationNumber",
          "vehicleType",
          "modelYear",
          "fuelType",
          "basePurchasePrice",
          "totalCapitalizedInvestment",
          "currentOdometerKm"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "registrationNumber": {
            "type": "string"
          },
          "vehicleType": {
            "type": "string"
          },
          "modelYear": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "fuelType": {
            "type": [
              "null",
              "string"
            ]
          },
          "basePurchasePrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalCapitalizedInvestment": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "currentOdometerKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "VehicleDto": {
        "required": [
          "id",
          "name",
          "registrationNumber",
          "vehicleType",
          "modelYear",
          "fuelType",
          "basePurchasePrice",
          "totalCapitalizedInvestment",
          "initialOdometerKm",
          "currentOdometerKm",
          "isActive"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "registrationNumber": {
            "type": "string"
          },
          "vehicleType": {
            "type": "string"
          },
          "modelYear": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "fuelType": {
            "type": "string"
          },
          "basePurchasePrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalCapitalizedInvestment": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "initialOdometerKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "currentOdometerKm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "isActive": {
            "type": "boolean"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "FleetShare.Api"
    },
    {
      "name": "Auth"
    },
    {
      "name": "Closings"
    },
    {
      "name": "Drivers"
    },
    {
      "name": "Maintenance"
    },
    {
      "name": "Partners"
    },
    {
      "name": "System"
    },
    {
      "name": "Trips"
    },
    {
      "name": "Vehicles"
    }
  ]
}