{
  "openapi": "3.0.0",
  "info": {
    "title": "core-api",
    "version": "1.29.218",
    "description": "Node JS server built with loopback, for Mirow Pet App",
    "contact": {
      "name": "Mitrahsoft"
    }
  },
  "paths": {
    "/addresses/{addressId}": {
      "patch": {
        "x-controller-name": "AddressController",
        "x-operation-name": "updateAddress",
        "tags": [
          "AddressController"
        ],
        "responses": {
          "200": {
            "description": "Address updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddressDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "addressId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAddressDto"
              }
            }
          },
          "description": "Update address",
          "x-parameter-index": 1
        },
        "operationId": "AddressController.updateAddress"
      },
      "get": {
        "x-controller-name": "AddressController",
        "x-operation-name": "getAddress",
        "tags": [
          "AddressController"
        ],
        "responses": {
          "200": {
            "description": "Address details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddressDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "addressId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "AddressController.getAddress"
      },
      "delete": {
        "x-controller-name": "AddressController",
        "x-operation-name": "deleteAddress",
        "tags": [
          "AddressController"
        ],
        "responses": {
          "200": {
            "description": "Address deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteAddressResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "addressId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "AddressController.deleteAddress"
      }
    },
    "/addresses": {
      "post": {
        "x-controller-name": "AddressController",
        "x-operation-name": "createAddress",
        "tags": [
          "AddressController"
        ],
        "responses": {
          "200": {
            "description": "Address created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddressDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAddressDto"
              }
            }
          },
          "required": true,
          "description": "Create address"
        },
        "operationId": "AddressController.createAddress"
      },
      "get": {
        "x-controller-name": "AddressController",
        "x-operation-name": "getAddresses",
        "tags": [
          "AddressController"
        ],
        "responses": {
          "200": {
            "description": "Array of addresses",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AddressDto"
                  }
                }
              }
            }
          }
        },
        "operationId": "AddressController.getAddresses"
      }
    },
    "/admin/affiliates/{id}/active": {
      "patch": {
        "x-controller-name": "AdminAffiliatesController",
        "x-operation-name": "toggleActive",
        "tags": [
          "AdminAffiliatesController"
        ],
        "responses": {
          "200": {
            "description": "Affiliate active status toggled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "AdminAffiliatesController.toggleActive"
      }
    },
    "/admin/affiliates/{id}": {
      "patch": {
        "x-controller-name": "AdminAffiliatesController",
        "x-operation-name": "update",
        "tags": [
          "AdminAffiliatesController"
        ],
        "responses": {
          "200": {
            "description": "Affiliate updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateAffiliateDto"
              }
            }
          },
          "required": true,
          "description": "Affiliate update data",
          "x-parameter-index": 1
        },
        "operationId": "AdminAffiliatesController.update"
      },
      "delete": {
        "x-controller-name": "AdminAffiliatesController",
        "x-operation-name": "delete",
        "tags": [
          "AdminAffiliatesController"
        ],
        "responses": {
          "200": {
            "description": "Affiliate deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "AdminAffiliatesController.delete"
      }
    },
    "/admin/affiliates": {
      "post": {
        "x-controller-name": "AdminAffiliatesController",
        "x-operation-name": "create",
        "tags": [
          "AdminAffiliatesController"
        ],
        "responses": {
          "200": {
            "description": "Affiliate created",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateAffiliateDto"
              }
            }
          },
          "required": true,
          "description": "Affiliate data"
        },
        "operationId": "AdminAffiliatesController.create"
      },
      "get": {
        "x-controller-name": "AdminAffiliatesController",
        "x-operation-name": "list",
        "tags": [
          "AdminAffiliatesController"
        ],
        "responses": {
          "200": {
            "description": "List of affiliates including inactive",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminAffiliateListResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "AdminAffiliatesController.list"
      }
    },
    "/admin/bookings/{id}/cancel": {
      "post": {
        "x-controller-name": "AdminBookingsController",
        "x-operation-name": "cancel",
        "tags": [
          "AdminBookingsController"
        ],
        "responses": {
          "200": {
            "description": "Booking cancelled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCancelBookingRequestDto"
              }
            }
          },
          "required": true,
          "description": "Cancellation details",
          "x-parameter-index": 1
        },
        "operationId": "AdminBookingsController.cancel"
      }
    },
    "/admin/bookings/{id}/cancellation-quote": {
      "get": {
        "x-controller-name": "AdminBookingsController",
        "x-operation-name": "getCancellationQuote",
        "tags": [
          "AdminBookingsController"
        ],
        "responses": {
          "200": {
            "description": "Cancellation quote",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "AdminBookingsController.getCancellationQuote"
      }
    },
    "/admin/bookings/{id}": {
      "get": {
        "x-controller-name": "AdminBookingsController",
        "x-operation-name": "getById",
        "tags": [
          "AdminBookingsController"
        ],
        "responses": {
          "200": {
            "description": "Booking detail",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "AdminBookingsController.getById"
      }
    },
    "/admin/bookings": {
      "get": {
        "x-controller-name": "AdminBookingsController",
        "x-operation-name": "list",
        "tags": [
          "AdminBookingsController"
        ],
        "responses": {
          "200": {
            "description": "List of bookings",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminBookingListResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentStatus",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDateFrom",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "startDateTo",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "AdminBookingsController.list"
      }
    },
    "/admin/caregivers/{userId}/kyc-status": {
      "patch": {
        "x-controller-name": "AdminUsersController",
        "x-operation-name": "updateKycStatus",
        "tags": [
          "AdminUsersController"
        ],
        "responses": {
          "200": {
            "description": "KYC status updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateKycStatusDto"
              }
            }
          },
          "required": true,
          "description": "KYC status",
          "x-parameter-index": 1
        },
        "operationId": "AdminUsersController.updateKycStatus"
      }
    },
    "/admin/change-password": {
      "post": {
        "x-controller-name": "AdminAuthController",
        "x-operation-name": "changePassword",
        "tags": [
          "AdminAuthController"
        ],
        "responses": {
          "200": {
            "description": "Password changed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminChangePasswordRequestDto"
              }
            }
          },
          "required": true,
          "description": "Current and new password"
        },
        "operationId": "AdminAuthController.changePassword"
      }
    },
    "/admin/dashboard/statistics": {
      "get": {
        "x-controller-name": "AdminDashboardController",
        "x-operation-name": "getStatistics",
        "tags": [
          "AdminDashboardController"
        ],
        "responses": {
          "200": {
            "description": "Dashboard statistics",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "operationId": "AdminDashboardController.getStatistics"
      }
    },
    "/admin/dashboard/total-booking-per-month": {
      "get": {
        "x-controller-name": "AdminDashboardController",
        "x-operation-name": "getTotalBookingPerMonth",
        "tags": [
          "AdminDashboardController"
        ],
        "responses": {
          "200": {
            "description": "Total bookings per month",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "operationId": "AdminDashboardController.getTotalBookingPerMonth"
      }
    },
    "/admin/dashboard/total-booking-per-service-type": {
      "get": {
        "x-controller-name": "AdminDashboardController",
        "x-operation-name": "getTotalBookingPerServiceType",
        "tags": [
          "AdminDashboardController"
        ],
        "responses": {
          "200": {
            "description": "Total bookings per service type",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "operationId": "AdminDashboardController.getTotalBookingPerServiceType"
      }
    },
    "/admin/dashboard/total-pet-per-pet-type": {
      "get": {
        "x-controller-name": "AdminDashboardController",
        "x-operation-name": "getTotalPetPerPetType",
        "tags": [
          "AdminDashboardController"
        ],
        "responses": {
          "200": {
            "description": "Total pets per pet type",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "operationId": "AdminDashboardController.getTotalPetPerPetType"
      }
    },
    "/admin/dashboard/total-sales": {
      "get": {
        "x-controller-name": "AdminDashboardController",
        "x-operation-name": "getTotalSales",
        "tags": [
          "AdminDashboardController"
        ],
        "responses": {
          "200": {
            "description": "Total sales",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "operationId": "AdminDashboardController.getTotalSales"
      }
    },
    "/admin/dashboard/total-sales-per-month": {
      "get": {
        "x-controller-name": "AdminDashboardController",
        "x-operation-name": "getTotalSalesPerMonth",
        "tags": [
          "AdminDashboardController"
        ],
        "responses": {
          "200": {
            "description": "Total sales per month",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "operationId": "AdminDashboardController.getTotalSalesPerMonth"
      }
    },
    "/admin/login": {
      "post": {
        "x-controller-name": "AdminAuthController",
        "x-operation-name": "adminLogin",
        "tags": [
          "AdminAuthController"
        ],
        "responses": {
          "200": {
            "description": "Admin JWT Token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminLoginResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminLoginRequestDto"
              }
            }
          },
          "required": true,
          "description": "Admin email and password"
        },
        "operationId": "AdminAuthController.adminLogin"
      }
    },
    "/admin/me": {
      "get": {
        "x-controller-name": "AdminAuthController",
        "x-operation-name": "getMe",
        "tags": [
          "AdminAuthController"
        ],
        "responses": {
          "200": {
            "description": "Current admin user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminLoginResponseDto"
                }
              }
            }
          }
        },
        "operationId": "AdminAuthController.getMe"
      }
    },
    "/admin/promo-codes/{id}/disable": {
      "patch": {
        "x-controller-name": "AdminPromoCodesController",
        "x-operation-name": "toggleDisable",
        "tags": [
          "AdminPromoCodesController"
        ],
        "responses": {
          "200": {
            "description": "Promo code disabled status toggled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "AdminPromoCodesController.toggleDisable"
      }
    },
    "/admin/promo-codes/{id}": {
      "delete": {
        "x-controller-name": "AdminPromoCodesController",
        "x-operation-name": "delete",
        "tags": [
          "AdminPromoCodesController"
        ],
        "responses": {
          "200": {
            "description": "Promo code deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "AdminPromoCodesController.delete"
      }
    },
    "/admin/promo-codes": {
      "post": {
        "x-controller-name": "AdminPromoCodesController",
        "x-operation-name": "create",
        "tags": [
          "AdminPromoCodesController"
        ],
        "responses": {
          "200": {
            "description": "Promo code created",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreatePromoCodeDto"
              }
            }
          },
          "required": true,
          "description": "Promo code data"
        },
        "operationId": "AdminPromoCodesController.create"
      },
      "get": {
        "x-controller-name": "AdminPromoCodesController",
        "x-operation-name": "list",
        "tags": [
          "AdminPromoCodesController"
        ],
        "responses": {
          "200": {
            "description": "List of promo codes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPromoCodeListResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "AdminPromoCodesController.list"
      }
    },
    "/admin/service-types/{id}/disabled": {
      "patch": {
        "x-controller-name": "AdminServiceTypesController",
        "x-operation-name": "toggleDisabled",
        "tags": [
          "AdminServiceTypesController"
        ],
        "responses": {
          "200": {
            "description": "Service type disabled status toggled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "AdminServiceTypesController.toggleDisabled"
      }
    },
    "/admin/service-types/{id}": {
      "patch": {
        "x-controller-name": "AdminServiceTypesController",
        "x-operation-name": "update",
        "tags": [
          "AdminServiceTypesController"
        ],
        "responses": {
          "200": {
            "description": "Service type updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateServiceTypeDto"
              }
            }
          },
          "required": true,
          "description": "Service type update data",
          "x-parameter-index": 1
        },
        "operationId": "AdminServiceTypesController.update"
      }
    },
    "/admin/service-types": {
      "get": {
        "x-controller-name": "AdminServiceTypesController",
        "x-operation-name": "list",
        "tags": [
          "AdminServiceTypesController"
        ],
        "responses": {
          "200": {
            "description": "List of service types including disabled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminServiceTypeListResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "includeDisabled",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "AdminServiceTypesController.list"
      }
    },
    "/admin/users/{userId}/disabled": {
      "patch": {
        "x-controller-name": "AdminUsersController",
        "x-operation-name": "toggleDisabled",
        "tags": [
          "AdminUsersController"
        ],
        "responses": {
          "200": {
            "description": "User disabled status toggled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "AdminUsersController.toggleDisabled"
      }
    },
    "/admin/users/{userId}": {
      "get": {
        "x-controller-name": "AdminUsersController",
        "x-operation-name": "getById",
        "tags": [
          "AdminUsersController"
        ],
        "responses": {
          "200": {
            "description": "User detail",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "AdminUsersController.getById"
      },
      "delete": {
        "x-controller-name": "AdminUsersController",
        "x-operation-name": "softDelete",
        "tags": [
          "AdminUsersController"
        ],
        "responses": {
          "200": {
            "description": "User soft deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "AdminUsersController.softDelete"
      }
    },
    "/admin/users": {
      "get": {
        "x-controller-name": "AdminUsersController",
        "x-operation-name": "list",
        "tags": [
          "AdminUsersController"
        ],
        "responses": {
          "200": {
            "description": "List of users",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminUserListResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "role",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "AdminUsersController.list"
      }
    },
    "/affiliates": {
      "get": {
        "x-controller-name": "AffiliateController",
        "x-operation-name": "getActiveAffiliates",
        "tags": [
          "AffiliateController"
        ],
        "responses": {
          "200": {
            "description": "Get active affiliates",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AffiliateDto"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "items": {
                  "type": "string"
                },
                "description": "Order by fields (e.g., [\"sortOrder ASC\", \"name DESC\"])"
              }
            }
          }
        ],
        "operationId": "AffiliateController.getActiveAffiliates"
      }
    },
    "/auth/add-password": {
      "patch": {
        "x-controller-name": "AuthController",
        "x-operation-name": "addPassword",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthAddPasswordRequestDto"
              }
            }
          },
          "description": "Add password"
        },
        "operationId": "AuthController.addPassword"
      }
    },
    "/auth/caregivers/signup": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "signUpCaregiver",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthCaregiverSignupRequestDto"
              }
            }
          },
          "description": "Signup caregiver"
        },
        "operationId": "AuthController.signUpCaregiver"
      }
    },
    "/auth/change-email": {
      "patch": {
        "x-controller-name": "AuthController",
        "x-operation-name": "updateEmail",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthChangeEmailRequestDto"
              }
            }
          },
          "description": "Change email"
        },
        "operationId": "AuthController.updateEmail"
      }
    },
    "/auth/change-password": {
      "patch": {
        "x-controller-name": "AuthController",
        "x-operation-name": "changePassword",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthChangePasswordRequestDto"
              }
            }
          },
          "description": "Change password"
        },
        "operationId": "AuthController.changePassword"
      }
    },
    "/auth/check-exists": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "checkExists",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthCheckExistsRequestDto"
              }
            }
          },
          "description": "Check exists"
        },
        "operationId": "AuthController.checkExists"
      }
    },
    "/auth/deactivate-account": {
      "patch": {
        "x-controller-name": "AuthController",
        "x-operation-name": "deleteCaregiverAccount",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthDeactivateAccountRequestDto"
              }
            }
          },
          "description": "Deactivate account (requires OTP verification)"
        },
        "operationId": "AuthController.deleteCaregiverAccount"
      }
    },
    "/auth/logout": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "logout",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LooseObjectDto"
              }
            }
          }
        },
        "operationId": "AuthController.logout"
      }
    },
    "/auth/pet-owners/signup": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "signUpPetOwner",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthPetOwnerSignupRequestDto"
              }
            }
          },
          "description": "Signup pet owner"
        },
        "operationId": "AuthController.signUpPetOwner"
      }
    },
    "/auth/reset-password": {
      "patch": {
        "x-controller-name": "AuthController",
        "x-operation-name": "resetPassword",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthResetPasswordRequestDto"
              }
            }
          },
          "description": "Reset password"
        },
        "operationId": "AuthController.resetPassword"
      }
    },
    "/auth/send-otp": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "sendOtp",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthSendOtpRequestDto"
              }
            }
          },
          "description": "Email to send OTP"
        },
        "operationId": "AuthController.sendOtp"
      }
    },
    "/auth/sso": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "ssoLogin",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthSsoLoginRequestDto"
              }
            }
          },
          "description": "SSO login"
        },
        "operationId": "AuthController.ssoLogin"
      }
    },
    "/auth/user": {
      "get": {
        "x-controller-name": "AuthController",
        "x-operation-name": "findUser",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "operationId": "AuthController.findUser"
      }
    },
    "/auth/verify-otp": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "verifyOTP",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthVerifyOtpRequestDto"
              }
            }
          },
          "description": "Verify OTP"
        },
        "operationId": "AuthController.verifyOTP"
      }
    },
    "/background-verifications/fee": {
      "get": {
        "x-controller-name": "BackgroundVerificationController",
        "x-operation-name": "getBackgroundVerificationFee",
        "tags": [
          "BackgroundVerificationController"
        ],
        "responses": {},
        "parameters": [
          {
            "name": "promoCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "BackgroundVerificationController.getBackgroundVerificationFee"
      }
    },
    "/background-verifications/payment": {
      "post": {
        "x-controller-name": "BackgroundVerificationController",
        "x-operation-name": "createPaymentIntentForBackgroundVerificationV2",
        "tags": [
          "BackgroundVerificationController"
        ],
        "responses": {
          "200": {
            "description": "Create Payment Intent for background verification",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundVerificationPaymentResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BackgroundVerificationPaymentRequestDto"
              }
            }
          }
        },
        "operationId": "BackgroundVerificationController.createPaymentIntentForBackgroundVerificationV2"
      }
    },
    "/background-verifications/start": {
      "post": {
        "x-controller-name": "BackgroundVerificationController",
        "x-operation-name": "startBackgroundVerification",
        "tags": [
          "BackgroundVerificationController"
        ],
        "responses": {
          "200": {
            "description": "Start background verification",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundVerificationStartResponseDto"
                }
              }
            }
          }
        },
        "operationId": "BackgroundVerificationController.startBackgroundVerification"
      }
    },
    "/background-verifications/status": {
      "get": {
        "x-controller-name": "BackgroundVerificationController",
        "x-operation-name": "getBackgroundVerificationStatus",
        "tags": [
          "BackgroundVerificationController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundVerificationStatusResponseDto"
                }
              }
            }
          }
        },
        "operationId": "BackgroundVerificationController.getBackgroundVerificationStatus"
      }
    },
    "/background-verifications": {
      "post": {
        "x-controller-name": "BackgroundVerificationController",
        "x-operation-name": "upsertBackgroundVerification",
        "tags": [
          "BackgroundVerificationController"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BackgroundVerificationUpsertRequestDto"
              }
            }
          }
        },
        "operationId": "BackgroundVerificationController.upsertBackgroundVerification"
      }
    },
    "/balance/caregiver": {
      "get": {
        "x-controller-name": "PaymentController",
        "x-operation-name": "getBalance",
        "tags": [
          "PaymentController"
        ],
        "responses": {
          "200": {
            "description": "Get Balance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetBalanceResponseDto"
                }
              }
            }
          }
        },
        "operationId": "PaymentController.getBalance"
      }
    },
    "/bookings/amount": {
      "get": {
        "x-controller-name": "BookingController",
        "x-operation-name": "getBookingAmount",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "caregiverId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": true
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "serviceTypeId",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "promoCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pickupLat",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pickupLng",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "dropoffLat",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "dropoffLng",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "BookingController.getBookingAmount"
      }
    },
    "/bookings/cancelled-or-failed-payment": {
      "post": {
        "x-controller-name": "BookingController",
        "x-operation-name": "cancelledOrFailedPayment",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BookingCancelledOrFailedPaymentRequestDto"
              }
            }
          }
        },
        "operationId": "BookingController.cancelledOrFailedPayment"
      }
    },
    "/bookings/open-shifts": {
      "get": {
        "x-controller-name": "BookingController",
        "x-operation-name": "findOpenShiftBookings",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LooseObjectDto"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "BookingController.findOpenShiftBookings"
      }
    },
    "/bookings/upcoming": {
      "get": {
        "x-controller-name": "BookingController",
        "x-operation-name": "getUpcomingBookings",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "operationId": "BookingController.getUpcomingBookings"
      }
    },
    "/bookings/{bookingId}/cancel": {
      "post": {
        "x-controller-name": "BookingController",
        "x-operation-name": "cancelBooking",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelBookingDto"
              }
            }
          },
          "description": "Cancel booking with optional waiver",
          "x-parameter-index": 1
        },
        "operationId": "BookingController.cancelBooking"
      }
    },
    "/bookings/{bookingId}/cancellation-quote": {
      "get": {
        "x-controller-name": "BookingController",
        "x-operation-name": "getCancellationQuote",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "BookingController.getCancellationQuote"
      }
    },
    "/bookings/{bookingId}/no-show": {
      "post": {
        "x-controller-name": "BookingController",
        "x-operation-name": "markNoShow",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "BookingController.markNoShow"
      }
    },
    "/bookings/{bookingId}/on-my-way": {
      "post": {
        "x-controller-name": "BookingController",
        "x-operation-name": "setOnMyWay",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "BookingController.setOnMyWay"
      }
    },
    "/bookings/{bookingId}/set-status": {
      "patch": {
        "x-controller-name": "BookingController",
        "x-operation-name": "setBookingStatus",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBookingStatusDto"
              }
            }
          },
          "description": "Set booking status",
          "x-parameter-index": 1
        },
        "operationId": "BookingController.setBookingStatus"
      }
    },
    "/bookings/{bookingId}/tracking-logs": {
      "get": {
        "x-controller-name": "BookingController",
        "x-operation-name": "getBookingTrackingLogs",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LooseObjectDto"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "BookingController.getBookingTrackingLogs"
      }
    },
    "/bookings/{bookingId}": {
      "get": {
        "x-controller-name": "BookingController",
        "x-operation-name": "getBooking",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "BookingController.getBooking"
      }
    },
    "/bookings": {
      "post": {
        "x-controller-name": "BookingController",
        "x-operation-name": "createBooking",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBookingDto"
              }
            }
          },
          "description": "Create booking"
        },
        "operationId": "BookingController.createBooking"
      },
      "get": {
        "x-controller-name": "BookingController",
        "x-operation-name": "getBookings",
        "tags": [
          "BookingController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "items": {
                  "type": "string"
                }
              }
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "items": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "accepted",
                    "rejected",
                    "cancelled",
                    "in_progress",
                    "completed",
                    "expired"
                  ]
                }
              }
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "operationId": "BookingController.getBookings"
      }
    },
    "/calendars/events": {
      "get": {
        "x-controller-name": "CalendarController",
        "x-operation-name": "findCalendarEvents",
        "tags": [
          "CalendarController"
        ],
        "responses": {
          "200": {
            "description": "Calendar events for caregiver or pet owner",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalendarEventDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "month",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true
          },
          {
            "name": "year",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "required": true
          }
        ],
        "operationId": "CalendarController.findCalendarEvents"
      }
    },
    "/caregivers/auto-debit/{status}": {
      "patch": {
        "x-controller-name": "CaregiversController",
        "x-operation-name": "updateAutoDebit",
        "tags": [
          "CaregiversController"
        ],
        "responses": {
          "200": {
            "description": "Auto Debit Update Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "status",
            "in": "path",
            "schema": {
              "type": "boolean"
            },
            "required": true
          }
        ],
        "operationId": "CaregiversController.updateAutoDebit"
      }
    },
    "/caregivers/availability": {
      "patch": {
        "x-controller-name": "CaregiverController",
        "x-operation-name": "updateAvailability",
        "tags": [
          "CaregiverController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaregiverUpdateAvailabilityRequestDto"
              }
            }
          }
        },
        "operationId": "CaregiverController.updateAvailability"
      }
    },
    "/caregivers/bookings": {
      "get": {
        "x-controller-name": "CaregiversBookingsController",
        "x-operation-name": "findForCaregiver",
        "tags": [
          "CaregiversBookingsController"
        ],
        "responses": {
          "200": {
            "description": "Caregiver's Bookings",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CaregiverBookingListItemDto"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "items": {
                  "type": "string",
                  "enum": [
                    "cancelled",
                    "rejected",
                    "booked",
                    "inprogress",
                    "completed",
                    "expired",
                    "accepted"
                  ]
                },
                "description": "Filter bookings by their statuses. Only accepts valid status enums."
              }
            }
          }
        ],
        "operationId": "CaregiversBookingsController.findForCaregiver"
      }
    },
    "/caregivers/earnings": {
      "get": {
        "x-controller-name": "CaregiverController",
        "x-operation-name": "getEarnings",
        "tags": [
          "CaregiverController"
        ],
        "responses": {},
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "operationId": "CaregiverController.getEarnings"
      }
    },
    "/caregivers/favorites/pets": {
      "get": {
        "x-controller-name": "CaregiversFavoritedPetsController",
        "x-operation-name": "find",
        "tags": [
          "CaregiversFavoritedPetsController"
        ],
        "responses": {
          "200": {
            "description": "List of favorited pets",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PetDto"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "CaregiversFavoritedPetsController.find"
      }
    },
    "/caregivers/galleries": {
      "post": {
        "x-controller-name": "CaregiversGalleryController",
        "x-operation-name": "create",
        "tags": [
          "CaregiversGalleryController"
        ],
        "responses": {
          "200": {
            "description": "Post Caregiver's Gallery",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaregiverGalleryCreateResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Upload the image in gallery"
        },
        "operationId": "CaregiversGalleryController.create"
      }
    },
    "/caregivers/login": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "caregiverLogin",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "JWT Token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthLoginResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthLoginRequestDto"
              }
            }
          },
          "required": true,
          "description": "Username (can be email too) and password"
        },
        "operationId": "AuthController.caregiverLogin"
      }
    },
    "/caregivers/online": {
      "patch": {
        "x-controller-name": "CaregiverController",
        "x-operation-name": "setOnline",
        "tags": [
          "CaregiverController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaregiverSetOnlineRequestDto"
              }
            }
          }
        },
        "operationId": "CaregiverController.setOnline"
      }
    },
    "/caregivers/payouts": {
      "get": {
        "x-controller-name": "PaymentController",
        "x-operation-name": "getPayouts",
        "tags": [
          "PaymentController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "operationId": "PaymentController.getPayouts"
      }
    },
    "/caregivers/pets/{petId}/favorites": {
      "post": {
        "x-controller-name": "CaregiversFavoritePetsController",
        "x-operation-name": "createV2",
        "tags": [
          "CaregiversFavoritePetsController"
        ],
        "responses": {
          "200": {
            "description": "Caregiver's favorite added",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "petId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaregiverPetFavoriteRequestDto"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "CaregiversFavoritePetsController.createV2"
      }
    },
    "/caregivers/pets/{petId}": {
      "get": {
        "x-controller-name": "PetsController",
        "x-operation-name": "findByIdForCaregiversV2",
        "tags": [
          "PetsController"
        ],
        "responses": {
          "200": {
            "description": "Pet info",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PetCaregiverDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "petId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "PetsController.findByIdForCaregiversV2"
      }
    },
    "/caregivers/service-area": {
      "patch": {
        "x-controller-name": "CaregiverController",
        "x-operation-name": "setServiceArea",
        "tags": [
          "CaregiverController"
        ],
        "responses": {},
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaregiverSetServiceAreaRequestDto"
              }
            }
          }
        },
        "operationId": "CaregiverController.setServiceArea"
      }
    },
    "/caregivers/services": {
      "patch": {
        "x-controller-name": "CaregiverController",
        "x-operation-name": "updateServices",
        "tags": [
          "CaregiverController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaregiverUpdateServicesRequestDto"
              }
            }
          },
          "description": "Update services"
        },
        "operationId": "CaregiverController.updateServices"
      }
    },
    "/caregivers/{id}/galleries": {
      "get": {
        "x-controller-name": "CaregiversGalleryController",
        "x-operation-name": "find",
        "tags": [
          "CaregiversGalleryController"
        ],
        "responses": {
          "200": {
            "description": "Caregiver's Gallery",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CaregiverGalleryItemDto"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "CaregiversGalleryController.find"
      }
    },
    "/caregivers/{userId}/reviews": {
      "get": {
        "x-controller-name": "CaregiverController",
        "x-operation-name": "getCaregiverReviews",
        "tags": [
          "CaregiverController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "operationId": "CaregiverController.getCaregiverReviews"
      }
    },
    "/caregivers/{userId}/time-availability": {
      "get": {
        "x-controller-name": "CaregiverController",
        "x-operation-name": "getCaregiverTimeAvailability",
        "tags": [
          "CaregiverController"
        ],
        "responses": {},
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          },
          {
            "name": "date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "operationId": "CaregiverController.getCaregiverTimeAvailability"
      }
    },
    "/caregivers/{userId}": {
      "get": {
        "x-controller-name": "CaregiverController",
        "x-operation-name": "getCaregiver",
        "tags": [
          "CaregiverController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          },
          {
            "name": "lng",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "lat",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "CaregiverController.getCaregiver"
      }
    },
    "/caregivers": {
      "patch": {
        "x-controller-name": "CaregiversController",
        "x-operation-name": "update",
        "tags": [
          "CaregiversController"
        ],
        "responses": {
          "200": {
            "description": "Update Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaregiverUpdateRequestDto"
              }
            }
          },
          "description": "To update caregiver"
        },
        "operationId": "CaregiversController.update"
      },
      "get": {
        "x-controller-name": "CaregiverController",
        "x-operation-name": "getList",
        "tags": [
          "CaregiverController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "radius",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "lng",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "lat",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "price",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "starrating",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "isOnline",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "items": {
                  "type": "string"
                }
              }
            }
          },
          {
            "name": "caregiverPreferenceIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          {
            "name": "caregiverSkillIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          {
            "name": "serviceTypeIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          {
            "name": "petTypeIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          {
            "name": "transportTypeIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          {
            "name": "homeTypeIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          }
        ],
        "operationId": "CaregiverController.getList"
      }
    },
    "/chat-threads/with/{to}": {
      "get": {
        "x-controller-name": "UsersChatThreadsController",
        "x-operation-name": "findThread",
        "tags": [
          "UsersChatThreadsController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "to",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "UsersChatThreadsController.findThread"
      }
    },
    "/chat-threads/{threadId}/chats": {
      "get": {
        "x-controller-name": "ChatThreadsChatController",
        "x-operation-name": "findChatsV2",
        "tags": [
          "ChatThreadsChatController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LooseObjectDto"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "threadId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "ChatThreadsChatController.findChatsV2"
      }
    },
    "/chat-threads/{threadId}": {
      "get": {
        "x-controller-name": "UsersChatThreadsController",
        "x-operation-name": "findThreadV2",
        "tags": [
          "UsersChatThreadsController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "threadId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "UsersChatThreadsController.findThreadV2"
      }
    },
    "/chat-threads": {
      "get": {
        "x-controller-name": "UsersChatThreadsController",
        "x-operation-name": "findThreadsV2",
        "tags": [
          "UsersChatThreadsController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LooseObjectDto"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "UsersChatThreadsController.findThreadsV2"
      }
    },
    "/form/fields": {
      "get": {
        "x-controller-name": "FormController",
        "x-operation-name": "getFormFields",
        "tags": [
          "FormController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormFieldsResponseDto"
                }
              }
            }
          }
        },
        "operationId": "FormController.getFormFields"
      }
    },
    "/gallery": {
      "delete": {
        "x-controller-name": "CaregiversGalleryController",
        "x-operation-name": "deleteAll",
        "tags": [
          "CaregiversGalleryController"
        ],
        "responses": {
          "204": {
            "description": "Images deleted successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaregiverGalleryDeleteRequestDto"
              }
            }
          },
          "required": true,
          "description": "Delete multiple images from the gallery"
        },
        "operationId": "CaregiversGalleryController.deleteAll"
      }
    },
    "/google/geocode": {
      "get": {
        "x-controller-name": "GeocodeController",
        "x-operation-name": "reverseGeocode",
        "tags": [
          "GeocodeController"
        ],
        "responses": {
          "200": {
            "description": "Return value of GeocodeController.reverseGeocode"
          }
        },
        "parameters": [
          {
            "name": "latlng",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "GeocodeController.reverseGeocode"
      }
    },
    "/google/maps/directions": {
      "get": {
        "x-controller-name": "MapsController",
        "x-operation-name": "getDirections",
        "tags": [
          "MapsController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "origin",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "destination",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "mode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "waypoints",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "MapsController.getDirections"
      }
    },
    "/google/maps/js": {
      "get": {
        "x-controller-name": "MapsController",
        "x-operation-name": "getMapsScript",
        "tags": [
          "MapsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of MapsController.getMapsScript"
          }
        },
        "parameters": [
          {
            "name": "callback",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "libraries",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "MapsController.getMapsScript"
      }
    },
    "/google/places/autocomplete": {
      "post": {
        "x-controller-name": "PlacesController",
        "x-operation-name": "autocomplete",
        "tags": [
          "PlacesController"
        ],
        "responses": {
          "200": {
            "description": "Google Places Autocomplete response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlacesAutocompleteRequestDto"
              }
            }
          },
          "description": "Google Places Autocomplete request body"
        },
        "operationId": "PlacesController.autocomplete"
      }
    },
    "/google/places/details/{place_id}": {
      "get": {
        "x-controller-name": "PlacesController",
        "x-operation-name": "getPlaceDetails",
        "tags": [
          "PlacesController"
        ],
        "responses": {
          "200": {
            "description": "Google Places Details response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LooseObjectDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "place_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "PlacesController.getPlaceDetails"
      }
    },
    "/initiate-background-check": {
      "patch": {
        "x-controller-name": "CaregiversController",
        "x-operation-name": "initiateBackgroundCheckForCaregiver",
        "tags": [
          "CaregiversController"
        ],
        "responses": {
          "204": {
            "description": "Update Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaregiverUpdateRequestDto"
              }
            }
          },
          "description": "To update caregiver"
        },
        "operationId": "CaregiversController.initiateBackgroundCheckForCaregiver"
      }
    },
    "/mirow-app-settings": {
      "get": {
        "x-controller-name": "SettingsController",
        "x-operation-name": "find",
        "tags": [
          "SettingsController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SettingDto"
                  }
                }
              }
            }
          }
        },
        "operationId": "SettingsController.find"
      }
    },
    "/notifications/count": {
      "get": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "count",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "number"
                }
              }
            }
          }
        },
        "operationId": "NotificationController.count"
      }
    },
    "/notifications/enable": {
      "post": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "enableAndDisableNotificationPreference",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationEnableResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationEnableRequestDto"
              }
            }
          },
          "description": "Notification enable info"
        },
        "operationId": "NotificationController.enableAndDisableNotificationPreference"
      }
    },
    "/notifications/{id}": {
      "patch": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "updateById",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationUpdateRequestDto"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "NotificationController.updateById"
      }
    },
    "/notifications": {
      "patch": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "updateAll",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationUpdateAllRequestDto"
              }
            }
          }
        },
        "operationId": "NotificationController.updateAll"
      },
      "get": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "list",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationListResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "operationId": "NotificationController.list"
      }
    },
    "/payment-method/bank/connected-account/{externalAccId}": {
      "delete": {
        "x-controller-name": "PaymentMethodsController",
        "x-operation-name": "deleteBankAccountToAccount",
        "tags": [
          "PaymentMethodsController"
        ],
        "responses": {
          "200": {
            "description": "Delete the Bank Account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletePaymentMethodResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "externalAccId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "PaymentMethodsController.deleteBankAccountToAccount"
      }
    },
    "/payment-method/bank/connected-account": {
      "post": {
        "x-controller-name": "PaymentMethodsController",
        "x-operation-name": "addBankAccountToAccount",
        "tags": [
          "PaymentMethodsController"
        ],
        "responses": {
          "200": {
            "description": "Add the Bank Account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddBankAccountResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddBankAccountRequestDto"
              }
            }
          }
        },
        "operationId": "PaymentMethodsController.addBankAccountToAccount"
      },
      "patch": {
        "x-controller-name": "PaymentMethodsController",
        "x-operation-name": "updateBankAccountToAccount",
        "tags": [
          "PaymentMethodsController"
        ],
        "responses": {
          "200": {
            "description": "Update the Bank Account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateBankAccountResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBankAccountRequestDto"
              }
            }
          }
        },
        "operationId": "PaymentMethodsController.updateBankAccountToAccount"
      }
    },
    "/payment-method/card/customer/{externalCardId}": {
      "delete": {
        "x-controller-name": "PaymentMethodsController",
        "x-operation-name": "deleteCardFromCustomer",
        "tags": [
          "PaymentMethodsController"
        ],
        "responses": {
          "200": {
            "description": "Card successfully removed from customer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletePaymentMethodResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "externalCardId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "PaymentMethodsController.deleteCardFromCustomer"
      }
    },
    "/payment-method/card/customer": {
      "post": {
        "x-controller-name": "PaymentMethodsController",
        "x-operation-name": "addCardToCustomer",
        "tags": [
          "PaymentMethodsController"
        ],
        "responses": {
          "200": {
            "description": "Card successfully added to customer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddCardResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddCardRequestDto"
              }
            }
          },
          "required": true,
          "description": "The ID of the payment method to be added"
        },
        "operationId": "PaymentMethodsController.addCardToCustomer"
      }
    },
    "/payment-method/external-acc/customer": {
      "get": {
        "x-controller-name": "PaymentMethodsController",
        "x-operation-name": "listExternalAccForCustomer",
        "tags": [
          "PaymentMethodsController"
        ],
        "responses": {
          "200": {
            "description": "List of payment methods for the customer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListExternalAccountsResponseDto"
                }
              }
            }
          }
        },
        "operationId": "PaymentMethodsController.listExternalAccForCustomer"
      }
    },
    "/payment-method/external-acc/default/connected-account": {
      "post": {
        "x-controller-name": "PaymentMethodsController",
        "x-operation-name": "setAsDefaultExternalAccById",
        "tags": [
          "PaymentMethodsController"
        ],
        "responses": {
          "200": {
            "description": "Add the Bank Account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SetDefaultExternalAccountResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetDefaultExternalAccountRequestDto"
              }
            }
          }
        },
        "operationId": "PaymentMethodsController.setAsDefaultExternalAccById"
      }
    },
    "/payment-method/external-accounts/connected-account": {
      "get": {
        "x-controller-name": "PaymentMethodsController",
        "x-operation-name": "getExternalAccounts",
        "tags": [
          "PaymentMethodsController"
        ],
        "responses": {
          "200": {
            "description": "External accounts retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListExternalAccountsResponseDto"
                }
              }
            }
          }
        },
        "operationId": "PaymentMethodsController.getExternalAccounts"
      }
    },
    "/payout/caregiver": {
      "post": {
        "x-controller-name": "PaymentController",
        "x-operation-name": "createPayout",
        "tags": [
          "PaymentController"
        ],
        "responses": {
          "200": {
            "description": "Create Payout",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePayoutResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayoutRequestDto"
              }
            }
          }
        },
        "operationId": "PaymentController.createPayout"
      }
    },
    "/ping": {
      "get": {
        "x-controller-name": "PingController",
        "x-operation-name": "ping",
        "tags": [
          "PingController"
        ],
        "responses": {
          "200": {
            "description": "Ping Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PingResponseDto"
                }
              }
            }
          }
        },
        "operationId": "PingController.ping"
      }
    },
    "/reviews": {
      "post": {
        "x-controller-name": "ReviewsController",
        "x-operation-name": "create",
        "tags": [
          "ReviewsController"
        ],
        "responses": {
          "200": {
            "description": "Review submission success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateReviewDto"
              }
            }
          },
          "required": true,
          "description": "Create a review"
        },
        "operationId": "ReviewsController.create"
      }
    },
    "/tip-pay/caregiver": {
      "post": {
        "x-controller-name": "PaymentController",
        "x-operation-name": "createPaymentIntentForTip",
        "tags": [
          "PaymentController"
        ],
        "responses": {
          "200": {
            "description": "Create Payment Intent for tip",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateTipPaymentIntentResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTipPaymentIntentRequestDto"
              }
            }
          }
        },
        "operationId": "PaymentController.createPaymentIntentForTip"
      }
    },
    "/upload/image": {
      "post": {
        "x-controller-name": "FileUploadController",
        "x-operation-name": "uploadImage",
        "tags": [
          "FileUploadController"
        ],
        "responses": {
          "200": {
            "description": "Upload the image",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadFileResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Upload the image (multipart field: image)",
          "required": true
        },
        "operationId": "FileUploadController.uploadImage"
      }
    },
    "/users/auto-debit/{status}": {
      "patch": {
        "x-controller-name": "UsersController",
        "x-operation-name": "updateAutoDebit",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "status",
            "in": "path",
            "schema": {
              "type": "boolean"
            },
            "required": true
          }
        ],
        "operationId": "UsersController.updateAutoDebit"
      }
    },
    "/users/emergency-contact": {
      "put": {
        "x-controller-name": "UsersController",
        "x-operation-name": "upsertEmergencyContact",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Upsert emergency contact for the current user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmergencyContactDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertEmergencyContactRequestDto"
              }
            }
          }
        },
        "operationId": "UsersController.upsertEmergencyContact"
      },
      "get": {
        "x-controller-name": "UsersController",
        "x-operation-name": "getEmergencyContact",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Emergency contact for the current user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmergencyContactDto"
                }
              }
            }
          }
        },
        "operationId": "UsersController.getEmergencyContact"
      }
    },
    "/users/favorites/caregivers": {
      "get": {
        "x-controller-name": "UsersFavoriteCaregiversController",
        "x-operation-name": "findListForUser",
        "tags": [
          "UsersFavoriteCaregiversController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LooseObjectDto"
                  }
                }
              }
            }
          }
        },
        "operationId": "UsersFavoriteCaregiversController.findListForUser"
      }
    },
    "/users/firebase-token": {
      "patch": {
        "x-controller-name": "UsersController",
        "x-operation-name": "updateUserFbToken",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserFirebaseTokenUpdateRequestDto"
              }
            }
          }
        },
        "operationId": "UsersController.updateUserFbToken"
      }
    },
    "/users/location": {
      "patch": {
        "x-controller-name": "UsersController",
        "x-operation-name": "updateUserLocation",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserLocationUpdateRequestDto"
              }
            }
          }
        },
        "operationId": "UsersController.updateUserLocation"
      }
    },
    "/users/login": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "login",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "JWT Token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthLoginResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthLoginRequestDto"
              }
            }
          },
          "required": true,
          "description": "Username (can be email too) and password"
        },
        "operationId": "AuthController.login"
      }
    },
    "/users/pets/{petId}": {
      "patch": {
        "x-controller-name": "UsersPetsController",
        "x-operation-name": "patch",
        "tags": [
          "UsersPetsController"
        ],
        "responses": {
          "200": {
            "description": "Pet info update success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "petId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePetDto"
              }
            }
          },
          "description": "Update an existing pet",
          "x-parameter-index": 1
        },
        "operationId": "UsersPetsController.patch"
      },
      "get": {
        "x-controller-name": "PetsController",
        "x-operation-name": "findByIdForUsers",
        "tags": [
          "PetsController"
        ],
        "responses": {
          "200": {
            "description": "Pet info",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PetOwnerDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "petId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "PetsController.findByIdForUsers"
      },
      "delete": {
        "x-controller-name": "UsersPetsController",
        "x-operation-name": "updateById",
        "tags": [
          "UsersPetsController"
        ],
        "responses": {
          "204": {
            "description": "Pets deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "petId",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "operationId": "UsersPetsController.updateById"
      }
    },
    "/users/pets": {
      "post": {
        "x-controller-name": "UsersPetsController",
        "x-operation-name": "create",
        "tags": [
          "UsersPetsController"
        ],
        "responses": {
          "200": {
            "description": "Pet info",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePetDto"
              }
            }
          },
          "required": true,
          "description": "Create a new pet"
        },
        "operationId": "UsersPetsController.create"
      },
      "get": {
        "x-controller-name": "UsersPetsController",
        "x-operation-name": "findV2",
        "tags": [
          "UsersPetsController"
        ],
        "responses": {
          "200": {
            "description": "List of pets",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PetDto"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "items": {
                  "type": "string"
                }
              }
            }
          },
          {
            "name": "petTypeIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "operationId": "UsersPetsController.findV2"
      }
    },
    "/users": {
      "patch": {
        "x-controller-name": "UsersController",
        "x-operation-name": "updateUser",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRequestDto"
              }
            }
          }
        },
        "operationId": "UsersController.updateUser"
      }
    },
    "/webhook/payment": {
      "post": {
        "x-controller-name": "WebhooksController",
        "x-operation-name": "handlePaymentWebhook",
        "tags": [
          "WebhooksController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WebhooksController.handlePaymentWebhook"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "WebhooksController.handlePaymentWebhook"
      }
    },
    "/webhook/payout": {
      "post": {
        "x-controller-name": "WebhooksController",
        "x-operation-name": "handlePayoutWebhook",
        "tags": [
          "WebhooksController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LooseObjectDto"
              }
            }
          }
        },
        "operationId": "WebhooksController.handlePayoutWebhook"
      }
    },
    "/webhook/refund": {
      "post": {
        "x-controller-name": "WebhooksController",
        "x-operation-name": "refundWebhook",
        "tags": [
          "WebhooksController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResultResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "WebhooksController.refundWebhook"
      }
    },
    "/webhooks/checkr": {
      "post": {
        "x-controller-name": "WebhooksController",
        "x-operation-name": "checkrWebhook",
        "tags": [
          "WebhooksController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResultResponseDto"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LooseObjectDto"
              }
            }
          }
        },
        "operationId": "WebhooksController.checkrWebhook"
      }
    },
    "/": {
      "get": {
        "x-controller-name": "PingController",
        "x-operation-name": "main",
        "tags": [
          "PingController"
        ],
        "responses": {
          "200": {
            "description": "Ping Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PingResponseDto"
                }
              }
            }
          }
        },
        "operationId": "PingController.main"
      }
    }
  },
  "servers": [
    {
      "url": "/"
    }
  ],
  "components": {
    "schemas": {
      "PaymentWebhookDto": {
        "title": "PaymentWebhookDto",
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "data": {
            "type": "object"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "LooseObjectDto": {
        "title": "LooseObjectDto",
        "type": "object",
        "additionalProperties": true
      },
      "PayoutWebhookDto": {
        "title": "PayoutWebhookDto",
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "data": {
            "type": "object"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "WebhookResultResponseDto": {
        "title": "WebhookResultResponseDto",
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CheckrWebhookDto": {
        "title": "CheckrWebhookDto",
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "data": {
            "type": "object"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "EmergencyContactDto": {
        "title": "EmergencyContactDto",
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "relationship": {
            "type": "string"
          }
        },
        "required": [
          "fullName",
          "phone",
          "relationship"
        ],
        "additionalProperties": false
      },
      "UpsertEmergencyContactRequestDto": {
        "title": "UpsertEmergencyContactRequestDto",
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "relationship": {
            "type": "string"
          }
        },
        "required": [
          "fullName",
          "phone",
          "relationship"
        ],
        "additionalProperties": false
      },
      "MessageResponseDto": {
        "title": "MessageResponseDto",
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UpdateUserRequestDto": {
        "title": "UpdateUserRequestDto",
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "profileImage": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UserLocationUpdateRequestDto": {
        "title": "UserLocationUpdateRequestDto",
        "type": "object",
        "properties": {
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          }
        },
        "required": [
          "lat",
          "lng"
        ],
        "additionalProperties": false
      },
      "UserFirebaseTokenUpdateRequestDto": {
        "title": "UserFirebaseTokenUpdateRequestDto",
        "type": "object",
        "properties": {
          "token": {
            "type": "string"
          },
          "sessionId": {
            "type": "string"
          }
        },
        "required": [
          "token",
          "sessionId"
        ],
        "additionalProperties": false
      },
      "SettingDto": {
        "title": "SettingDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "settings": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "display": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateReviewDto": {
        "title": "CreateReviewDto",
        "type": "object",
        "properties": {
          "bookingId": {
            "type": "string",
            "format": "uuid"
          },
          "caregiverId": {
            "type": "string",
            "format": "uuid"
          },
          "serviceTypeId": {
            "type": "number"
          },
          "feedback": {
            "type": "string"
          },
          "starrating": {
            "type": "number",
            "minimum": 1,
            "maximum": 5
          }
        },
        "additionalProperties": false
      },
      "PetDto": {
        "title": "PetDto",
        "type": "object",
        "additionalProperties": false
      },
      "CreateResponseDto": {
        "title": "CreateResponseDto",
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreatePetDto": {
        "title": "CreatePetDto",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "petTypeId": {
            "type": "number"
          },
          "petBreedId": {
            "type": "number"
          },
          "gender": {
            "type": "string"
          },
          "spayedOrNeutered": {
            "type": "string"
          },
          "caregiverNotes": {
            "type": "string"
          },
          "profileImage": {
            "type": "string"
          },
          "petWeightId": {
            "type": "number"
          },
          "dateOfBirth": {
            "type": "string"
          },
          "behaviorWithStrangers": {
            "type": "string"
          },
          "customPetType": {
            "type": "string"
          },
          "petVaccinations": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "name",
          "petTypeId"
        ],
        "additionalProperties": false
      },
      "UpdatePetDto": {
        "title": "UpdatePetDto",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "petTypeId": {
            "type": "number"
          },
          "petBreedId": {
            "type": "number"
          },
          "gender": {
            "type": "string"
          },
          "spayedOrNeutered": {
            "type": "string"
          },
          "caregiverNotes": {
            "type": "string"
          },
          "profileImage": {
            "type": "string"
          },
          "petWeightId": {
            "type": "number"
          },
          "dateOfBirth": {
            "type": "string"
          },
          "behaviorWithStrangers": {
            "type": "string"
          },
          "customPetType": {
            "type": "string"
          },
          "petVaccinations": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "additionalProperties": false
      },
      "PetOwnerDto": {
        "title": "PetOwnerDto",
        "type": "object",
        "properties": {
          "petBreed": {
            "type": "object"
          },
          "petType": {
            "type": "object"
          },
          "petWeight": {
            "type": "object"
          }
        },
        "additionalProperties": false
      },
      "PetCaregiverDto": {
        "title": "PetCaregiverDto",
        "type": "object",
        "properties": {
          "petBreed": {
            "type": "object"
          },
          "petType": {
            "type": "object"
          },
          "petWeight": {
            "type": "object"
          },
          "isFavorite": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GetBalanceResponseDto": {
        "title": "GetBalanceResponseDto",
        "type": "object",
        "properties": {
          "balance": {
            "type": "object"
          },
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreatePayoutResponseDto": {
        "title": "CreatePayoutResponseDto",
        "type": "object",
        "properties": {
          "payout": {
            "type": "object"
          },
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreatePayoutRequestDto": {
        "title": "CreatePayoutRequestDto",
        "type": "object",
        "properties": {
          "amount": {
            "type": "number"
          }
        },
        "required": [
          "amount"
        ],
        "additionalProperties": false
      },
      "CreateTipPaymentIntentResponseDto": {
        "title": "CreateTipPaymentIntentResponseDto",
        "type": "object",
        "properties": {
          "clientSecret": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "ephemeralKey": {
            "type": "string"
          },
          "customerId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateTipPaymentIntentRequestDto": {
        "title": "CreateTipPaymentIntentRequestDto",
        "type": "object",
        "properties": {
          "amount": {
            "type": "number"
          },
          "caregiverId": {
            "type": "string"
          },
          "bookingId": {
            "type": "string"
          }
        },
        "required": [
          "amount",
          "caregiverId",
          "bookingId"
        ],
        "additionalProperties": false
      },
      "ListExternalAccountsResponseDto": {
        "title": "ListExternalAccountsResponseDto",
        "type": "object",
        "properties": {
          "cards": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "bankAccounts": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "additionalProperties": false
      },
      "AddCardResponseDto": {
        "title": "AddCardResponseDto",
        "type": "object",
        "properties": {
          "paymentMethod": {
            "type": "object"
          },
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AddCardRequestDto": {
        "title": "AddCardRequestDto",
        "type": "object",
        "properties": {
          "paymentMethodId": {
            "type": "string"
          },
          "last4": {
            "type": "string"
          }
        },
        "required": [
          "paymentMethodId"
        ],
        "additionalProperties": false
      },
      "DeletePaymentMethodResponseDto": {
        "title": "DeletePaymentMethodResponseDto",
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AddBankAccountResponseDto": {
        "title": "AddBankAccountResponseDto",
        "type": "object",
        "properties": {
          "externalAccount": {
            "type": "object"
          },
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AddBankAccountRequestDto": {
        "title": "AddBankAccountRequestDto",
        "type": "object",
        "properties": {
          "country": {
            "type": "string"
          },
          "accHolderName": {
            "type": "string"
          },
          "routingNumber": {
            "type": "string"
          },
          "accNum": {
            "type": "string"
          }
        },
        "required": [
          "country",
          "accHolderName",
          "routingNumber",
          "accNum"
        ],
        "additionalProperties": false
      },
      "SetDefaultExternalAccountResponseDto": {
        "title": "SetDefaultExternalAccountResponseDto",
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SetDefaultExternalAccountRequestDto": {
        "title": "SetDefaultExternalAccountRequestDto",
        "type": "object",
        "properties": {
          "externalAccId": {
            "type": "string"
          }
        },
        "required": [
          "externalAccId"
        ],
        "additionalProperties": false
      },
      "UpdateBankAccountResponseDto": {
        "title": "UpdateBankAccountResponseDto",
        "type": "object",
        "properties": {
          "externalAccount": {
            "type": "object"
          },
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UpdateBankAccountRequestDto": {
        "title": "UpdateBankAccountRequestDto",
        "type": "object",
        "properties": {
          "country": {
            "type": "string"
          },
          "accHolderName": {
            "type": "string"
          },
          "routingNumber": {
            "type": "string"
          },
          "accNum": {
            "type": "string"
          },
          "externalBankId": {
            "type": "string"
          }
        },
        "required": [
          "country",
          "accHolderName",
          "routingNumber",
          "accNum",
          "externalBankId"
        ],
        "additionalProperties": false
      },
      "NotificationListResponseDto": {
        "title": "NotificationListResponseDto",
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "totalItems": {
            "type": "number"
          },
          "limit": {
            "type": "number"
          },
          "offset": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "NotificationUpdateRequestDto": {
        "title": "NotificationUpdateRequestDto",
        "type": "object",
        "properties": {
          "read": {
            "type": "boolean"
          },
          "cleared": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "NotificationUpdateAllRequestDto": {
        "title": "NotificationUpdateAllRequestDto",
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "read": {
            "type": "boolean"
          },
          "cleared": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "NotificationEnableResponseDto": {
        "title": "NotificationEnableResponseDto",
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NotificationEnableRequestDto": {
        "title": "NotificationEnableRequestDto",
        "type": "object",
        "properties": {
          "notificationPreferenceId": {
            "type": "number"
          },
          "isEnable": {
            "type": "boolean"
          }
        },
        "required": [
          "notificationPreferenceId",
          "isEnable"
        ],
        "additionalProperties": false
      },
      "PlacesAutocompleteRequestDto": {
        "title": "PlacesAutocompleteRequestDto",
        "type": "object",
        "properties": {
          "input": {
            "type": "string"
          },
          "languageCode": {
            "type": "string"
          },
          "sessionToken": {
            "type": "string"
          },
          "includedRegionCodes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "locationBias": {
            "type": "object"
          },
          "locationRestriction": {
            "type": "object"
          },
          "includedPrimaryTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "FormFieldsResponseDto": {
        "title": "FormFieldsResponseDto",
        "type": "object",
        "properties": {
          "serviceTypes": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "transportTypes": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "homeTypes": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "caregiverPreferences": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "caregiverSkills": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "documentTypes": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "groomingTypes": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "trainingTypes": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "walkTypes": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "mealFrequencies": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "petWeights": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "petTypes": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "roomTypes": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "serviceDurations": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "languages": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "settings": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "notificationPreferences": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "additionalProperties": false
      },
      "PingResponseDto": {
        "title": "PingResponseDto",
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "greeting": {
            "type": "string"
          },
          "date": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UploadFileResponseDto": {
        "title": "UploadFileResponseDto",
        "type": "object",
        "properties": {
          "image": {
            "type": "string"
          }
        },
        "required": [
          "image"
        ],
        "additionalProperties": false
      },
      "CaregiverDocumentItemDto": {
        "title": "CaregiverDocumentItemDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "documentTypes": {
            "type": "object"
          }
        },
        "additionalProperties": false
      },
      "CaregiverPreferenceItemDto": {
        "title": "CaregiverPreferenceItemDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "preference": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CaregiverSkillItemDto": {
        "title": "CaregiverSkillItemDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "skill": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PetTypeSummaryDto": {
        "title": "PetTypeSummaryDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ServiceTypeSummaryDto": {
        "title": "ServiceTypeSummaryDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "serviceRate": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "CaregiverProfileResponseDto": {
        "title": "CaregiverProfileResponseDto",
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "acceptanceRadius": {
            "type": "number"
          },
          "experience": {
            "type": "number"
          },
          "averageStarRatings": {
            "type": "number"
          },
          "totalStars": {
            "type": "number"
          },
          "isOnline": {
            "type": "boolean"
          },
          "totalReviews": {
            "type": "number"
          },
          "serviceCompleted": {
            "type": "number"
          },
          "repeatedBookings": {
            "type": "number"
          },
          "timezone": {
            "type": "string"
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "user": {
            "type": "object"
          },
          "documents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CaregiverDocumentItemDto"
            }
          },
          "caregiverPreferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CaregiverPreferenceItemDto"
            }
          },
          "caregiverSkills": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CaregiverSkillItemDto"
            }
          },
          "petTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PetTypeSummaryDto"
            }
          },
          "serviceTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceTypeSummaryDto"
            }
          }
        },
        "additionalProperties": false
      },
      "CaregiverPetTypeExperienceDto": {
        "title": "CaregiverPetTypeExperienceDto",
        "type": "object",
        "properties": {
          "petTypeId": {
            "type": "number"
          },
          "experienceLevel": {
            "type": "string"
          }
        },
        "required": [
          "petTypeId"
        ],
        "additionalProperties": false
      },
      "CaregiverLanguageProficiencyDto": {
        "title": "CaregiverLanguageProficiencyDto",
        "type": "object",
        "properties": {
          "languageId": {
            "type": "number"
          },
          "proficiency": {
            "type": "string"
          }
        },
        "required": [
          "languageId"
        ],
        "additionalProperties": false
      },
      "CaregiverUpdateRequestDto": {
        "title": "CaregiverUpdateRequestDto",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "bioDescription": {
            "type": "string"
          },
          "profileImage": {
            "type": "string"
          },
          "services": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "petTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CaregiverPetTypeExperienceDto"
            }
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CaregiverLanguageProficiencyDto"
            }
          },
          "caregiverPreferences": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "caregiverSkills": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "customPetTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "isPref": {
            "type": "boolean"
          },
          "isSkills": {
            "type": "boolean"
          },
          "homeTypeIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "transportIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "acceptanceRadius": {
            "type": "number"
          },
          "goalAmount": {
            "type": "number"
          },
          "isOnline": {
            "type": "boolean"
          },
          "experience": {
            "type": "number"
          }
        },
        "additionalProperties": true
      },
      "CaregiverGalleryItemDto": {
        "title": "CaregiverGalleryItemDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "CaregiverGalleryCreateResponseDto": {
        "title": "CaregiverGalleryCreateResponseDto",
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CaregiverGalleryDeleteRequestDto": {
        "title": "CaregiverGalleryDeleteRequestDto",
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "ids"
        ],
        "additionalProperties": false
      },
      "CaregiverPetFavoriteRequestDto": {
        "title": "CaregiverPetFavoriteRequestDto",
        "type": "object",
        "properties": {
          "isFavorite": {
            "type": "boolean"
          }
        },
        "required": [
          "isFavorite"
        ],
        "additionalProperties": false
      },
      "PetWithPetTypeDto": {
        "title": "PetWithPetTypeDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "petTypes": {
            "type": "object"
          }
        },
        "additionalProperties": false
      },
      "CaregiverBookingListItemDto": {
        "title": "CaregiverBookingListItemDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "pets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PetWithPetTypeDto"
            }
          },
          "serviceTypes": {
            "type": "object"
          },
          "homeTypes": {
            "type": "object"
          },
          "user": {
            "type": "object"
          }
        },
        "additionalProperties": false
      },
      "CaregiverUpdateServiceItemDto": {
        "title": "CaregiverUpdateServiceItemDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "serviceRate": {
            "type": "number"
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "isActive"
        ],
        "additionalProperties": false
      },
      "CaregiverUpdateServicesRequestDto": {
        "title": "CaregiverUpdateServicesRequestDto",
        "type": "object",
        "properties": {
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CaregiverUpdateServiceItemDto"
            }
          },
          "homeTypeIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "transportIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          }
        },
        "required": [
          "services",
          "homeTypeIds",
          "transportIds"
        ],
        "additionalProperties": false
      },
      "CaregiverSetOnlineRequestDto": {
        "title": "CaregiverSetOnlineRequestDto",
        "type": "object",
        "properties": {
          "isOnline": {
            "type": "boolean"
          }
        },
        "required": [
          "isOnline"
        ],
        "additionalProperties": false
      },
      "CaregiverUpdateAvailabilityRequestDto": {
        "title": "CaregiverUpdateAvailabilityRequestDto",
        "type": "object",
        "properties": {
          "timezone": {
            "type": "string"
          },
          "availability": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "timezone",
          "availability"
        ],
        "additionalProperties": false
      },
      "Date": {},
      "CaregiverSetServiceAreaRequestDto": {
        "title": "CaregiverSetServiceAreaRequestDto",
        "type": "object",
        "properties": {
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "acceptanceRadius": {
            "type": "number"
          }
        },
        "required": [
          "lat",
          "lng",
          "acceptanceRadius"
        ],
        "additionalProperties": false
      },
      "BackgroundVerificationPaymentResponseDto": {
        "title": "BackgroundVerificationPaymentResponseDto",
        "type": "object",
        "properties": {
          "clientSecret": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "paymentIntentId": {
            "type": "string"
          },
          "customerId": {
            "type": "string"
          },
          "isFree": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BackgroundVerificationPaymentRequestDto": {
        "title": "BackgroundVerificationPaymentRequestDto",
        "type": "object",
        "properties": {
          "promoCode": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "BackgroundVerificationStartResponseDto": {
        "title": "BackgroundVerificationStartResponseDto",
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "candidateId": {
            "type": "string"
          },
          "reportId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "BackgroundVerificationUpsertRequestDto": {
        "title": "BackgroundVerificationUpsertRequestDto",
        "type": "object",
        "properties": {
          "ssn": {
            "type": "string"
          },
          "drivingLicense": {
            "type": "string"
          },
          "driverLicenseState": {
            "type": "string"
          },
          "dateOfBirth": {
            "type": "string"
          },
          "customerId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "BackgroundVerificationStatusResponseDto": {
        "title": "BackgroundVerificationStatusResponseDto",
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CalendarEventDto": {
        "title": "CalendarEventDto",
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "description1": {
            "type": "string"
          },
          "description2": {
            "type": "string"
          },
          "start": {
            "type": "string"
          },
          "end": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "booking",
              "vaccination"
            ]
          },
          "metadata": {
            "type": "object"
          }
        },
        "additionalProperties": false
      },
      "CreateBookingDto": {
        "title": "CreateBookingDto",
        "type": "object",
        "properties": {
          "caregiverId": {
            "type": "string"
          },
          "petId": {
            "type": "string"
          },
          "serviceTypeId": {
            "type": "number"
          },
          "startDate": {
            "type": "string"
          },
          "endDate": {
            "type": "string"
          },
          "trainingTypeId": {
            "type": "number"
          },
          "customTrainingType": {
            "type": "string"
          },
          "groomingTypeId": {
            "type": "number"
          },
          "customGroomingType": {
            "type": "string"
          },
          "pickup": {
            "type": "object"
          },
          "dropOff": {
            "type": "object"
          },
          "notes": {
            "type": "string"
          },
          "paymentMethodId": {
            "type": "string"
          },
          "promoCode": {
            "type": "string"
          },
          "needsMedicationHelp": {
            "type": "boolean"
          }
        },
        "required": [
          "caregiverId",
          "petId",
          "serviceTypeId",
          "startDate",
          "paymentMethodId"
        ],
        "additionalProperties": false
      },
      "UpdateBookingStatusDto": {
        "title": "UpdateBookingStatusDto",
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "additionalProperties": false
      },
      "CancelBookingDto": {
        "title": "CancelBookingDto",
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          },
          "waiver": {
            "type": "object"
          }
        },
        "additionalProperties": false
      },
      "BookingCancelledOrFailedPaymentRequestDto": {
        "title": "BookingCancelledOrFailedPaymentRequestDto",
        "type": "object",
        "properties": {
          "paymentIntentId": {
            "type": "string"
          }
        },
        "required": [
          "paymentIntentId"
        ],
        "additionalProperties": false
      },
      "AuthLoginResponseDto": {
        "title": "AuthLoginResponseDto",
        "type": "object",
        "properties": {
          "token": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "activated": {
            "type": "boolean"
          },
          "sessionId": {
            "type": "string"
          },
          "isEnableTwoStepAuthentication": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "AuthLoginRequestDto": {
        "title": "AuthLoginRequestDto",
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "isActivate": {
            "type": "boolean"
          },
          "isVerified": {
            "type": "boolean"
          }
        },
        "required": [
          "username",
          "password"
        ],
        "additionalProperties": false
      },
      "AuthSendOtpRequestDto": {
        "title": "AuthSendOtpRequestDto",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "type",
          "role"
        ],
        "additionalProperties": false
      },
      "AuthVerifyOtpRequestDto": {
        "title": "AuthVerifyOtpRequestDto",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "otp": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "otp"
        ],
        "additionalProperties": false
      },
      "AuthChangePasswordRequestDto": {
        "title": "AuthChangePasswordRequestDto",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "oldPassword": {
            "type": "string"
          },
          "newPassword": {
            "type": "string"
          },
          "otp": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "oldPassword",
          "newPassword",
          "otp"
        ],
        "additionalProperties": false
      },
      "AuthAddPasswordRequestDto": {
        "title": "AuthAddPasswordRequestDto",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "otp": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "password",
          "otp"
        ],
        "additionalProperties": false
      },
      "AuthResetPasswordRequestDto": {
        "title": "AuthResetPasswordRequestDto",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "otp": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "password",
          "role",
          "otp"
        ],
        "additionalProperties": false
      },
      "AuthChangeEmailRequestDto": {
        "title": "AuthChangeEmailRequestDto",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "newEmail": {
            "type": "string"
          },
          "otp": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "newEmail",
          "otp"
        ],
        "additionalProperties": false
      },
      "AuthDeactivateAccountRequestDto": {
        "title": "AuthDeactivateAccountRequestDto",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "otp": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "otp",
          "role"
        ],
        "additionalProperties": false
      },
      "AuthSsoLoginRequestDto": {
        "title": "AuthSsoLoginRequestDto",
        "type": "object",
        "properties": {
          "idToken": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "isActivate": {
            "type": "boolean"
          },
          "socialMedia": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        },
        "required": [
          "socialMedia",
          "role"
        ],
        "additionalProperties": false
      },
      "AuthCaregiverSignupRequestDto": {
        "title": "AuthCaregiverSignupRequestDto",
        "type": "object",
        "properties": {
          "profileImage": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "address": {
            "type": "object"
          },
          "acceptanceRadius": {
            "type": "number"
          },
          "dateOfBirth": {
            "type": "string"
          },
          "bioDescription": {
            "type": "string"
          },
          "services": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "languages": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "transportIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "images": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "profileImage",
          "gender",
          "email",
          "username",
          "firstName",
          "lastName",
          "password",
          "phone",
          "address",
          "acceptanceRadius",
          "dateOfBirth",
          "bioDescription",
          "services",
          "languages",
          "transportIds"
        ],
        "additionalProperties": false
      },
      "AuthPetOwnerSignupRequestDto": {
        "title": "AuthPetOwnerSignupRequestDto",
        "type": "object",
        "properties": {
          "profileImage": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "address": {
            "type": "object"
          },
          "dateOfBirth": {
            "type": "string"
          },
          "bioDescription": {
            "type": "string"
          }
        },
        "required": [
          "gender",
          "email",
          "username",
          "firstName",
          "lastName",
          "password",
          "phone",
          "address",
          "dateOfBirth"
        ],
        "additionalProperties": false
      },
      "AuthCheckExistsRequestDto": {
        "title": "AuthCheckExistsRequestDto",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        },
        "required": [
          "role"
        ],
        "additionalProperties": false
      },
      "AffiliateDto": {
        "title": "AffiliateDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "imageurl": {
            "type": "string"
          },
          "linkurl": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "AdminUserListResponseDto": {
        "title": "AdminUserListResponseDto",
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          },
          "totalCount": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "perPage": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "AdminUpdateKycStatusDto": {
        "title": "AdminUpdateKycStatusDto",
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "additionalProperties": false
      },
      "AdminPromoCodeListResponseDto": {
        "title": "AdminPromoCodeListResponseDto",
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PromoCode"
            }
          },
          "totalCount": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "perPage": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "AdminCreatePromoCodeDto": {
        "title": "AdminCreatePromoCodeDto",
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "percentage": {
            "type": "number"
          },
          "maxUsageCount": {
            "type": "number"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "percentage"
        ],
        "additionalProperties": false
      },
      "AdminServiceTypeListResponseDto": {
        "title": "AdminServiceTypeListResponseDto",
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceType"
            }
          },
          "totalCount": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "perPage": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "AdminUpdateServiceTypeDto": {
        "title": "AdminUpdateServiceTypeDto",
        "type": "object",
        "properties": {
          "display": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "fees": {
            "type": "number"
          },
          "minServiceRate": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "AdminBookingListResponseDto": {
        "title": "AdminBookingListResponseDto",
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Booking"
            }
          },
          "totalCount": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "perPage": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "AdminCancelBookingRequestDto": {
        "title": "AdminCancelBookingRequestDto",
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          },
          "shouldWaiveFee": {
            "type": "boolean"
          },
          "waiveReason": {
            "type": "string"
          }
        },
        "required": [
          "reason"
        ],
        "additionalProperties": false
      },
      "AdminLoginResponseDto": {
        "title": "AdminLoginResponseDto",
        "type": "object",
        "properties": {
          "token": {
            "type": "string"
          },
          "user": {
            "type": "object"
          }
        },
        "additionalProperties": false
      },
      "AdminLoginRequestDto": {
        "title": "AdminLoginRequestDto",
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "isActivate": {
            "type": "boolean"
          }
        },
        "required": [
          "username",
          "password"
        ],
        "additionalProperties": false
      },
      "AdminChangePasswordRequestDto": {
        "title": "AdminChangePasswordRequestDto",
        "type": "object",
        "properties": {
          "currentPassword": {
            "type": "string"
          },
          "newPassword": {
            "type": "string"
          }
        },
        "required": [
          "currentPassword",
          "newPassword"
        ],
        "additionalProperties": false
      },
      "AdminAffiliateListResponseDto": {
        "title": "AdminAffiliateListResponseDto",
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Affiliate"
            }
          },
          "totalCount": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "perPage": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "AdminCreateAffiliateDto": {
        "title": "AdminCreateAffiliateDto",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "linkUrl": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "required": [
          "name",
          "imageUrl",
          "linkUrl"
        ],
        "additionalProperties": false
      },
      "AdminUpdateAffiliateDto": {
        "title": "AdminUpdateAffiliateDto",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "linkUrl": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "AddressDto": {
        "title": "AddressDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "isDefault": {
            "type": "boolean"
          },
          "userId": {
            "type": "string"
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "CreateAddressDto": {
        "title": "CreateAddressDto",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "isDefault": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "address",
          "city",
          "state",
          "country",
          "postalCode"
        ],
        "additionalProperties": false
      },
      "UpdateAddressDto": {
        "title": "UpdateAddressDto",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "isDefault": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DeleteAddressResponseDto": {
        "title": "DeleteAddressResponseDto",
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "jwt": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "jwt": []
    }
  ]
}