{
  "openapi": "3.0.0",
  "paths": {
    "/health": {
      "get": {
        "operationId": "HealthController_check",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "summary": "Health check endpoint for uptime monitoring",
        "tags": [
          "Health"
        ]
      }
    },
    "/auth/login": {
      "post": {
        "operationId": "AuthController_loginUnified",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnifiedLoginDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/auth/login-with-email": {
      "post": {
        "operationId": "AuthController_login",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailLoginDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/auth/login-with-phone": {
      "post": {
        "operationId": "AuthController_loginWithPhone",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PhoneLoginDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/auth/verify-otp": {
      "post": {
        "operationId": "AuthController_verify",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyOtpDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerifyOtpResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/auth/resend-email-otp": {
      "post": {
        "operationId": "AuthController_resendEmailOtp",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailLoginDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/auth/resend-phone-otp": {
      "post": {
        "operationId": "AuthController_resendPhoneOtp",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PhoneLoginDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/auth/signup": {
      "post": {
        "operationId": "AuthController_signup",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignupDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/auth/signup/verify": {
      "post": {
        "operationId": "AuthController_verifySignup",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifySignupDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerifyOtpResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/users/profile": {
      "get": {
        "operationId": "UserController_profile",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserProfileResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "User"
        ]
      },
      "patch": {
        "operationId": "UserController_updateProfile",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOwnProfileDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserProfileResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "User"
        ]
      }
    },
    "/users/lookup": {
      "get": {
        "operationId": "UserController_lookup",
        "parameters": [
          {
            "name": "email",
            "required": false,
            "in": "query",
            "description": "Exact email",
            "schema": {
              "format": "email",
              "example": "user@mail.com",
              "type": "string"
            }
          },
          {
            "name": "contactNumber",
            "required": false,
            "in": "query",
            "description": "Exact 10-digit phone",
            "schema": {
              "pattern": "^\\d{10}$",
              "example": "9876543210",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LookupUserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "User"
        ]
      }
    },
    "/users/super-admins": {
      "get": {
        "operationId": "UserController_findSuperAdmins",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FetchAllUserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "User"
        ]
      },
      "post": {
        "operationId": "UserController_createSuperAdmin",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSuperAdminDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "User"
        ]
      }
    },
    "/users/super-admins/{id}": {
      "patch": {
        "operationId": "UserController_updateSuperAdmin",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "User UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "User"
        ]
      },
      "delete": {
        "operationId": "UserController_removeSuperAdmin",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "User UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "User"
        ]
      }
    },
    "/users": {
      "post": {
        "operationId": "UserController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "User"
        ]
      },
      "get": {
        "operationId": "UserController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FetchAllUserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "User"
        ]
      }
    },
    "/users/{id}": {
      "get": {
        "operationId": "UserController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "User UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "User"
        ]
      },
      "patch": {
        "operationId": "UserController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "User UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "User"
        ]
      },
      "delete": {
        "operationId": "UserController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "User UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "User"
        ]
      }
    },
    "/projects": {
      "post": {
        "operationId": "ProjectsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      },
      "get": {
        "operationId": "ProjectsController_findAll",
        "parameters": [
          {
            "name": "disease",
            "required": false,
            "in": "query",
            "schema": {
              "example": "disease UUID",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedProjectResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/statistics": {
      "get": {
        "operationId": "ProjectsController_statistics",
        "parameters": [
          {
            "name": "workspaceId",
            "required": false,
            "in": "query",
            "schema": {
              "example": "workspace UUID",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectStatisticsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/download-csv": {
      "get": {
        "operationId": "ProjectsController_exportProjects",
        "parameters": [
          {
            "name": "disease",
            "required": false,
            "in": "query",
            "schema": {
              "example": "disease UUID",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/details": {
      "post": {
        "operationId": "ProjectsController_getProjectDetails",
        "parameters": [
          {
            "name": "responseType",
            "required": false,
            "in": "query",
            "schema": {
              "enum": [
                "json",
                "csv"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectDetailsRequestDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/team-progress": {
      "get": {
        "operationId": "ProjectsController_getProjectTeamProgress",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortOrder",
            "required": false,
            "in": "query",
            "description": "asc or desc",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "required": false,
            "in": "query",
            "description": "Sort field",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedTeamProgressResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/team-activity-progress": {
      "get": {
        "operationId": "ProjectsController_getProjectTeamActivityProgress",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamActivityProgressResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/team-member-activity": {
      "get": {
        "operationId": "ProjectsController_getProjectTeamMemberActivity",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortOrder",
            "required": false,
            "in": "query",
            "description": "asc or desc",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "required": false,
            "in": "query",
            "description": "Sort field",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-12-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          },
          {
            "name": "diseaseId",
            "required": false,
            "in": "query",
            "schema": {
              "example": "Disease ID",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedTeamMemberActivityResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/team-member-activity/download-csv": {
      "get": {
        "operationId": "ProjectsController_getProjectTeamMemberActivityExport",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortOrder",
            "required": false,
            "in": "query",
            "description": "asc or desc",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "required": false,
            "in": "query",
            "description": "Sort field",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-12-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          },
          {
            "name": "diseaseId",
            "required": false,
            "in": "query",
            "schema": {
              "example": "Disease ID",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/team-member-progress": {
      "get": {
        "operationId": "ProjectsController_getProjectTeamMemberProgress",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortOrder",
            "required": false,
            "in": "query",
            "description": "asc or desc",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "required": false,
            "in": "query",
            "description": "Sort field",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-12-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          },
          {
            "name": "diseaseId",
            "required": false,
            "in": "query",
            "schema": {
              "example": "Disease ID",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedTeamMemberProgressResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/team-member-progress/download-csv": {
      "get": {
        "operationId": "ProjectsController_getProjectTeamMemberProgressExport",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-12-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          },
          {
            "name": "diseaseId",
            "required": false,
            "in": "query",
            "schema": {
              "example": "Disease ID",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/sites-statistics-by-diseases": {
      "get": {
        "operationId": "ProjectsController_findAllSites",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectStatisticByDiseaseResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/sites-statistics-by-status": {
      "get": {
        "operationId": "ProjectsController_getSitesStatisticsByStatus",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "disease",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectStatisticBySiteResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/collectors": {
      "get": {
        "operationId": "ProjectsController_getMembers",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectCollectorsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/team-users": {
      "get": {
        "operationId": "ProjectsController_getProjectTeamUsers",
        "parameters": [
          {
            "name": "projectId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workspaceId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/team-users/roles": {
      "get": {
        "operationId": "ProjectsController_getProjectTeamUserRoles",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/team-users/{memberId}/role": {
      "patch": {
        "operationId": "ProjectsController_updateProjectTeamUserRole",
        "parameters": [
          {
            "name": "memberId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}": {
      "get": {
        "operationId": "ProjectsController_findOne",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Site UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      },
      "patch": {
        "operationId": "ProjectsController_update",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProjectDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/sites": {
      "post": {
        "operationId": "ProjectsController_createSite",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSiteDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create Site",
        "tags": [
          "Projects"
        ]
      },
      "get": {
        "operationId": "ProjectsController_findSites",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "schema": {
              "example": "ABC Site",
              "type": "string"
            }
          },
          {
            "name": "farmType",
            "required": false,
            "in": "query",
            "schema": {
              "example": "poultry farm",
              "type": "string"
            }
          },
          {
            "name": "filterBy",
            "required": false,
            "in": "query",
            "schema": {
              "example": "newest",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-12-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          },
          {
            "name": "siteType",
            "required": false,
            "in": "query",
            "schema": {
              "example": "private",
              "type": "string"
            }
          },
          {
            "name": "disease",
            "required": false,
            "in": "query",
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "name": "testResult",
            "required": false,
            "in": "query",
            "schema": {
              "example": "positive",
              "type": "string"
            }
          },
          {
            "name": "project",
            "required": false,
            "in": "query",
            "schema": {
              "example": "123",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSiteResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/sites/nearby": {
      "get": {
        "operationId": "ProjectsController_getNearbyLocations",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lat",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "lon",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "radius",
            "required": true,
            "in": "query",
            "description": "Radius in meters to search for nearby sites",
            "schema": {
              "example": 1000,
              "type": "number"
            }
          },
          {
            "name": "assignedTo",
            "required": false,
            "in": "query",
            "schema": {
              "example": "true",
              "type": "boolean"
            }
          },
          {
            "name": "farmType",
            "required": false,
            "in": "query",
            "description": "Filter sites by farm type",
            "schema": {
              "example": [
                "poultry farm",
                "cattle farm"
              ],
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "filterBy",
            "required": false,
            "in": "query",
            "description": "Filter the sites by newest or status",
            "schema": {
              "example": "newest",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListNearbySiteResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/sites/{siteId}": {
      "get": {
        "operationId": "ProjectsController_findSite",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "siteId",
            "required": true,
            "in": "path",
            "description": "Site UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      },
      "patch": {
        "operationId": "ProjectsController_updateSite",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "siteId",
            "required": true,
            "in": "path",
            "description": "Site UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSiteDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/visit-summary": {
      "get": {
        "operationId": "ProjectsController_getVisitSummary",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2025-03-21T00:00:00Z",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2025-03-01T00:00:00Z",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitSummaryResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Visit Summary for Site",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/visits/{visitId}": {
      "get": {
        "operationId": "ProjectsController_findById",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visitId",
            "required": true,
            "in": "path",
            "description": "Visit UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "siteId",
            "required": true,
            "in": "path",
            "description": "Site UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      },
      "put": {
        "operationId": "ProjectsController_updateVisit",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visitId",
            "required": true,
            "in": "path",
            "description": "Visit UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateVisitDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/visits": {
      "post": {
        "operationId": "ProjectsController_createVisit",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVisitDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      },
      "get": {
        "operationId": "ProjectsController_getVisits",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "example": 10,
              "type": "number"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "schema": {
              "example": 1,
              "type": "number"
            }
          },
          {
            "name": "visitStatus",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "assignedTo",
            "required": false,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "isCompleted",
            "required": false,
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-12-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          },
          {
            "name": "siteType",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "disease",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "siteId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedVisitResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/visits/{visitId}/reschedule": {
      "patch": {
        "operationId": "ProjectsController_rescheduleVisit",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visitId",
            "required": true,
            "in": "path",
            "description": "Visit UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RescheduleVisitDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/visits/{visitId}/submit-visit": {
      "put": {
        "operationId": "ProjectsController_submitVisit",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visitId",
            "required": true,
            "in": "path",
            "description": "Visit UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitVisitDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmitVisitResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/samples": {
      "post": {
        "operationId": "ProjectsController_createSample",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSampleDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create Sample",
        "tags": [
          "Projects"
        ]
      },
      "get": {
        "operationId": "ProjectsController_findAllSamples",
        "parameters": [
          {
            "name": "round",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "example": 10,
              "type": "number"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "schema": {
              "example": 1,
              "type": "number"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          },
          {
            "name": "sampleStatus",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sampleTypeId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visitId",
            "required": false,
            "in": "query",
            "schema": {
              "example": "visit UUID",
              "type": "string"
            }
          },
          {
            "name": "siteId",
            "required": false,
            "in": "query",
            "schema": {
              "example": "site UUID",
              "type": "string"
            }
          },
          {
            "name": "diseaseId",
            "required": false,
            "in": "query",
            "schema": {
              "example": "disease UUID",
              "type": "string"
            }
          },
          {
            "name": "sortOrder",
            "required": false,
            "in": "query",
            "description": "asc or desc",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "required": false,
            "in": "query",
            "description": "Sort field",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workspaceId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedSampleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/validate-barcode/{barcode}": {
      "get": {
        "operationId": "ProjectsController_validateBarcode",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "barcode",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidateBarcodeMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Validate Barcode",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/samples/{sampleId}/lab-tests": {
      "post": {
        "operationId": "ProjectsController_createLabTest",
        "parameters": [
          {
            "name": "sampleId",
            "required": true,
            "in": "path",
            "description": "Sample UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMultipleLabTestDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLabTestResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      },
      "patch": {
        "operationId": "ProjectsController_updateLabTest",
        "parameters": [
          {
            "name": "sampleId",
            "required": true,
            "in": "path",
            "description": "Sample UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "labTestId",
            "required": true,
            "in": "path",
            "description": "LabTest UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMultipleLabTestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLabTestResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      },
      "get": {
        "operationId": "ProjectsController_getLabTests",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sampleId",
            "required": true,
            "in": "path",
            "description": "Sample UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLabTestResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/samples/{sampleId}/lab-tests/{labTestId}": {
      "get": {
        "operationId": "ProjectsController_getLabTest",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "labTestId",
            "required": true,
            "in": "path",
            "description": "LabTest UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sampleId",
            "required": true,
            "in": "path",
            "description": "Sample UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LabTestResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/samples/max-round": {
      "get": {
        "operationId": "ProjectsController_getMaxRound",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workspaceId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/samples/lab-stats": {
      "get": {
        "operationId": "ProjectsController_getLabTestStats",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-12-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          },
          {
            "name": "workspaceId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleStatLogisticResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/samples/{sampleId}/poolable-samples": {
      "get": {
        "operationId": "ProjectsController_getPoolableSamples",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sampleId",
            "required": true,
            "in": "path",
            "description": "Sample UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get samples that can be pooled with the given sample",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/samples/{sampleId}/edit-details": {
      "post": {
        "operationId": "ProjectsController_editCollectedSampleDetails",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sampleId",
            "required": true,
            "in": "path",
            "description": "Sample UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCollectedSampleDetailsDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Edit collected sample details",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/samples/{sampleId}/edit-details/{stage}": {
      "post": {
        "operationId": "ProjectsController_editSampleDetailsByStage",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sampleId",
            "required": true,
            "in": "path",
            "description": "Sample UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stage",
            "required": true,
            "in": "path",
            "description": "Lab workflow stage: picked-up, received, virus-isolation, pre-processed, extracted, tested, test-report-generated",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSampleStageDetailsDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Edit sample details for a lab workflow stage",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/samples/{sampleId}": {
      "get": {
        "operationId": "ProjectsController_findOneSample",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sampleId",
            "required": true,
            "in": "path",
            "description": "Sample UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      },
      "patch": {
        "operationId": "ProjectsController_updateSample",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sampleId",
            "required": true,
            "in": "path",
            "description": "Sample UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSampleDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/teams/{teamId}/member": {
      "post": {
        "operationId": "ProjectsController_addMember",
        "parameters": [
          {
            "name": "teamId",
            "required": true,
            "in": "path",
            "description": "Team UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMemberDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamMemberResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create Team Member",
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/teams": {
      "post": {
        "operationId": "ProjectsController_createTeam",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTeamDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create Team",
        "tags": [
          "Projects"
        ]
      },
      "get": {
        "operationId": "ProjectsController_findAllTeams",
        "parameters": [
          {
            "name": "projectId",
            "required": false,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTeamResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/members-list": {
      "post": {
        "operationId": "ProjectsController_addMembersList",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMembersListDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamMemberListResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      },
      "delete": {
        "operationId": "ProjectsController_removeMembersList",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamMemberRemoveDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemovedTeamMemberResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/teams/available-roles": {
      "get": {
        "operationId": "ProjectsController_getTeamRoles",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListAvailableRoleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/teams/{teamId}/members": {
      "get": {
        "operationId": "ProjectsController_getTeamMembers",
        "parameters": [
          {
            "name": "teamId",
            "required": true,
            "in": "path",
            "description": "Team UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTeamMemberResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/teams/{teamId}": {
      "get": {
        "operationId": "ProjectsController_findTeam",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "teamId",
            "required": true,
            "in": "path",
            "description": "Team UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      },
      "patch": {
        "operationId": "ProjectsController_updateTeam",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "teamId",
            "required": true,
            "in": "path",
            "description": "Team UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTeamDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/teams/{teamId}/member/{memberId}": {
      "patch": {
        "operationId": "ProjectsController_updateMember",
        "parameters": [
          {
            "name": "memberId",
            "required": true,
            "in": "path",
            "description": "User UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "teamId",
            "required": true,
            "in": "path",
            "description": "Team UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMemberDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamMemberResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      },
      "delete": {
        "operationId": "ProjectsController_removeMember",
        "parameters": [
          {
            "name": "memberId",
            "required": true,
            "in": "path",
            "description": "User UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "teamId",
            "required": true,
            "in": "path",
            "description": "Team UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/teams/{teamId}/members-filed": {
      "get": {
        "operationId": "ProjectsController_getTeamMembersFieldView",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "teamId",
            "required": true,
            "in": "path",
            "description": "Team UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedTeamMemberResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/teams/{teamId}/activity-overview": {
      "get": {
        "operationId": "ProjectsController_getTeamActivityOverview",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "teamId",
            "required": true,
            "in": "path",
            "description": "Team UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-12-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamProgressActivityOverviewResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/{projectId}/teams/{teamId}/visit-activity": {
      "get": {
        "operationId": "ProjectsController_getTeamMembersVisitActivity",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "project UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "teamId",
            "required": true,
            "in": "path",
            "description": "Team UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-12-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamMemberActivityResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/projects/upload-sample-data": {
      "post": {
        "operationId": "ProjectsController_uploadSampleDataScript",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StructuredSiteDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleScriptResponseData"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Projects"
        ]
      }
    },
    "/sites": {
      "get": {
        "operationId": "SitesController_findAll",
        "parameters": [
          {
            "name": "search",
            "required": false,
            "in": "query",
            "schema": {
              "example": "ABC Site",
              "type": "string"
            }
          },
          {
            "name": "farmType",
            "required": false,
            "in": "query",
            "schema": {
              "example": "poultry farm",
              "type": "string"
            }
          },
          {
            "name": "assignedTo",
            "required": false,
            "in": "query",
            "schema": {
              "example": "true",
              "type": "boolean"
            }
          },
          {
            "name": "longitude",
            "required": false,
            "in": "query",
            "description": "Longitude of the location",
            "schema": {
              "example": 78.4867,
              "type": "number"
            }
          },
          {
            "name": "latitude",
            "required": false,
            "in": "query",
            "description": "Latitude of the location",
            "schema": {
              "example": 17.385,
              "type": "number"
            }
          },
          {
            "name": "filterBy",
            "required": false,
            "in": "query",
            "schema": {
              "example": "newest",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-12-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          },
          {
            "name": "siteType",
            "required": false,
            "in": "query",
            "schema": {
              "example": "private",
              "type": "string"
            }
          },
          {
            "name": "disease",
            "required": false,
            "in": "query",
            "schema": {
              "example": "1",
              "type": "string"
            }
          },
          {
            "name": "testResult",
            "required": false,
            "in": "query",
            "schema": {
              "example": "positive",
              "type": "string"
            }
          },
          {
            "name": "project",
            "required": false,
            "in": "query",
            "schema": {
              "example": "123",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSiteResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sites"
        ]
      }
    },
    "/disease": {
      "post": {
        "operationId": "DiseaseController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiseaseDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiseaseResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Disease"
        ]
      },
      "get": {
        "operationId": "DiseaseController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListDiseaseResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Disease"
        ]
      }
    },
    "/disease/{id}": {
      "get": {
        "operationId": "DiseaseController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Disease UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiseaseResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Disease"
        ]
      },
      "patch": {
        "operationId": "DiseaseController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Disease UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiseaseDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiseaseResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Disease"
        ]
      }
    },
    "/invites/workspace": {
      "post": {
        "operationId": "InvitesController_inviteToWorkspace",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWorkspaceInviteDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Invites"
        ]
      }
    },
    "/invites/accept/{inviteToken}": {
      "post": {
        "operationId": "InvitesController_inviteAccept",
        "parameters": [
          {
            "name": "inviteToken",
            "required": true,
            "in": "path",
            "description": "invite token",
            "schema": {
              "example": "inviteToken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "tags": [
          "Invites"
        ]
      }
    },
    "/invites/{inviteToken}": {
      "get": {
        "operationId": "InvitesController_getInviteByToken",
        "parameters": [
          {
            "name": "inviteToken",
            "required": true,
            "in": "path",
            "description": "invite token",
            "schema": {
              "example": "inviteToken",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Invites"
        ]
      }
    },
    "/invites": {
      "get": {
        "operationId": "InvitesController_getInvites",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FetchAllInviteResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Invites"
        ]
      }
    },
    "/roles": {
      "get": {
        "operationId": "RolesController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListRoleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Roles"
        ]
      }
    },
    "/access/{id}": {
      "get": {
        "operationId": "AccessController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Access"
        ]
      },
      "patch": {
        "operationId": "AccessController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAccessDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Access"
        ]
      }
    },
    "/surveillance-type": {
      "post": {
        "operationId": "SurveillanceTypeController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSurveillanceTypeDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SurveillanceTypeResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "SurveillanceType"
        ]
      },
      "get": {
        "operationId": "SurveillanceTypeController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSurveillanceTypeResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "SurveillanceType"
        ]
      }
    },
    "/surveillance-type/{id}": {
      "get": {
        "operationId": "SurveillanceTypeController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Surveillance Type UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SurveillanceTypeResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "SurveillanceType"
        ]
      },
      "patch": {
        "operationId": "SurveillanceTypeController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Surveillance Type UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSurveillanceTypeDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SurveillanceTypeResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "SurveillanceType"
        ]
      }
    },
    "/location": {
      "post": {
        "operationId": "LocationController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLocationDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Location"
        ]
      },
      "get": {
        "operationId": "LocationController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLocationResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Location"
        ]
      }
    },
    "/location/{id}": {
      "get": {
        "operationId": "LocationController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Location UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Location"
        ]
      },
      "patch": {
        "operationId": "LocationController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Location UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLocationDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Location"
        ]
      }
    },
    "/location/import": {
      "post": {
        "operationId": "LocationController_uploadExcelFile",
        "parameters": [],
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLocationResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Location"
        ]
      }
    },
    "/species": {
      "post": {
        "operationId": "SpeciesController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSpeciesDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpeciesResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Create a new species",
        "tags": [
          "species"
        ]
      },
      "get": {
        "operationId": "SpeciesController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSpeciesResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get all active species",
        "tags": [
          "species"
        ]
      }
    },
    "/species/{id}": {
      "get": {
        "operationId": "SpeciesController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpeciesResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get a species by id",
        "tags": [
          "species"
        ]
      },
      "patch": {
        "operationId": "SpeciesController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSpeciesDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpeciesResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Update a species",
        "tags": [
          "species"
        ]
      },
      "delete": {
        "operationId": "SpeciesController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Delete a species",
        "tags": [
          "species"
        ]
      }
    },
    "/sample-type": {
      "post": {
        "operationId": "SampleTypeController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSampleTypeDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleTypeResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "SampleType"
        ]
      },
      "get": {
        "operationId": "SampleTypeController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSampleTypeResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "SampleType"
        ]
      }
    },
    "/sample-type/{id}": {
      "get": {
        "operationId": "SampleTypeController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Sample type UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleTypeResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "SampleType"
        ]
      },
      "patch": {
        "operationId": "SampleTypeController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Sample type UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSampleTypeDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleTypeResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "SampleType"
        ]
      }
    },
    "/samples/animal-metadata/by-site/{siteId}": {
      "get": {
        "description": "Returns every AnimalMetadata record ever attached to a sample at the given site, newest-first. Used by the mobile app to let collectors pick an existing animal instead of re-entering metadata.",
        "operationId": "samplesControllerGetAnimalMetadataBySite",
        "parameters": [
          {
            "name": "siteId",
            "required": true,
            "in": "path",
            "description": "Site UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListAnimalMetadataResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "List all animals recorded at a site",
        "tags": [
          "samples"
        ]
      }
    },
    "/regions": {
      "post": {
        "operationId": "RegionController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRegionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Region"
        ]
      },
      "get": {
        "operationId": "RegionController_findAll",
        "parameters": [
          {
            "name": "select",
            "required": false,
            "in": "query",
            "schema": {
              "example": "id,name",
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "this search the name of the region, it needs type, if you want to search state then the type query should be state",
            "schema": {
              "example": "andaman",
              "type": "string"
            }
          },
          {
            "name": "type",
            "required": true,
            "in": "query",
            "schema": {
              "example": "STATE",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListRegionResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Region"
        ]
      }
    },
    "/regions/project-location": {
      "get": {
        "operationId": "RegionController_findAllRegionsForInProject",
        "parameters": [
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "this search the name of the region, it needs type, if you want to search state then the type query should be state",
            "schema": {
              "example": "andaman",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectLocationStateResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Region"
        ]
      }
    },
    "/regions/{id}": {
      "get": {
        "operationId": "RegionController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Region UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Region"
        ]
      },
      "patch": {
        "operationId": "RegionController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Region UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRegionDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Region"
        ]
      }
    },
    "/regions/import/district": {
      "post": {
        "operationId": "RegionController_uploadExcelFileDistrict",
        "parameters": [],
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConvertExcelResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Region"
        ]
      }
    },
    "/regions/import/state": {
      "post": {
        "operationId": "RegionController_uploadExcelFileState",
        "parameters": [],
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConvertExcelResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Region"
        ]
      }
    },
    "/media/upload-images": {
      "post": {
        "operationId": "MediaController_uploadImages",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/UploadImageDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadMultipleFilesResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Media"
        ]
      }
    },
    "/media/signed-url": {
      "get": {
        "operationId": "MediaController_getSignedUrl",
        "parameters": [
          {
            "name": "fileUrl",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Media"
        ]
      }
    },
    "/statistics/weekly-update": {
      "get": {
        "operationId": "StatisticsController_getSiteOnDisease",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSiteOnDiseaseResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/disease-wise-sample-stat": {
      "get": {
        "operationId": "StatisticsController_getSampleStatLogistics",
        "parameters": [
          {
            "name": "diseaseId",
            "required": false,
            "in": "query",
            "schema": {
              "example": "disease UUID",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleStatLogisticResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/site-wise-samples-breakdown": {
      "get": {
        "operationId": "StatisticsController_sieWiseSampleBreakDown",
        "parameters": [
          {
            "name": "region",
            "required": false,
            "in": "query",
            "schema": {
              "example": "district_501",
              "type": "string"
            }
          },
          {
            "name": "disease",
            "required": false,
            "in": "query",
            "schema": {
              "example": "disease UUID",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleBreakDownResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/explore-sites": {
      "get": {
        "operationId": "StatisticsController_exploreSites",
        "parameters": [
          {
            "name": "month",
            "required": false,
            "in": "query",
            "description": "1-12",
            "schema": {
              "example": 6,
              "type": "number"
            }
          },
          {
            "name": "year",
            "required": false,
            "in": "query",
            "schema": {
              "example": 2025,
              "type": "number"
            }
          },
          {
            "name": "period",
            "required": false,
            "in": "query",
            "description": "Time window on sample collection date. Defaults to overall (all data). year needs `year`; month needs `year` and `month`.",
            "schema": {
              "enum": [
                "overall",
                "year",
                "month"
              ],
              "type": "string"
            }
          },
          {
            "name": "workspaceId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variant",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "testResult",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sampleTypeId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "siteId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "surveillanceType",
            "required": false,
            "in": "query",
            "schema": {
              "example": "Active Surveillance",
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-12-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          },
          {
            "name": "disease",
            "required": false,
            "in": "query",
            "schema": {
              "example": "Foot & Mouth Disease",
              "type": "string"
            }
          },
          {
            "name": "regionId",
            "required": false,
            "in": "query",
            "schema": {
              "example": "123",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExploreSitesResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/most-positive-sites": {
      "get": {
        "operationId": "StatisticsController_getMostPositive",
        "parameters": [
          {
            "name": "endDate",
            "required": true,
            "in": "query",
            "schema": {
              "example": "2024-12-31",
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": true,
            "in": "query",
            "schema": {
              "example": "2024-01-01",
              "type": "string"
            }
          },
          {
            "name": "diseaseId",
            "required": false,
            "in": "query",
            "schema": {
              "example": "1234567",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MostPositiveSiteResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/disease-wise-positive-samples": {
      "get": {
        "operationId": "StatisticsController_getDiseaseWiseSample",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiseaseStatsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/site-wise-samples-breakdown/download-csv": {
      "get": {
        "operationId": "StatisticsController_exportSieWiseSampleBreakDown",
        "parameters": [
          {
            "name": "region",
            "required": false,
            "in": "query",
            "schema": {
              "example": "district_501",
              "type": "string"
            }
          },
          {
            "name": "disease",
            "required": false,
            "in": "query",
            "schema": {
              "example": "disease UUID",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SampleBreakDownResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/projects": {
      "get": {
        "operationId": "StatisticsController_getProjectStats",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedProjectDiseaseStatsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/monitor-dashboard": {
      "get": {
        "operationId": "StatisticsController_getMonitorDashboardStats",
        "parameters": [
          {
            "name": "subdistrictId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "districtId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "stateId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variant",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "testResult",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sampleTypeId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "siteId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "diseaseId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitorDashboardResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/site-wise-analysis": {
      "get": {
        "operationId": "StatisticsController_getSiteWiseAnalysis",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/disease-wise-analysis": {
      "get": {
        "operationId": "StatisticsController_getDiseaseWiseAnalysis",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/sample-wise-analysis": {
      "get": {
        "operationId": "StatisticsController_getSampleWiseAnalysis",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/home-last-30-days": {
      "get": {
        "operationId": "StatisticsController_getHomeLast30Days",
        "parameters": [
          {
            "name": "workspaceId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/project-sample-types": {
      "get": {
        "operationId": "StatisticsController_getProjectSampleTypes",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/project-comparison": {
      "get": {
        "operationId": "StatisticsController_getProjectComparison",
        "parameters": [
          {
            "name": "subdistrictId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "districtId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "stateId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variant",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "testResult",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sampleTypeId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "siteId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "diseaseId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "projectId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/site-comparison": {
      "get": {
        "operationId": "StatisticsController_getSiteComparison",
        "parameters": [
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sampleTypeId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "site2Id",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "site1Id",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/statistics/sample-type-comparison": {
      "get": {
        "operationId": "StatisticsController_getSampleTypeComparison",
        "parameters": [
          {
            "name": "endDate",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stateId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "siteId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sampleType2Id",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sampleType1Id",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Statistics"
        ]
      }
    },
    "/kits": {
      "post": {
        "operationId": "KitController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateKitDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KitResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Kit"
        ]
      },
      "get": {
        "operationId": "KitController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListKitResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Kit"
        ]
      }
    },
    "/kits/{id}": {
      "get": {
        "operationId": "KitController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KitResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Kit"
        ]
      },
      "patch": {
        "operationId": "KitController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateKitDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KitResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Kit"
        ]
      }
    },
    "/search": {
      "get": {
        "operationId": "SearchController_globalSearch",
        "parameters": [
          {
            "name": "searchText",
            "required": false,
            "in": "query",
            "description": "Site name and Project name to search",
            "schema": {
              "example": "Project",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Search"
        ]
      }
    },
    "/geolens/wetlands/states": {
      "get": {
        "operationId": "GeoLensController_getWetlandStates",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get all unique wetland states",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/geolens/wetlands": {
      "get": {
        "operationId": "GeoLensController_getWetlands",
        "parameters": [
          {
            "name": "state",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "district",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get wetlands filtered by state/district",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/geolens/wetlands/csv": {
      "get": {
        "operationId": "GeoLensController_getWetlandsCsv",
        "parameters": [
          {
            "name": "state",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get wetlands in CSV-compatible format (for frontend)",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/geolens/poultry-farms": {
      "get": {
        "operationId": "GeoLensController_getPoultryFarms",
        "parameters": [
          {
            "name": "state",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get poultry farms, optionally by state",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/geolens/poultry-farms/csv": {
      "get": {
        "operationId": "GeoLensController_getPoultryFarmsCsv",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get all poultry farms in CSV-compatible format",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/geolens/cattle-markets": {
      "get": {
        "operationId": "GeoLensController_getCattleMarkets",
        "parameters": [
          {
            "name": "state",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get cattle markets, optionally by state",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/geolens/water-boundaries": {
      "get": {
        "operationId": "GeoLensController_getWaterBoundaries",
        "parameters": [
          {
            "name": "minLng",
            "required": false,
            "in": "query",
            "description": "Bounding box min longitude",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "minLat",
            "required": false,
            "in": "query",
            "description": "Bounding box min latitude",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxLng",
            "required": false,
            "in": "query",
            "description": "Bounding box max longitude",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxLat",
            "required": false,
            "in": "query",
            "description": "Bounding box max latitude",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get water boundaries as GeoJSON (optionally filtered by bbox)",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/geolens/water-boundaries/simplified": {
      "get": {
        "operationId": "GeoLensController_getWaterBoundariesSimplified",
        "parameters": [
          {
            "name": "minLng",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "minLat",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxLng",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxLat",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zoom",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get simplified water boundaries (ST_Simplify) for faster map rendering",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/geolens/sites": {
      "get": {
        "operationId": "GeoLensController_getSites",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get sites the caller can see, with locations",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/geolens/diseases": {
      "get": {
        "operationId": "GeoLensController_getDiseases",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get all diseases",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/geolens/ebird": {
      "get": {
        "operationId": "GeoLensController_getEbirdObservations",
        "parameters": [
          {
            "name": "lat",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "lng",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "dist",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "back",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get eBird observations from backend proxy",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/geolens/weather": {
      "get": {
        "operationId": "GeoLensController_getWeather",
        "parameters": [
          {
            "name": "lat",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "lng",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get current weather from backend proxy",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/geolens/weather/historical": {
      "get": {
        "operationId": "GeoLensController_getHistoricalWeather",
        "parameters": [
          {
            "name": "lat",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "lng",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Get historical weather from backend proxy",
        "tags": [
          "GeoLens"
        ]
      }
    },
    "/ml/status": {
      "get": {
        "description": "The UI shows ML features only when this returns 200. 404: not enabled on this server.",
        "operationId": "MlController_status",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Whether ML predictions are enabled, and which models are loaded",
        "tags": [
          "ML predictions"
        ]
      }
    },
    "/ml/birds/{path}": {
      "get": {
        "description": "Relayed to the dharini-ml prediction service, whose API reference (paths, parameters, responses) is at https://ml.dharini.artpark.ai/docs. Any logged-in user may call it. Returns 404 when ML is not enabled on this server, 503 when the ML service is unavailable or busy.",
        "operationId": "MlController_birds",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Bird migration predictions (species, maps, seasons)",
        "tags": [
          "ML predictions"
        ]
      }
    },
    "/ml/diseases": {
      "get": {
        "description": "Relayed to the dharini-ml prediction service, whose API reference (paths, parameters, responses) is at https://ml.dharini.artpark.ai/docs. Any logged-in user may call it. Returns 404 when ML is not enabled on this server, 503 when the ML service is unavailable or busy.",
        "operationId": "MlController_diseases",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Livestock disease models available (LSD today)",
        "tags": [
          "ML predictions"
        ]
      }
    },
    "/ml/diseases/{disease}": {
      "get": {
        "description": "Relayed to the dharini-ml prediction service, whose API reference (paths, parameters, responses) is at https://ml.dharini.artpark.ai/docs. Any logged-in user may call it. Returns 404 when ML is not enabled on this server, 503 when the ML service is unavailable or busy.",
        "operationId": "MlController_disease",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "One disease model",
        "tags": [
          "ML predictions"
        ]
      }
    },
    "/ml/diseases/{disease}/predict": {
      "post": {
        "description": "Relayed to the dharini-ml prediction service, whose API reference (paths, parameters, responses) is at https://ml.dharini.artpark.ai/docs. Any logged-in user may call it. Returns 404 when ML is not enabled on this server, 503 when the ML service is unavailable or busy.",
        "operationId": "MlController_predictDisease",
        "parameters": [],
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Disease risk at up to 50 locations on a date",
        "tags": [
          "ML predictions"
        ]
      }
    },
    "/sequencing/uploads/presign": {
      "post": {
        "operationId": "SequencingController_presignUpload",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PresignUploadDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/lab-samples/search": {
      "get": {
        "operationId": "SequencingController_searchLabSamples",
        "parameters": [
          {
            "name": "q",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/ncbi/preview": {
      "get": {
        "operationId": "SequencingController_getNcbiPreview",
        "parameters": [
          {
            "name": "accession",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/pipelines": {
      "get": {
        "operationId": "SequencingController_getPipelines",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/queue": {
      "get": {
        "operationId": "SequencingController_getQueue",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/jobs/submit": {
      "post": {
        "operationId": "SequencingController_submitJob",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitSequencingJobDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/jobs": {
      "get": {
        "operationId": "SequencingController_getAllJobs",
        "parameters": [
          {
            "name": "workspaceId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/jobs/{id}/artifacts/{filename}/url": {
      "get": {
        "operationId": "SequencingController_getArtifactUrl",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filename",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "inline",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/jobs/{id}/retry": {
      "post": {
        "operationId": "SequencingController_retryJob",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/jobs/{id}/progress": {
      "get": {
        "operationId": "SequencingController_getJobProgress",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/jobs/{id}/variants": {
      "get": {
        "operationId": "SequencingController_getJobVariants",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/jobs/{id}/artifacts": {
      "get": {
        "operationId": "SequencingController_getJobArtifacts",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/jobs/{id}": {
      "get": {
        "operationId": "SequencingController_getJob",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing": {
      "get": {
        "operationId": "SequencingController_getAllSubmissions",
        "parameters": [
          {
            "name": "workspaceId",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/{id}": {
      "get": {
        "operationId": "SequencingController_getSubmission",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Sequencing"
        ]
      }
    },
    "/sequencing/pipeline/webhook": {
      "post": {
        "operationId": "PipelineWebhookController_handleWebhook",
        "parameters": [
          {
            "name": "x-dharini-event",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-dharini-delivery",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-dharini-timestamp",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-dharini-signature",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "PipelineWebhook"
        ]
      }
    },
    "/purge/sample/{sampleId}": {
      "delete": {
        "operationId": "PurgeController_deleteSample",
        "parameters": [
          {
            "name": "sampleId",
            "required": true,
            "in": "path",
            "description": "Sample UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Purge a sample and all its cascading dependencies",
        "tags": [
          "Purge"
        ]
      }
    },
    "/purge/visit/{visitId}": {
      "delete": {
        "operationId": "PurgeController_deleteVisit",
        "parameters": [
          {
            "name": "visitId",
            "required": true,
            "in": "path",
            "description": "Visit UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Purge a visit and all its cascading dependencies",
        "tags": [
          "Purge"
        ]
      }
    },
    "/purge/site/{siteId}": {
      "delete": {
        "operationId": "PurgeController_deleteSite",
        "parameters": [
          {
            "name": "siteId",
            "required": true,
            "in": "path",
            "description": "Site UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Purge a site and all its cascading dependencies",
        "tags": [
          "Purge"
        ]
      }
    },
    "/purge/project/{projectId}": {
      "delete": {
        "operationId": "PurgeController_deleteProject",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "description": "Project ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "summary": "Purge a project and all its cascading dependencies",
        "tags": [
          "Purge"
        ]
      }
    },
    "/workspaces": {
      "get": {
        "operationId": "WorkspacesController_findMine",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Workspaces"
        ]
      },
      "post": {
        "operationId": "WorkspacesController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWorkspaceDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Workspaces"
        ]
      }
    },
    "/workspaces/{workspaceId}": {
      "get": {
        "operationId": "WorkspacesController_findOne",
        "parameters": [
          {
            "name": "workspaceId",
            "required": true,
            "in": "path",
            "description": "Workspace UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Workspaces"
        ]
      },
      "patch": {
        "operationId": "WorkspacesController_update",
        "parameters": [
          {
            "name": "workspaceId",
            "required": true,
            "in": "path",
            "description": "Workspace UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWorkspaceDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Workspaces"
        ]
      }
    },
    "/workspaces/{workspaceId}/projects": {
      "get": {
        "operationId": "WorkspacesController_findProjects",
        "parameters": [
          {
            "name": "workspaceId",
            "required": true,
            "in": "path",
            "description": "Workspace UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Workspaces"
        ]
      },
      "post": {
        "operationId": "WorkspacesController_createProject",
        "parameters": [
          {
            "name": "workspaceId",
            "required": true,
            "in": "path",
            "description": "Workspace UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWorkspaceProjectDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Workspaces"
        ]
      }
    },
    "/workspaces/{workspaceId}/members": {
      "get": {
        "operationId": "WorkspacesController_findMembers",
        "parameters": [
          {
            "name": "workspaceId",
            "required": true,
            "in": "path",
            "description": "Workspace UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Workspaces"
        ]
      },
      "post": {
        "operationId": "WorkspacesController_addMember",
        "parameters": [
          {
            "name": "workspaceId",
            "required": true,
            "in": "path",
            "description": "Workspace UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWorkspaceMemberDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Workspaces"
        ]
      }
    },
    "/workspaces/{workspaceId}/members/{memberId}": {
      "patch": {
        "operationId": "WorkspacesController_updateMember",
        "parameters": [
          {
            "name": "workspaceId",
            "required": true,
            "in": "path",
            "description": "Workspace UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "memberId",
            "required": true,
            "in": "path",
            "description": "UserRole UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWorkspaceMemberDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Workspaces"
        ]
      },
      "delete": {
        "operationId": "WorkspacesController_removeMember",
        "parameters": [
          {
            "name": "workspaceId",
            "required": true,
            "in": "path",
            "description": "Workspace UUID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "memberId",
            "required": true,
            "in": "path",
            "description": "UserRole UUID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer": []
          }
        ],
        "tags": [
          "Workspaces"
        ]
      }
    },
    "/projects/{projectId}/data-import/template": {
      "get": {
        "operationId": "DataImportController_downloadTemplate",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "diseaseGroup",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "section",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "DataImport"
        ]
      }
    },
    "/projects/{projectId}/data-import/collection": {
      "post": {
        "operationId": "DataImportController_uploadCollection",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": ""
          }
        },
        "tags": [
          "DataImport"
        ]
      }
    },
    "/projects/{projectId}/data-import/lab": {
      "post": {
        "operationId": "DataImportController_uploadLab",
        "parameters": [
          {
            "name": "projectId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": ""
          }
        },
        "tags": [
          "DataImport"
        ]
      }
    }
  },
  "info": {
    "title": "Dharini API",
    "description": "API for the Dharini Platform",
    "version": "0.1.0",
    "contact": {}
  },
  "tags": [],
  "servers": [
    {
      "url": "/api"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearer": {
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "type": "http"
      }
    },
    "schemas": {
      "UnifiedLoginDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "The email used for login"
          },
          "phone": {
            "type": "string",
            "description": "The phone number used for login",
            "example": "919875645646"
          }
        }
      },
      "LoginResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "success",
          "message"
        ]
      },
      "EmailLoginDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "The email used for login"
          }
        },
        "required": [
          "email"
        ]
      },
      "PhoneLoginDto": {
        "type": "object",
        "properties": {
          "phone": {
            "type": "string",
            "description": "The phone number used for login",
            "example": "919875645646"
          }
        },
        "required": [
          "phone"
        ]
      },
      "VerifyOtpDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email",
            "example": "user@email.com"
          },
          "phone": {
            "type": "number",
            "description": "Phone",
            "example": "233442243"
          },
          "otp": {
            "type": "number",
            "description": "OTP",
            "example": "1235"
          }
        },
        "required": [
          "otp"
        ]
      },
      "VerifyOtpResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "object",
            "properties": {
              "accessToken": {
                "type": "string"
              }
            },
            "required": [
              "accessToken"
            ]
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "SignupDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email for the new workspace owner"
          },
          "phone": {
            "type": "string",
            "description": "Phone number for the new workspace owner",
            "example": "919875645646"
          }
        }
      },
      "VerifySignupDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email used for signup"
          },
          "phone": {
            "type": "string",
            "description": "Phone number used for signup"
          },
          "otp": {
            "type": "number",
            "description": "OTP sent to the email/phone",
            "example": 123456
          },
          "firstName": {
            "type": "string",
            "description": "First name of the new workspace owner"
          },
          "lastName": {
            "type": "string",
            "description": "Last name of the new workspace owner"
          },
          "workspaceName": {
            "type": "string",
            "description": "Name of the new workspace to create"
          }
        },
        "required": [
          "otp",
          "firstName",
          "workspaceName"
        ]
      },
      "CreateSuperAdminDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "description": "Email",
            "example": "user@gmaill.com"
          },
          "firstName": {
            "type": "string",
            "description": "First name",
            "example": "first name"
          },
          "lastName": {
            "type": "string",
            "description": "Last name",
            "example": "last name"
          },
          "contactNumber": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "description": "Role",
            "example": "super-admin"
          }
        },
        "required": [
          "email",
          "firstName",
          "lastName"
        ]
      },
      "UserResponseType": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "nullable": true,
            "example": "John"
          },
          "id": {
            "type": "string"
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "contactNumber": {
            "type": "string",
            "nullable": true
          },
          "designation": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "contactNumber"
        ]
      },
      "UserSummaryResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/UserResponseType"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "Permission": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "scope": {
            "type": "string",
            "nullable": true
          },
          "action": {
            "type": "string"
          },
          "subject": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "action",
          "subject",
          "createdAt",
          "updatedAt"
        ]
      },
      "UserProfileResponseDataRole": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Permission"
            }
          }
        },
        "required": [
          "id",
          "name",
          "scope",
          "type",
          "status",
          "createdAt",
          "updatedAt",
          "permissions"
        ]
      },
      "Workspace": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "UserProfileResponseDataUserRole": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "team": {
            "type": "string",
            "nullable": true
          },
          "project": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/UserProfileResponseDataRole"
          },
          "workspace": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Workspace"
              }
            ]
          }
        },
        "required": [
          "id",
          "status"
        ]
      },
      "Team": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "teamName": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "logo": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id"
        ]
      },
      "Project": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "code"
        ]
      },
      "UserProfileResponseData": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "nullable": true,
            "example": "John"
          },
          "id": {
            "type": "string"
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "profilePicture": {
            "type": "string",
            "nullable": true
          },
          "designation": {
            "type": "string",
            "nullable": true
          },
          "contactNumber": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserProfileResponseDataUserRole"
            }
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "project": {
            "$ref": "#/components/schemas/Project"
          }
        },
        "required": [
          "id",
          "contactNumber",
          "roles"
        ]
      },
      "UserProfileResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/UserProfileResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateOwnProfileDto": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "designation": {
            "type": "string"
          }
        }
      },
      "LookupUserMatch": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "contactNumber": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id"
        ]
      },
      "LookupUserResult": {
        "type": "object",
        "properties": {
          "exists": {
            "type": "boolean",
            "description": "Whether an active user holds this identifier"
          },
          "user": {
            "$ref": "#/components/schemas/LookupUserMatch"
          }
        },
        "required": [
          "exists"
        ]
      },
      "LookupUserResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/LookupUserResult"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "FetchAllUserResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserResponseType"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "User": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "nullable": true,
            "example": "John"
          },
          "id": {
            "type": "string"
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "profilePicture": {
            "type": "string",
            "nullable": true
          },
          "designation": {
            "type": "string",
            "nullable": true
          },
          "contactNumber": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "contactNumber"
        ]
      },
      "UserResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/User"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateUserDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email",
            "example": "user@gmaill.com"
          },
          "firstName": {
            "type": "string",
            "description": "First name",
            "example": "firstname"
          },
          "lastName": {
            "type": "string",
            "description": "Last name",
            "example": "lastname"
          },
          "designation": {
            "type": "string",
            "description": "Designation",
            "example": "Field Coordinator"
          },
          "profilePicture": {
            "type": "string",
            "description": "Profile picture",
            "example": "profilePicture"
          }
        }
      },
      "CreateUserDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email",
            "example": "user@gmaill.com"
          },
          "firstName": {
            "type": "string",
            "description": "First name",
            "example": "firstname"
          },
          "lastName": {
            "type": "string",
            "description": "Last name",
            "example": "lastname"
          },
          "designation": {
            "type": "string",
            "description": "Designation",
            "example": "Field Coordinator"
          }
        }
      },
      "EmailOtpDto": {
        "type": "object",
        "properties": {}
      },
      "SmsOtpDto": {
        "type": "object",
        "properties": {
          "contactNumber": {
            "type": "string",
            "description": "Contact number of the recipient",
            "example": "83340234"
          },
          "message": {
            "type": "string",
            "description": "Contact number of the recipient",
            "example": "83340234"
          }
        },
        "required": [
          "contactNumber",
          "message"
        ]
      },
      "CreateProjectDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 3,
            "description": "Name of the project",
            "example": "Project demo"
          },
          "code": {
            "type": "string",
            "description": "Code associated with the project",
            "example": "P-123"
          },
          "diseases": {
            "description": "Unique identifier for the disease",
            "example": [
              "20f0a586-1b8e-40eb-9576-b76966c5102a"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "surveillanceTypes": {
            "description": "List of unique identifiers for surveillance types",
            "example": [
              "570c4a4c-c6f6-4138-a6ec-57aa1a81d0d2"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "regions": {
            "description": "List of unique identifiers for locations",
            "example": [
              "a382d6b2-3565-45e2-88a5-5e59b1660d84"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "teams": {
            "description": "Email associated with the project",
            "example": [
              {
                "teamName": "test1",
                "email": "test@gmail.com",
                "isProjectViewer": true
              }
            ],
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "name",
          "code",
          "diseases",
          "surveillanceTypes",
          "regions",
          "teams"
        ]
      },
      "Disease": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "shortName": {
            "type": "string"
          },
          "index": {
            "type": "number"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "nullable": true,
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "code",
          "name",
          "shortName",
          "index",
          "createdAt",
          "updatedAt"
        ]
      },
      "ProjectResponseParentRegion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "regionType": {
            "enum": [
              "country",
              "state",
              "district",
              "subdistrict",
              "city"
            ],
            "type": "string"
          },
          "lgdCode": {
            "type": "string",
            "nullable": true
          },
          "localName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "regionType",
          "localName",
          "name",
          "createdAt",
          "updatedAt"
        ]
      },
      "ProjectResponseRegion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "regionType": {
            "enum": [
              "country",
              "state",
              "district",
              "subdistrict",
              "city"
            ],
            "type": "string"
          },
          "lgdCode": {
            "type": "string",
            "nullable": true
          },
          "localName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "parentRegion": {
            "$ref": "#/components/schemas/ProjectResponseParentRegion"
          }
        },
        "required": [
          "id",
          "regionType",
          "localName",
          "name",
          "createdAt",
          "updatedAt"
        ]
      },
      "ProjectResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "workspace": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Workspace"
              }
            ]
          },
          "projectAdmins": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          },
          "diseases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Disease"
            }
          },
          "regions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectResponseRegion"
            }
          }
        },
        "required": [
          "id",
          "name",
          "code",
          "projectAdmins",
          "diseases",
          "regions"
        ]
      },
      "ProjectResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/ProjectResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ProjectStatistics": {
        "type": "object",
        "properties": {
          "disease": {
            "$ref": "#/components/schemas/Disease"
          },
          "totalProjectLocations": {
            "type": "number"
          },
          "totalProjects": {
            "type": "number"
          }
        },
        "required": [
          "totalProjectLocations",
          "totalProjects"
        ]
      },
      "ProjectStatisticsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/ProjectStatistics"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ProjectResponseDataExtended": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "workspace": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Workspace"
              }
            ]
          },
          "projectAdmins": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          },
          "diseases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Disease"
            }
          },
          "regions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectResponseRegion"
            }
          },
          "totalSiteCount": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "code",
          "projectAdmins",
          "diseases",
          "regions"
        ]
      },
      "PaginatedProjectResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectResponseDataExtended"
            }
          },
          "total": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "limit": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ProjectDetailsRequestDto": {
        "type": "object",
        "properties": {
          "projectId": {
            "minItems": 1,
            "description": "Project IDs",
            "example": [
              "PABCDE",
              "P12345"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "projectId"
        ]
      },
      "TeamProgressResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "pendingVisitCount": {
            "type": "number"
          },
          "completedVisitCount": {
            "type": "number"
          },
          "totalTeamMemberCount": {
            "type": "number"
          },
          "photos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "farmType": {
            "type": "string"
          },
          "siteSubType": {
            "type": "string"
          },
          "siteType": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "collectionCollector": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "firstName": {
                "type": "string"
              },
              "lastName": {
                "type": "string"
              },
              "email": {
                "type": "string"
              }
            },
            "required": []
          }
        },
        "required": [
          "id",
          "name",
          "pendingVisitCount",
          "completedVisitCount",
          "totalTeamMemberCount"
        ]
      },
      "PaginatedTeamProgressResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamProgressResponseData"
            }
          },
          "total": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "limit": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "TeamActivityProgressResponseData": {
        "type": "object",
        "properties": {
          "totalPendingSampleCount": {
            "type": "number"
          },
          "totalCompletedSampleCount": {
            "type": "number"
          }
        },
        "required": [
          "totalPendingSampleCount",
          "totalCompletedSampleCount"
        ]
      },
      "TeamActivityProgressResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/TeamActivityProgressResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "TeamMemberActivityResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "totalCollected": {
            "type": "number"
          },
          "totalReceived": {
            "type": "number"
          },
          "totalExtracted": {
            "type": "number"
          },
          "totalTested": {
            "type": "number"
          },
          "totalReportGenerated": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "firstName",
          "lastName",
          "totalCollected",
          "totalReceived",
          "totalExtracted",
          "totalTested",
          "totalReportGenerated"
        ]
      },
      "PaginatedTeamMemberActivityResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamMemberActivityResponseData"
            }
          },
          "total": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "limit": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "TeamMemberProgressResponseData": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "siteId": {
            "type": "string"
          },
          "siteName": {
            "type": "string"
          },
          "pendingVisitCount": {
            "type": "number"
          },
          "completedVisitCount": {
            "type": "number"
          },
          "totalCollected": {
            "type": "number"
          },
          "totalReceived": {
            "type": "number"
          },
          "totalExtracted": {
            "type": "number"
          },
          "totalTested": {
            "type": "number"
          },
          "totalReportGenerated": {
            "type": "number"
          }
        },
        "required": [
          "userId",
          "firstName",
          "lastName",
          "siteId",
          "siteName",
          "pendingVisitCount",
          "completedVisitCount",
          "totalCollected",
          "totalReceived",
          "totalExtracted",
          "totalTested",
          "totalReportGenerated"
        ]
      },
      "PaginatedTeamMemberProgressResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamMemberProgressResponseData"
            }
          },
          "total": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "limit": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ProjectStatisticByDiseasesResponseData": {
        "type": "object",
        "properties": {
          "diseasesName": {
            "type": "string"
          },
          "diseaseSName": {
            "type": "string"
          },
          "siteCount": {
            "type": "number"
          }
        },
        "required": [
          "diseasesName",
          "diseaseSName",
          "siteCount"
        ]
      },
      "ProjectStatisticByDiseaseResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectStatisticByDiseasesResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ProjectStatisticsBySiteResponseData": {
        "type": "object",
        "properties": {
          "total": {
            "type": "number"
          },
          "pending": {
            "type": "number"
          },
          "positive": {
            "type": "number"
          },
          "negative": {
            "type": "number"
          }
        },
        "required": [
          "total",
          "pending",
          "positive",
          "negative"
        ]
      },
      "ProjectStatisticBySiteResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/ProjectStatisticsBySiteResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ProjectCollectorsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateProjectDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 3,
            "description": "Name of the project",
            "example": "Project demo"
          },
          "code": {
            "type": "string",
            "description": "Code associated with the project",
            "example": "P-123"
          },
          "diseases": {
            "minItems": 1,
            "description": "Unique identifier for the disease",
            "example": [
              "20f0a586-1b8e-40eb-9576-b76966c5102a"
            ],
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "surveillanceTypes": {
            "minItems": 1,
            "description": "List of unique identifiers for surveillance types",
            "example": [
              "570c4a4c-c6f6-4138-a6ec-57aa1a81d0d2"
            ],
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "regions": {
            "minItems": 1,
            "description": "List of unique identifiers for locations",
            "example": [
              "a382d6b2-3565-45e2-88a5-5e59b1660d84"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "teams": {
            "description": "Email associated with the project",
            "example": [
              {
                "teamName": "test1",
                "email": "test@gmail.com",
                "isProjectViewer": true
              }
            ],
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "DayOfWeek": {
        "type": "string",
        "enum": [
          "Sunday",
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday",
          "Saturday"
        ]
      },
      "SiteType": {
        "type": "string",
        "enum": [
          "private",
          "government",
          "corporate"
        ]
      },
      "CreateSiteDto": {
        "type": "object",
        "properties": {
          "collectionDayOfWeek": {
            "nullable": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            }
          },
          "collectionStartDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "The date when collection visits should start",
            "example": "2026-01-16"
          },
          "farmType": {
            "type": "string",
            "nullable": true,
            "description": "Type of farm/site based on the disease (e.g. Poultry Farm, Wetland, Cattle Farm)",
            "example": "poultry_farm"
          },
          "siteSubType": {
            "type": "string",
            "nullable": true,
            "description": "Sub-type of the farm/site (e.g. Broiler, Breeder, Layer, Backyard)",
            "example": "broiler"
          },
          "siteType": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SiteType"
              }
            ]
          },
          "name": {
            "type": "string"
          },
          "siteCode": {
            "type": "string",
            "nullable": true
          },
          "collectionFrequencyInterval": {
            "type": "number",
            "nullable": true
          },
          "collectionFrequency": {
            "type": "number",
            "nullable": true
          },
          "collectionTime": {
            "type": "string",
            "nullable": true
          },
          "collectionDuration": {
            "type": "number",
            "nullable": true
          },
          "siteOwnerName": {
            "type": "string",
            "nullable": true
          },
          "siteOwnerNumber": {
            "type": "string",
            "nullable": true
          },
          "workerNumber": {
            "type": "number",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "pinCode": {
            "type": "number",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "block": {
            "type": "string",
            "nullable": true
          },
          "village": {
            "type": "string",
            "nullable": true
          },
          "photos": {
            "description": "file path",
            "example": [
              "https://<s3>/<bucket>/<filepath>"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "regionId": {
            "type": "string",
            "description": "ID of the region",
            "example": "district_<code>"
          },
          "latitude": {
            "type": "number",
            "description": "latitude",
            "example": "40.2331"
          },
          "longitude": {
            "type": "number",
            "description": "longitude",
            "example": "-70.4453"
          },
          "collectionCollector": {
            "type": "string",
            "description": "collectionCollector id",
            "example": "user-uuid"
          },
          "collectionConsent": {
            "type": "string",
            "nullable": true,
            "pattern": "^(true|false)$",
            "description": "Site owner's collection consent: 'true' or 'false'",
            "example": "true"
          },
          "diseaseIds": {
            "description": "IDs of diseases to associate with this site (subset of project diseases)",
            "example": [
              "uuid-1",
              "uuid-2"
            ],
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "name",
          "photos",
          "regionId",
          "latitude",
          "longitude",
          "collectionCollector"
        ]
      },
      "UserWithTeamResponse": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "nullable": true,
            "example": "John"
          },
          "id": {
            "type": "string"
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "profilePicture": {
            "type": "string",
            "nullable": true
          },
          "designation": {
            "type": "string",
            "nullable": true
          },
          "contactNumber": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          }
        },
        "required": [
          "id",
          "contactNumber"
        ]
      },
      "LocationCoordinates": {
        "type": "object",
        "properties": {
          "coordinates": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "coordinates",
          "type"
        ]
      },
      "SiteResponseParentRegion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "regionType": {
            "enum": [
              "country",
              "state",
              "district",
              "subdistrict",
              "city"
            ],
            "type": "string"
          },
          "lgdCode": {
            "type": "string",
            "nullable": true
          },
          "localName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "regionType",
          "localName",
          "name",
          "createdAt",
          "updatedAt"
        ]
      },
      "SiteResponseRegion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "regionType": {
            "enum": [
              "country",
              "state",
              "district",
              "subdistrict",
              "city"
            ],
            "type": "string"
          },
          "lgdCode": {
            "type": "string",
            "nullable": true
          },
          "localName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "parentRegion": {
            "$ref": "#/components/schemas/SiteResponseParentRegion"
          }
        },
        "required": [
          "id",
          "regionType",
          "localName",
          "name",
          "createdAt",
          "updatedAt"
        ]
      },
      "Location": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "coordinates": {
            "$ref": "#/components/schemas/LocationCoordinates"
          },
          "region": {
            "$ref": "#/components/schemas/SiteResponseRegion"
          }
        },
        "required": [
          "id"
        ]
      },
      "SiteResponseData": {
        "type": "object",
        "properties": {
          "collectionDayOfWeek": {
            "nullable": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            }
          },
          "collectionStartDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "The date when collection visits should start",
            "example": "2026-01-16"
          },
          "farmType": {
            "type": "string",
            "nullable": true,
            "description": "Type of farm/site based on the disease (e.g. Poultry Farm, Wetland, Cattle Farm)",
            "example": "poultry_farm"
          },
          "siteSubType": {
            "type": "string",
            "nullable": true,
            "description": "Sub-type of the farm/site (e.g. Broiler, Breeder, Layer, Backyard)",
            "example": "broiler"
          },
          "siteType": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SiteType"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "siteCode": {
            "type": "string",
            "nullable": true
          },
          "collectionConsent": {
            "type": "string",
            "nullable": true
          },
          "collectionFrequencyInterval": {
            "type": "number",
            "nullable": true
          },
          "collectionFrequency": {
            "type": "number",
            "nullable": true
          },
          "collectionTime": {
            "type": "string",
            "nullable": true
          },
          "collectionLastScheduleDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "collectionDuration": {
            "type": "number",
            "nullable": true
          },
          "collectionExpiryDate": {
            "format": "date-time",
            "type": "string"
          },
          "photos": {
            "nullable": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "siteOwnerName": {
            "type": "string",
            "nullable": true
          },
          "siteOwnerNumber": {
            "type": "string",
            "nullable": true
          },
          "workerNumber": {
            "type": "number",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "pinCode": {
            "type": "number",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "diseases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Disease"
            }
          },
          "collectionCollector": {
            "$ref": "#/components/schemas/User"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserWithTeamResponse"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          }
        },
        "required": [
          "id",
          "name",
          "createdAt",
          "diseases"
        ]
      },
      "SiteResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SiteResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ListSiteResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SiteResponseData"
            }
          },
          "total": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "limit": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "NearbySiteResponseData": {
        "type": "object",
        "properties": {
          "collectionDayOfWeek": {
            "nullable": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            }
          },
          "collectionStartDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "The date when collection visits should start",
            "example": "2026-01-16"
          },
          "farmType": {
            "type": "string",
            "nullable": true,
            "description": "Type of farm/site based on the disease (e.g. Poultry Farm, Wetland, Cattle Farm)",
            "example": "poultry_farm"
          },
          "siteSubType": {
            "type": "string",
            "nullable": true,
            "description": "Sub-type of the farm/site (e.g. Broiler, Breeder, Layer, Backyard)",
            "example": "broiler"
          },
          "siteType": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SiteType"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "siteCode": {
            "type": "string",
            "nullable": true
          },
          "collectionConsent": {
            "type": "string",
            "nullable": true
          },
          "collectionFrequencyInterval": {
            "type": "number",
            "nullable": true
          },
          "collectionFrequency": {
            "type": "number",
            "nullable": true
          },
          "collectionTime": {
            "type": "string",
            "nullable": true
          },
          "collectionLastScheduleDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "collectionDuration": {
            "type": "number",
            "nullable": true
          },
          "collectionExpiryDate": {
            "format": "date-time",
            "type": "string"
          },
          "photos": {
            "nullable": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "siteOwnerName": {
            "type": "string",
            "nullable": true
          },
          "siteOwnerNumber": {
            "type": "string",
            "nullable": true
          },
          "workerNumber": {
            "type": "number",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "pinCode": {
            "type": "number",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "diseases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Disease"
            }
          },
          "collectionCollector": {
            "$ref": "#/components/schemas/User"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserWithTeamResponse"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "distance": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "createdAt",
          "diseases",
          "distance"
        ]
      },
      "ListNearbySiteResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NearbySiteResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateSiteDto": {
        "type": "object",
        "properties": {
          "collectionDayOfWeek": {
            "nullable": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            }
          },
          "collectionStartDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "The date when collection visits should start",
            "example": "2026-01-16"
          },
          "farmType": {
            "type": "string",
            "nullable": true,
            "description": "Type of farm/site based on the disease (e.g. Poultry Farm, Wetland, Cattle Farm)",
            "example": "poultry_farm"
          },
          "siteType": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SiteType"
              }
            ]
          },
          "name": {
            "type": "string"
          },
          "collectionFrequencyInterval": {
            "type": "number",
            "nullable": true
          },
          "collectionFrequency": {
            "type": "number",
            "nullable": true
          },
          "collectionTime": {
            "type": "string",
            "nullable": true
          },
          "collectionDuration": {
            "type": "number",
            "nullable": true
          },
          "siteOwnerName": {
            "type": "string",
            "nullable": true
          },
          "siteOwnerNumber": {
            "type": "string",
            "nullable": true
          },
          "workerNumber": {
            "type": "number",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "pinCode": {
            "type": "number",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "block": {
            "type": "string",
            "nullable": true
          },
          "village": {
            "type": "string",
            "nullable": true
          },
          "photos": {
            "description": "file path",
            "example": [
              "https://<s3>/<bucket>/<filepath>"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "regionId": {
            "type": "string",
            "description": "ID of the region",
            "example": "district_<code>"
          },
          "latitude": {
            "type": "number",
            "description": "latitude",
            "example": "40.2331"
          },
          "longitude": {
            "type": "number",
            "description": "longitude",
            "example": "-70.4453"
          },
          "collectionCollector": {
            "type": "string",
            "description": "collectionCollector id",
            "example": "user-uuid"
          },
          "collectionConsent": {
            "type": "string",
            "nullable": true,
            "pattern": "^(true|false)$",
            "description": "Site owner's collection consent: 'true' or 'false'",
            "example": "true"
          }
        },
        "required": [
          "name",
          "photos",
          "regionId",
          "latitude",
          "longitude",
          "collectionCollector"
        ]
      },
      "VisitSummaryResponseData": {
        "type": "object",
        "properties": {
          "visitCount": {
            "type": "number"
          },
          "totalSampleCollected": {
            "type": "number"
          },
          "pendingVisitsIndividual": {
            "type": "number"
          },
          "overdueVisits": {
            "type": "number"
          },
          "pendingVisits": {
            "type": "number"
          },
          "completedVisits": {
            "type": "number"
          }
        },
        "required": [
          "visitCount",
          "totalSampleCollected",
          "pendingVisitsIndividual",
          "overdueVisits",
          "pendingVisits",
          "completedVisits"
        ]
      },
      "VisitSummaryResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/VisitSummaryResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "VisitStatus": {
        "type": "string",
        "enum": [
          "upcoming",
          "overdue",
          "skipped",
          "completed"
        ]
      },
      "suspectedPositivesData": {
        "type": "object",
        "properties": {
          "disease": {
            "$ref": "#/components/schemas/Disease"
          },
          "sampleCount": {
            "type": "number"
          },
          "isSuspectedPositive": {
            "type": "boolean"
          }
        }
      },
      "VisitSiteLocationData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "coordinates": {
            "$ref": "#/components/schemas/LocationCoordinates"
          },
          "region": {
            "$ref": "#/components/schemas/SiteResponseRegion"
          }
        },
        "required": [
          "id"
        ]
      },
      "VisitSiteData": {
        "type": "object",
        "properties": {
          "collectionDayOfWeek": {
            "nullable": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            }
          },
          "collectionStartDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "The date when collection visits should start",
            "example": "2026-01-16"
          },
          "farmType": {
            "type": "string",
            "nullable": true,
            "description": "Type of farm/site based on the disease (e.g. Poultry Farm, Wetland, Cattle Farm)",
            "example": "poultry_farm"
          },
          "siteSubType": {
            "type": "string",
            "nullable": true,
            "description": "Sub-type of the farm/site (e.g. Broiler, Breeder, Layer, Backyard)",
            "example": "broiler"
          },
          "siteType": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SiteType"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "siteCode": {
            "type": "string",
            "nullable": true
          },
          "collectionConsent": {
            "type": "string",
            "nullable": true
          },
          "collectionFrequencyInterval": {
            "type": "number",
            "nullable": true
          },
          "collectionFrequency": {
            "type": "number",
            "nullable": true
          },
          "collectionTime": {
            "type": "string",
            "nullable": true
          },
          "collectionLastScheduleDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "collectionDuration": {
            "type": "number",
            "nullable": true
          },
          "collectionExpiryDate": {
            "format": "date-time",
            "type": "string"
          },
          "photos": {
            "nullable": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "siteOwnerName": {
            "type": "string",
            "nullable": true
          },
          "siteOwnerNumber": {
            "type": "string",
            "nullable": true
          },
          "workerNumber": {
            "type": "number",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "pinCode": {
            "type": "number",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "location": {
            "$ref": "#/components/schemas/VisitSiteLocationData"
          }
        },
        "required": [
          "id",
          "name",
          "createdAt"
        ]
      },
      "ReplicateAvailability": {
        "type": "string",
        "enum": [
          "available",
          "not collected"
        ]
      },
      "SampleStatus": {
        "type": "string",
        "enum": [
          "pending",
          "picked-up",
          "received",
          "pre-processed",
          "virus-isolation",
          "extracted",
          "tested",
          "rejected",
          "test-report-generated"
        ]
      },
      "SurveillanceType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "createdAt",
          "updatedAt"
        ]
      },
      "SampleType": {
        "type": "object",
        "properties": {
          "emojiIcon": {
            "type": "string",
            "nullable": true,
            "description": "Dynamic emoji for the sample type",
            "example": "🚰"
          },
          "diseaseShortNames": {
            "nullable": true,
            "description": "List of applicable disease short names",
            "example": [
              "AI",
              "FMD"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "surveillanceType": {
            "$ref": "#/components/schemas/SurveillanceType"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "createdAt",
          "updatedAt"
        ]
      },
      "VisitSampleData": {
        "type": "object",
        "properties": {
          "replicates": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ReplicateAvailability"
              }
            ]
          },
          "sampleStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SampleStatus"
              }
            ]
          },
          "barcode": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "sampleCode": {
            "type": "string",
            "nullable": true
          },
          "collectedAt": {
            "format": "date-time",
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "habitat": {
            "type": "string",
            "nullable": true
          },
          "conc": {
            "type": "string",
            "nullable": true
          },
          "collectionTime": {
            "format": "date-time",
            "type": "string"
          },
          "photos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "rejectReason": {
            "type": "string",
            "nullable": true
          },
          "receivedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "receivedVolumeValue": {
            "type": "string",
            "nullable": true
          },
          "receivedVolumeUnit": {
            "type": "string",
            "nullable": true
          },
          "receivedLabStorageDetails": {
            "type": "string",
            "nullable": true
          },
          "extractionDateTime": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "extractionSampleUsedValue": {
            "type": "string",
            "nullable": true
          },
          "extractionSampleUsedUnit": {
            "type": "string",
            "nullable": true
          },
          "extractionSampleRemainingValue": {
            "type": "string",
            "nullable": true
          },
          "extractionSampleRemainingUnit": {
            "type": "string",
            "nullable": true
          },
          "extractionComments": {
            "type": "string",
            "nullable": true
          },
          "receivedBy": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "extractedBy": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "collectedBy": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "reportGeneratedBy": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "disease": {
            "$ref": "#/components/schemas/Disease"
          },
          "sampleType": {
            "$ref": "#/components/schemas/SampleType"
          },
          "originalSampleId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "sampleStatus",
          "barcode",
          "id",
          "collectedAt",
          "collectionTime",
          "photos"
        ]
      },
      "VisitResponseData": {
        "type": "object",
        "properties": {
          "visitStartedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Timestamp when the collector opened the page"
          },
          "visitStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VisitStatus"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "visitedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "visitScheduledAt": {
            "format": "date-time",
            "type": "string"
          },
          "comment": {
            "type": "string"
          },
          "isCompleted": {
            "type": "boolean"
          },
          "rescheduledFrom": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "round": {
            "type": "number",
            "description": "Sequential round number of this visit for its site (Nth visit, ordered by schedule date)"
          },
          "suspectedPositives": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/suspectedPositivesData"
            }
          },
          "site": {
            "$ref": "#/components/schemas/VisitSiteData"
          },
          "samples": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VisitSampleData"
            }
          },
          "collector": {
            "$ref": "#/components/schemas/User"
          },
          "visitedBy": {
            "$ref": "#/components/schemas/User"
          }
        },
        "required": [
          "visitStatus",
          "id",
          "visitScheduledAt",
          "isCompleted",
          "createdAt",
          "updatedAt",
          "site",
          "samples"
        ]
      },
      "VisitResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/VisitResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "CreateVisitDto": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string"
          },
          "siteId": {
            "type": "string",
            "description": "ID of the site",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "collectorId": {
            "type": "string",
            "description": "Array of collector IDs",
            "example": "123e4567-e89b-12d3-a456-426614174001"
          },
          "visitScheduledAt": {
            "type": "string",
            "description": "Scheduled visit date-time in ISO format",
            "example": "2025-02-06T12:00:00Z"
          },
          "visitedAt": {
            "type": "string",
            "description": "The date when the collector visited",
            "example": "2025-02-06T12:00:00Z"
          }
        },
        "required": [
          "siteId",
          "collectorId",
          "visitScheduledAt"
        ]
      },
      "PaginatedVisitResponse": {
        "type": "object",
        "properties": {
          "totalPages": {
            "type": "number",
            "description": "Total number of pages"
          },
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VisitResponseData"
            }
          },
          "total": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "limit": {
            "type": "number"
          }
        },
        "required": [
          "success",
          "message",
          "data",
          "total",
          "page",
          "limit"
        ]
      },
      "UpdateVisitDto": {
        "type": "object",
        "properties": {
          "visitStartedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Timestamp when the collector opened the page"
          },
          "visitStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VisitStatus"
              }
            ]
          },
          "visitedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "isCompleted": {
            "type": "boolean"
          },
          "siteId": {
            "type": "string",
            "description": "site id",
            "example": "eaa81d72-5733-40e2-8f91-e3af7f845967"
          },
          "photos": {
            "description": "file path",
            "example": [
              "https://<s3>/<bucket>/<filepath>"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "comment": {
            "type": "string",
            "description": "comment",
            "example": "Anything regarding visit"
          },
          "visitedBy": {
            "type": "string",
            "description": "team member id",
            "example": "eaa81d72-5733-40e2-8f91-e3af7f845967"
          },
          "suspectDiseaseData": {
            "description": "This data is updating result of test result for disease",
            "example": [
              {
                "diseaseId": "diseaseId",
                "sampleCount": "10",
                "isSuspectedPositive": "false"
              }
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "diseaseQuestionnaireData": {
            "type": "object",
            "additionalProperties": true,
            "description": "Disease questionnaire responses grouped by disease shortName",
            "example": {
              "AI": {
                "farmType": "Layer",
                "numberOfSheds": 4,
                "shedCapacity": 2000,
                "birdsInShed": 1800,
                "farmCapacity": 8000,
                "vaccinationStage": "Starter",
                "breed": "Cobb 400",
                "species": "Chicken",
                "mortalityObservedInShed": true,
                "dropInEggProduction": false
              }
            }
          },
          "environmentalQuestionnaireData": {
            "type": "object",
            "additionalProperties": true,
            "description": "Environmental questionnaire responses",
            "example": {
              "Drinking Water": {
                "sourceOfDrinkingWater": "Tap"
              }
            }
          },
          "latitude": {
            "type": "number",
            "description": "Latitude of location where visit was completed",
            "example": 12.9716
          },
          "longitude": {
            "type": "number",
            "description": "Longitude of location where visit was completed",
            "example": 77.5946
          }
        },
        "required": [
          "visitStatus",
          "isCompleted"
        ]
      },
      "RescheduleVisitDto": {
        "type": "object",
        "properties": {
          "newScheduledDate": {
            "type": "string",
            "description": "New scheduled visit date-time in ISO format",
            "example": "2026-09-30T00:00:00.000Z"
          }
        },
        "required": [
          "newScheduledDate"
        ]
      },
      "UpdateVisitOnSubmitDto": {
        "type": "object",
        "properties": {
          "visitStartedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Timestamp when the collector opened the page"
          },
          "visitStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VisitStatus"
              }
            ]
          },
          "visitedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "isCompleted": {
            "type": "boolean"
          },
          "siteId": {
            "type": "string",
            "description": "site id",
            "example": "eaa81d72-5733-40e2-8f91-e3af7f845967"
          },
          "projectId": {
            "type": "string",
            "description": "project id",
            "example": "eaa81d72-5733-40e2-8f91-e3af7f845967"
          },
          "teamId": {
            "type": "string",
            "description": "team id",
            "example": "eaa81d72-5733-40e2-8f91-e3af7f845967"
          },
          "visitedBy": {
            "type": "string",
            "description": "team member id",
            "example": "eaa81d72-5733-40e2-8f91-e3af7f845967"
          },
          "photos": {
            "description": "file path",
            "example": [
              "https://<s3>/<bucket>/<filepath>"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "comment": {
            "type": "string",
            "description": "comment",
            "example": "Anything regarding visit"
          },
          "suspectDiseaseData": {
            "description": "This data is updating result of test result for disease",
            "example": [
              {
                "diseaseId": "diseaseId",
                "sampleCount": "10",
                "isSuspectedPositive": "false"
              }
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "diseaseQuestionnaireData": {
            "type": "object",
            "additionalProperties": true,
            "description": "Disease questionnaire responses grouped by disease shortName",
            "example": {
              "AI": {
                "farmType": "Layer",
                "numberOfSheds": 4,
                "shedCapacity": 2000,
                "birdsInShed": 1800,
                "farmCapacity": 8000,
                "vaccinationStage": "Starter",
                "breed": "Cobb 400",
                "species": "Chicken",
                "mortalityObservedInShed": true,
                "dropInEggProduction": false
              }
            }
          },
          "latitude": {
            "type": "number",
            "description": "Latitude of location where visit was completed",
            "example": 12.9716
          },
          "longitude": {
            "type": "number",
            "description": "Longitude of location where visit was completed",
            "example": 77.5946
          }
        },
        "required": [
          "visitStatus",
          "isCompleted"
        ]
      },
      "CreateSampleOnVisitDto": {
        "type": "object",
        "properties": {
          "quantity": {
            "type": "number",
            "description": "Quantity",
            "example": 2
          },
          "replicates": {
            "enum": [
              "available",
              "not collected"
            ],
            "type": "string",
            "description": "Replicates",
            "example": "available"
          },
          "unit": {
            "type": "string",
            "description": "Unit",
            "example": "ml"
          },
          "photos": {
            "description": "file path",
            "example": [
              "https://<s3>/<bucket>/<filepath>"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "barcode": {
            "type": "string",
            "description": "barcode",
            "example": "G-2407-E-L-11-09"
          },
          "originalSampleBarcode": {
            "type": "string",
            "description": "barcode of original sample if exist",
            "example": "G-2407-E-L-11-09"
          },
          "diseases": {
            "description": "disease id array",
            "example": [
              "diseaseId1",
              "diseaseId1"
            ],
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "testDate": {
            "format": "date-time",
            "type": "string",
            "description": "when the sample is tested",
            "example": "test date"
          },
          "collectedBy": {
            "type": "object",
            "description": "who tested the sample",
            "example": "user id"
          },
          "location": {
            "type": "string",
            "description": "location",
            "example": "pune"
          },
          "sampleStatus": {
            "enum": [
              "pending",
              "picked-up",
              "received",
              "pre-processed",
              "virus-isolation",
              "extracted",
              "tested",
              "rejected",
              "test-report-generated"
            ],
            "type": "string",
            "description": "enum [positive, negative, unclear]",
            "example": "positive"
          },
          "testedBy": {
            "type": "string",
            "description": "who has tested ",
            "example": "userid"
          },
          "comment": {
            "type": "string",
            "description": "comments",
            "example": "Anything regarding sample"
          },
          "sampleType": {
            "type": "object",
            "description": "Sample type UUID",
            "example": "Sample type UUID"
          },
          "species": {
            "type": "object",
            "description": "Species UUID",
            "example": "Species UUID"
          },
          "details": {
            "type": "object",
            "description": "Additional sample metadata (e.g. animal info for FMD/LSD, farm info for AI)"
          }
        },
        "required": [
          "replicates",
          "barcode",
          "diseases",
          "collectedBy",
          "sampleType"
        ]
      },
      "SubmitVisitDto": {
        "type": "object",
        "properties": {
          "visitData": {
            "description": "list of sample data collected from site",
            "example": "{\n      \"siteId\": \"eaa81d72-5733-40e2-8f91-e3af7f845967\",\n      \"visitedBy\": \"eaa81d72-5733-40e2-8f91-e3af7f845967\",\n      \"projectId\" : \"2742233c-4ddd-4f85-a961-4a30ceaa47e6\",\n      \"teamId\": \"ab76cec7-38ee-48b8-b6f3-cb7813a0a937\",\n      \"isCompleted\": true,\n      \"photos\": [],\n      \"comment\": \"test\",\n      \"suspectDiseaseData\": [\n          \"{diseaseId: 99d12e32-079a-47c8-967a-5d92c7529d47, sampleCount: 0, isSuspectedPositive: false}\"\n      ]\n    }",
            "allOf": [
              {
                "$ref": "#/components/schemas/UpdateVisitOnSubmitDto"
              }
            ]
          },
          "samples": {
            "description": "list of sample data collected from site",
            "example": "[\n    {\n      \"replicates\": \"not collected\",\n      \"photos\": [\n        \"https://<s3>/<bucket>/<filepath>\"\n      ],\n      \"diseases\": [\n        \"diseaseId1\",\n        \"diseaseId1\"\n      ],\n      \"originalSampleBarcode\": \"G-2407-E-L-11-09\",\n      \"barcode\": \"G-2407-E-L-11-09\",\n      \"comment\": \"Anything regarding sample\",\n      \"sampleType\": \"Sample type UUID\"\n    }\n    ]",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateSampleOnVisitDto"
            }
          }
        },
        "required": [
          "visitData",
          "samples"
        ]
      },
      "SubmitVisitResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "success",
          "message"
        ]
      },
      "CreateSampleDto": {
        "type": "object",
        "properties": {
          "quantity": {
            "type": "number",
            "description": "Quantity",
            "example": 2
          },
          "replicates": {
            "enum": [
              "available",
              "not collected"
            ],
            "type": "string",
            "description": "Replicates",
            "example": "available"
          },
          "unit": {
            "type": "string",
            "description": "Unit",
            "example": "ml"
          },
          "photos": {
            "description": "File path",
            "example": [
              "https://<s3>/<bucket>/<filepath>"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "barcode": {
            "type": "string",
            "description": "Barcode",
            "example": "G-2407-E-L-11-09"
          },
          "originalSampleBarcode": {
            "type": "string",
            "description": "Barcode of original sample if exist",
            "example": "G-2407-E-L-11-09"
          },
          "site": {
            "type": "object",
            "format": "uuid",
            "description": "Site UUID",
            "example": "Site id"
          },
          "team": {
            "type": "object",
            "format": "uuid",
            "description": "Team UUID",
            "example": "Team id"
          },
          "diseases": {
            "description": "Disease ID array",
            "example": [
              "diseaseId1",
              "diseaseId2"
            ],
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "testDate": {
            "format": "date-time",
            "type": "string",
            "description": "When the sample is tested",
            "example": "2025-03-21T10:00:00Z"
          },
          "collectedBy": {
            "type": "object",
            "description": "Who collected the sample",
            "example": "User id"
          },
          "receivedBy": {
            "type": "object",
            "description": "Who received the sample",
            "example": "User id"
          },
          "extractedBy": {
            "type": "object",
            "description": "Who extracted the sample",
            "example": "User id"
          },
          "testedBy": {
            "type": "object",
            "description": "Who tested the sample",
            "example": "User id"
          },
          "reportGeneratedBy": {
            "type": "object",
            "description": "Who generated the sample report",
            "example": "User id"
          },
          "latitude": {
            "type": "number",
            "description": "latitude",
            "example": "40.2331"
          },
          "longitude": {
            "type": "number",
            "description": "longitude",
            "example": "-70.4453"
          },
          "sampleStatus": {
            "enum": [
              "pending",
              "picked-up",
              "received",
              "pre-processed",
              "virus-isolation",
              "extracted",
              "tested",
              "rejected",
              "test-report-generated"
            ],
            "type": "string",
            "description": "Sample status enum [picked-up, received, extracted, tested, rejected, test-report-generated]",
            "example": "tested"
          },
          "comment": {
            "type": "string",
            "description": "Comments",
            "example": "Anything regarding sample"
          },
          "visit": {
            "type": "object",
            "format": "uuid",
            "description": "Visit UUID",
            "example": "Visit id"
          },
          "sampleType": {
            "type": "object",
            "description": "Sample type UUID",
            "example": "Sample type UUID"
          },
          "species": {
            "type": "object",
            "description": "Species UUID",
            "example": "Species UUID"
          },
          "rejectReason": {
            "type": "string",
            "nullable": true,
            "description": "Reason for rejection",
            "example": "Sample contaminated"
          },
          "receivedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Timestamp when the sample was received",
            "example": "2025-03-21T10:00:00Z"
          },
          "receivedVolumeValue": {
            "type": "string",
            "nullable": true,
            "description": "Received volume value",
            "example": "5"
          },
          "receivedVolumeUnit": {
            "type": "string",
            "nullable": true,
            "description": "Received volume unit",
            "example": "ml"
          },
          "receivedLabStorageDetails": {
            "type": "string",
            "nullable": true,
            "description": "Received lab storage details",
            "example": "Stored in freezer -20°C"
          },
          "referenceBatchId": {
            "type": "string",
            "nullable": true,
            "description": "Reference batch ID",
            "example": "BATCH-2025-001"
          },
          "batchReferenceDocument": {
            "type": "string",
            "nullable": true,
            "description": "Batch reference document (URL or filename)",
            "example": "doc-url"
          },
          "accessionId": {
            "type": "string",
            "nullable": true,
            "description": "Accession ID",
            "example": "ACC-2025-001"
          },
          "extractionDateTime": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Timestamp when extraction was performed",
            "example": "2025-03-21T12:30:00Z"
          },
          "extractionSampleUsedValue": {
            "type": "string",
            "nullable": true,
            "description": "Sample used value for extraction",
            "example": "3"
          },
          "extractionSampleUsedUnit": {
            "type": "string",
            "nullable": true,
            "description": "Sample used unit for extraction",
            "example": "ml"
          },
          "extractionSampleRemainingValue": {
            "type": "string",
            "nullable": true,
            "description": "Remaining sample value after extraction",
            "example": "2"
          },
          "extractionSampleRemainingUnit": {
            "type": "string",
            "nullable": true,
            "description": "Remaining sample unit after extraction",
            "example": "ml"
          },
          "extractionComments": {
            "type": "string",
            "nullable": true,
            "description": "Comments related to the extraction process",
            "example": "Sample extracted successfully"
          },
          "preprocessingSteps": {
            "description": "Pre-processing steps data",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "preprocessingDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Pre-processing date"
          },
          "preprocessingStorageTemperature": {
            "type": "string",
            "nullable": true,
            "description": "Pre-processing storage temperature"
          },
          "preprocessingStorageDetails": {
            "type": "string",
            "nullable": true,
            "description": "Pre-processing storage details"
          },
          "preprocessingPerformedBy": {
            "type": "object",
            "description": "User who performed pre-processing"
          },
          "pooledSampleIds": {
            "description": "IDs of samples pooled with this sample",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pooledWith": {
            "description": "Samples pooled with this sample (resolved entities)",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "isPooledSample": {
            "type": "boolean",
            "description": "Whether this is a pooled sample"
          },
          "details": {
            "type": "object",
            "description": "Additional dynamic details (e.g. extraction metadata)"
          }
        },
        "required": [
          "barcode",
          "site",
          "team",
          "diseases",
          "visit",
          "sampleType"
        ]
      },
      "Visit": {
        "type": "object",
        "properties": {
          "visitStartedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Timestamp when the collector opened the page"
          },
          "visitStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VisitStatus"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "visitedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "visitScheduledAt": {
            "format": "date-time",
            "type": "string"
          },
          "comment": {
            "type": "string"
          },
          "isCompleted": {
            "type": "boolean"
          },
          "rescheduledFrom": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "visitedBy": {
            "$ref": "#/components/schemas/User"
          },
          "collector": {
            "$ref": "#/components/schemas/User"
          }
        },
        "required": [
          "visitStatus",
          "id",
          "visitScheduledAt",
          "isCompleted",
          "createdAt",
          "updatedAt"
        ]
      },
      "TestResultType": {
        "type": "string",
        "enum": [
          "pending",
          "positive",
          "negative",
          "unclear"
        ]
      },
      "Sample": {
        "type": "object",
        "properties": {
          "replicates": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ReplicateAvailability"
              }
            ]
          },
          "sampleStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SampleStatus"
              }
            ]
          },
          "barcode": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "sampleCode": {
            "type": "string",
            "nullable": true
          },
          "collectedAt": {
            "format": "date-time",
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "habitat": {
            "type": "string",
            "nullable": true
          },
          "conc": {
            "type": "string",
            "nullable": true
          },
          "collectionTime": {
            "format": "date-time",
            "type": "string"
          },
          "photos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "rejectReason": {
            "type": "string",
            "nullable": true
          },
          "receivedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "receivedVolumeValue": {
            "type": "string",
            "nullable": true
          },
          "receivedVolumeUnit": {
            "type": "string",
            "nullable": true
          },
          "receivedLabStorageDetails": {
            "type": "string",
            "nullable": true
          },
          "extractionDateTime": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "extractionSampleUsedValue": {
            "type": "string",
            "nullable": true
          },
          "extractionSampleUsedUnit": {
            "type": "string",
            "nullable": true
          },
          "extractionSampleRemainingValue": {
            "type": "string",
            "nullable": true
          },
          "extractionSampleRemainingUnit": {
            "type": "string",
            "nullable": true
          },
          "extractionComments": {
            "type": "string",
            "nullable": true
          },
          "receivedBy": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "extractedBy": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "collectedBy": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "reportGeneratedBy": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "originalSampleId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "sampleStatus",
          "barcode",
          "id",
          "collectedAt",
          "collectionTime",
          "photos"
        ]
      },
      "LabTestResponseData": {
        "type": "object",
        "properties": {
          "testResult": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TestResultType"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "ctValue": {
            "type": "string",
            "nullable": true
          },
          "variant": {
            "type": "string",
            "nullable": true
          },
          "viralLoad": {
            "type": "string",
            "nullable": true
          },
          "kitOrProtocol": {
            "type": "string",
            "nullable": true
          },
          "labComment": {
            "type": "string",
            "nullable": true
          },
          "resultDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "resultComment": {
            "type": "string",
            "nullable": true
          },
          "testResultReport": {
            "type": "string",
            "nullable": true
          },
          "testedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "project": {
            "$ref": "#/components/schemas/Project"
          },
          "sample": {
            "$ref": "#/components/schemas/Sample"
          },
          "disease": {
            "$ref": "#/components/schemas/Disease"
          },
          "testedBy": {
            "$ref": "#/components/schemas/User"
          }
        },
        "required": [
          "id"
        ]
      },
      "SampleResponseData": {
        "type": "object",
        "properties": {
          "replicates": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ReplicateAvailability"
              }
            ]
          },
          "sampleStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SampleStatus"
              }
            ]
          },
          "barcode": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "sampleCode": {
            "type": "string",
            "nullable": true
          },
          "collectedAt": {
            "format": "date-time",
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "habitat": {
            "type": "string",
            "nullable": true
          },
          "conc": {
            "type": "string",
            "nullable": true
          },
          "collectionTime": {
            "format": "date-time",
            "type": "string"
          },
          "photos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "rejectReason": {
            "type": "string",
            "nullable": true
          },
          "receivedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "receivedVolumeValue": {
            "type": "string",
            "nullable": true
          },
          "receivedVolumeUnit": {
            "type": "string",
            "nullable": true
          },
          "receivedLabStorageDetails": {
            "type": "string",
            "nullable": true
          },
          "extractionDateTime": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "extractionSampleUsedValue": {
            "type": "string",
            "nullable": true
          },
          "extractionSampleUsedUnit": {
            "type": "string",
            "nullable": true
          },
          "extractionSampleRemainingValue": {
            "type": "string",
            "nullable": true
          },
          "extractionSampleRemainingUnit": {
            "type": "string",
            "nullable": true
          },
          "extractionComments": {
            "type": "string",
            "nullable": true
          },
          "receivedBy": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "extractedBy": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "collectedBy": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "reportGeneratedBy": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "project": {
            "$ref": "#/components/schemas/Project"
          },
          "site": {
            "$ref": "#/components/schemas/SiteResponseData"
          },
          "diseases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Disease"
            }
          },
          "team": {
            "$ref": "#/components/schemas/Team"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "visit": {
            "$ref": "#/components/schemas/Visit"
          },
          "labTests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabTestResponseData"
            }
          },
          "hasAI": {
            "type": "boolean"
          },
          "originalSampleId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "sampleStatus",
          "barcode",
          "id",
          "collectedAt",
          "collectionTime",
          "photos"
        ]
      },
      "SampleResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SampleResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ValidateBarcodeMessage": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "isValidBarcode": {
            "type": "boolean"
          }
        },
        "required": [
          "success",
          "isValidBarcode"
        ]
      },
      "CreateLabTestDto": {
        "type": "object",
        "properties": {
          "sample": {
            "type": "object",
            "format": "uuid",
            "description": "Sample UUID",
            "example": "Sample id"
          },
          "disease": {
            "type": "object",
            "format": "uuid",
            "description": "Disease UUID",
            "example": "Disease id"
          },
          "kitOrProtocol": {
            "type": "string",
            "description": "Kit or Protocol of Test"
          },
          "testedAt": {
            "format": "date-time",
            "type": "string",
            "description": "Tested Date of Test"
          },
          "labComment": {
            "type": "string",
            "description": "comments of Test"
          },
          "testedBy": {
            "type": "object",
            "description": "User who tested the sample"
          },
          "details": {
            "type": "object",
            "description": "Additional dynamic details (e.g. ct values, storage)"
          },
          "testResult": {
            "description": "Test Result",
            "allOf": [
              {
                "$ref": "#/components/schemas/TestResultType"
              }
            ]
          },
          "ctValue": {
            "type": "string",
            "description": "Ct value detected"
          },
          "variant": {
            "type": "string",
            "description": "Variant detected"
          },
          "viralLoad": {
            "type": "string",
            "description": "Viral load detected"
          },
          "testResultReport": {
            "type": "string",
            "description": "Test Result Report file path/key"
          }
        },
        "required": [
          "disease"
        ]
      },
      "CreateMultipleLabTestDto": {
        "type": "object",
        "properties": {
          "labTests": {
            "description": "CreateLabTestDto",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateLabTestDto"
            }
          }
        },
        "required": [
          "labTests"
        ]
      },
      "ListLabTestResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabTestResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "updateLabTestDto": {
        "type": "object",
        "properties": {
          "sample": {
            "type": "object",
            "format": "uuid",
            "description": "Sample UUID",
            "example": "Sample id"
          },
          "disease": {
            "type": "object",
            "format": "uuid",
            "description": "Disease UUID",
            "example": "Disease id"
          },
          "kitOrProtocol": {
            "type": "string",
            "description": "Kit or Protocol of Test"
          },
          "testedAt": {
            "format": "date-time",
            "type": "string",
            "description": "Tested Date of Test"
          },
          "labComment": {
            "type": "string",
            "description": "comments of Test"
          },
          "testedBy": {
            "type": "object",
            "description": "User who tested the sample"
          },
          "details": {
            "type": "object",
            "description": "Additional dynamic details (e.g. ct values, storage)"
          },
          "testResult": {
            "description": "Test Result",
            "allOf": [
              {
                "$ref": "#/components/schemas/TestResultType"
              }
            ]
          },
          "ctValue": {
            "type": "string",
            "description": "Kit or Protocol of Test"
          },
          "variant": {
            "type": "string",
            "description": "Variant detected"
          },
          "viralLoad": {
            "type": "string",
            "description": "Viral load detected"
          },
          "testResultReport": {
            "type": "string",
            "description": "Result Report document of Test"
          },
          "id": {
            "type": "string"
          },
          "resultDate": {
            "format": "date-time",
            "type": "string",
            "description": "Tested Date of Test"
          },
          "resultComment": {
            "type": "string",
            "description": "comments of Test"
          }
        },
        "required": [
          "id"
        ]
      },
      "UpdateMultipleLabTestDto": {
        "type": "object",
        "properties": {
          "labTests": {
            "description": "updateLabTestDto",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/updateLabTestDto"
            }
          }
        },
        "required": [
          "labTests"
        ]
      },
      "LabTestResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/LabTestResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "PaginatedSampleResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SampleResponseData"
            }
          },
          "total": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "limit": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          }
        },
        "required": [
          "success",
          "message",
          "data",
          "total",
          "page",
          "limit",
          "totalPages"
        ]
      },
      "SampleStatLogisticResponseData": {
        "type": "object",
        "properties": {
          "totalCollected": {
            "type": "number"
          },
          "totalUnclear": {
            "type": "number"
          },
          "totalPositive": {
            "type": "number"
          },
          "totalNegative": {
            "type": "number"
          }
        },
        "required": [
          "totalCollected",
          "totalUnclear",
          "totalPositive",
          "totalNegative"
        ]
      },
      "SampleStatLogisticResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SampleStatLogisticResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateCollectedSampleDetailsDto": {
        "type": "object",
        "properties": {
          "barcode": {
            "type": "string",
            "description": "Visible sample identifier / barcode"
          },
          "collectedBy": {
            "type": "string",
            "format": "uuid",
            "description": "User UUID of the collector"
          },
          "collectionTime": {
            "type": "string",
            "description": "Sample collection date/time"
          }
        }
      },
      "UpdateSampleStageDetailsDto": {
        "type": "object",
        "properties": {
          "barcode": {
            "type": "string"
          },
          "collectedBy": {
            "type": "string",
            "format": "uuid"
          },
          "collectionTime": {
            "type": "string"
          },
          "receivedAt": {
            "type": "string"
          },
          "receivedBy": {
            "type": "string",
            "format": "uuid"
          },
          "receivedVolumeValue": {
            "type": "string"
          },
          "receivedVolumeUnit": {
            "type": "string"
          },
          "receivedStorageTemperature": {
            "type": "string"
          },
          "receivedLabStorageDetails": {
            "type": "string"
          },
          "referenceBatchId": {
            "type": "string"
          },
          "batchReferenceDocument": {
            "type": "string"
          },
          "accessionId": {
            "type": "string"
          },
          "preprocessingDate": {
            "type": "string"
          },
          "preprocessingPerformedBy": {
            "type": "string",
            "format": "uuid"
          },
          "preprocessingSteps": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "extractionDateTime": {
            "type": "string"
          },
          "extractedBy": {
            "type": "string",
            "format": "uuid"
          },
          "extractionSampleUsedValue": {
            "type": "string"
          },
          "extractionSampleUsedUnit": {
            "type": "string"
          },
          "extractionSampleRemainingValue": {
            "type": "string"
          },
          "extractionSampleRemainingUnit": {
            "type": "string"
          },
          "extractionComments": {
            "type": "string"
          },
          "testedAt": {
            "type": "string"
          },
          "testedBy": {
            "type": "string",
            "format": "uuid"
          },
          "reportGeneratedAt": {
            "type": "string"
          },
          "reportGeneratedBy": {
            "type": "string",
            "format": "uuid"
          },
          "details": {
            "type": "object"
          },
          "labTests": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "UpdateSampleDto": {
        "type": "object",
        "properties": {
          "quantity": {
            "type": "number",
            "description": "Quantity",
            "example": 2
          },
          "replicates": {
            "enum": [
              "available",
              "not collected"
            ],
            "type": "string",
            "description": "Replicates",
            "example": "available"
          },
          "unit": {
            "type": "string",
            "description": "Unit",
            "example": "ml"
          },
          "photos": {
            "description": "File path",
            "example": [
              "https://<s3>/<bucket>/<filepath>"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "barcode": {
            "type": "string",
            "description": "Barcode",
            "example": "G-2407-E-L-11-09"
          },
          "originalSampleBarcode": {
            "type": "string",
            "description": "Barcode of original sample if exist",
            "example": "G-2407-E-L-11-09"
          },
          "site": {
            "type": "object",
            "format": "uuid",
            "description": "Site UUID",
            "example": "Site id"
          },
          "team": {
            "type": "object",
            "format": "uuid",
            "description": "Team UUID",
            "example": "Team id"
          },
          "diseases": {
            "description": "Disease ID array",
            "example": [
              "diseaseId1",
              "diseaseId2"
            ],
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "testDate": {
            "format": "date-time",
            "type": "string",
            "description": "When the sample is tested",
            "example": "2025-03-21T10:00:00Z"
          },
          "collectedBy": {
            "type": "object",
            "description": "Who collected the sample",
            "example": "User id"
          },
          "receivedBy": {
            "type": "object",
            "description": "Who received the sample",
            "example": "User id"
          },
          "extractedBy": {
            "type": "object",
            "description": "Who extracted the sample",
            "example": "User id"
          },
          "testedBy": {
            "type": "object",
            "description": "Who tested the sample",
            "example": "User id"
          },
          "reportGeneratedBy": {
            "type": "object",
            "description": "Who generated the sample report",
            "example": "User id"
          },
          "latitude": {
            "type": "number",
            "description": "latitude",
            "example": "40.2331"
          },
          "longitude": {
            "type": "number",
            "description": "longitude",
            "example": "-70.4453"
          },
          "sampleStatus": {
            "enum": [
              "pending",
              "picked-up",
              "received",
              "pre-processed",
              "virus-isolation",
              "extracted",
              "tested",
              "rejected",
              "test-report-generated"
            ],
            "type": "string",
            "description": "Sample status enum [picked-up, received, extracted, tested, rejected, test-report-generated]",
            "example": "tested"
          },
          "comment": {
            "type": "string",
            "description": "Comments",
            "example": "Anything regarding sample"
          },
          "visit": {
            "type": "object",
            "format": "uuid",
            "description": "Visit UUID",
            "example": "Visit id"
          },
          "sampleType": {
            "type": "object",
            "description": "Sample type UUID",
            "example": "Sample type UUID"
          },
          "species": {
            "type": "object",
            "description": "Species UUID",
            "example": "Species UUID"
          },
          "rejectReason": {
            "type": "string",
            "nullable": true,
            "description": "Reason for rejection",
            "example": "Sample contaminated"
          },
          "receivedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Timestamp when the sample was received",
            "example": "2025-03-21T10:00:00Z"
          },
          "receivedVolumeValue": {
            "type": "string",
            "nullable": true,
            "description": "Received volume value",
            "example": "5"
          },
          "receivedVolumeUnit": {
            "type": "string",
            "nullable": true,
            "description": "Received volume unit",
            "example": "ml"
          },
          "receivedLabStorageDetails": {
            "type": "string",
            "nullable": true,
            "description": "Received lab storage details",
            "example": "Stored in freezer -20°C"
          },
          "referenceBatchId": {
            "type": "string",
            "nullable": true,
            "description": "Reference batch ID",
            "example": "BATCH-2025-001"
          },
          "batchReferenceDocument": {
            "type": "string",
            "nullable": true,
            "description": "Batch reference document (URL or filename)",
            "example": "doc-url"
          },
          "accessionId": {
            "type": "string",
            "nullable": true,
            "description": "Accession ID",
            "example": "ACC-2025-001"
          },
          "extractionDateTime": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Timestamp when extraction was performed",
            "example": "2025-03-21T12:30:00Z"
          },
          "extractionSampleUsedValue": {
            "type": "string",
            "nullable": true,
            "description": "Sample used value for extraction",
            "example": "3"
          },
          "extractionSampleUsedUnit": {
            "type": "string",
            "nullable": true,
            "description": "Sample used unit for extraction",
            "example": "ml"
          },
          "extractionSampleRemainingValue": {
            "type": "string",
            "nullable": true,
            "description": "Remaining sample value after extraction",
            "example": "2"
          },
          "extractionSampleRemainingUnit": {
            "type": "string",
            "nullable": true,
            "description": "Remaining sample unit after extraction",
            "example": "ml"
          },
          "extractionComments": {
            "type": "string",
            "nullable": true,
            "description": "Comments related to the extraction process",
            "example": "Sample extracted successfully"
          },
          "preprocessingSteps": {
            "description": "Pre-processing steps data",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "preprocessingDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true,
            "description": "Pre-processing date"
          },
          "preprocessingStorageTemperature": {
            "type": "string",
            "nullable": true,
            "description": "Pre-processing storage temperature"
          },
          "preprocessingStorageDetails": {
            "type": "string",
            "nullable": true,
            "description": "Pre-processing storage details"
          },
          "preprocessingPerformedBy": {
            "type": "object",
            "description": "User who performed pre-processing"
          },
          "pooledSampleIds": {
            "description": "IDs of samples pooled with this sample",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pooledWith": {
            "description": "Samples pooled with this sample (resolved entities)",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "isPooledSample": {
            "type": "boolean",
            "description": "Whether this is a pooled sample"
          },
          "details": {
            "type": "object",
            "description": "Additional dynamic details (e.g. extraction metadata)"
          }
        }
      },
      "CreateMemberDto": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "First name",
            "example": "firstname"
          },
          "lastName": {
            "type": "string",
            "description": "Last name",
            "example": "lastname"
          },
          "email": {
            "type": "string",
            "description": "Email",
            "example": "user@mail.com"
          },
          "contactNumber": {
            "type": "string"
          },
          "role": {
            "type": "object",
            "description": "Role id",
            "example": "bf842546-fa54-4c6c-935f-f8146db98756"
          },
          "project": {
            "type": "string",
            "description": "Project id",
            "example": "bf842546-fa54-4c6c-935f-f8146db98756"
          }
        },
        "required": [
          "project"
        ]
      },
      "UserRole": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "team": {
            "type": "string",
            "nullable": true
          },
          "project": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string"
          },
          "workspace": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Workspace"
              }
            ]
          }
        },
        "required": [
          "id",
          "status"
        ]
      },
      "TeamMemberResponseData": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "nullable": true,
            "example": "John"
          },
          "id": {
            "type": "string"
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "profilePicture": {
            "type": "string",
            "nullable": true
          },
          "designation": {
            "type": "string",
            "nullable": true
          },
          "contactNumber": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserRole"
            }
          }
        },
        "required": [
          "id",
          "contactNumber"
        ]
      },
      "TeamMemberResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/TeamMemberResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "CreateTeamDto": {
        "type": "object",
        "properties": {
          "teamName": {
            "type": "string",
            "description": "Name of the team",
            "example": "Team Dharini"
          },
          "firstName": {
            "type": "string",
            "description": "First Name of the team admin",
            "example": "dharini"
          },
          "lastName": {
            "type": "string",
            "description": "LastName of the team admin",
            "example": "artpark"
          },
          "email": {
            "type": "string",
            "description": "Email of the team admin",
            "example": "dharini@yopmail.com"
          },
          "contactNumber": {
            "type": "string"
          },
          "isProjectViewer": {
            "type": "boolean",
            "description": "ProjectViewer of the team",
            "example": true
          }
        },
        "required": [
          "teamName",
          "firstName",
          "lastName",
          "email",
          "isProjectViewer"
        ]
      },
      "TeamResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "teamName": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "logo": {
            "type": "string",
            "nullable": true
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          }
        },
        "required": [
          "id"
        ]
      },
      "TeamResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/TeamResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "MemberDto": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "First name",
            "example": "firstname"
          },
          "lastName": {
            "type": "string",
            "description": "Last name",
            "example": "lastname"
          },
          "email": {
            "type": "string",
            "description": "Email",
            "example": "user@mail.com"
          },
          "contactNumber": {
            "type": "string"
          },
          "role": {
            "type": "object",
            "description": "Role id",
            "example": "bf842546-fa54-4c6c-935f-f8146db98756"
          }
        }
      },
      "CreateMembersListDto": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "description": "Project id",
            "example": "bf842546-fa54-4c6c-935f-f8146db98756"
          },
          "teamId": {
            "type": "string",
            "description": "Team id",
            "example": "bf842546-fa54-4c6c-935f-f8146db98756"
          },
          "members": {
            "description": "Members data in list",
            "example": "[{\n          \"firstName\": \"firstname\",\n          \"lastName\": \"lastname\",\n          \"email\": \"user@mail.com\",\n          \"role\": \"bf842546-fa54-4c6c-935f-f8146db98756\",\n          \"project\": \"bf842546-fa54-4c6c-935f-f8146db98756\"\n        }]",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MemberDto"
            }
          }
        },
        "required": [
          "project",
          "teamId",
          "members"
        ]
      },
      "TeamMemberListResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamMemberResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "TeamMemberRemoveDto": {
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "description": "Team id",
            "example": "bf842546-fa54-4c6c-935f-f8146db98756"
          },
          "memberIds": {
            "description": "User id",
            "example": "[\"bf842546-fa54-4c6c-935f-f8146db98756\"]",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "teamId",
          "memberIds"
        ]
      },
      "RemovedTeamMemberResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "removedMembers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "success",
          "message",
          "removedMembers"
        ]
      },
      "ListTeamResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "RoleResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "scope",
          "type",
          "status",
          "createdAt",
          "updatedAt"
        ]
      },
      "ListAvailableRoleResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleResponse"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ListTeamMemberResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamMemberResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateMemberDto": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "First name",
            "example": "firstname"
          },
          "lastName": {
            "type": "string",
            "description": "Last name",
            "example": "lastname"
          },
          "email": {
            "type": "string",
            "description": "Email",
            "example": "user@mail.com"
          },
          "contactNumber": {
            "type": "string",
            "description": "Contact number of the recipient",
            "example": "83340234"
          },
          "role": {
            "type": "object",
            "description": "Role id",
            "example": "bf842546-fa54-4c6c-935f-f8146db98756"
          },
          "project": {
            "type": "string",
            "description": "Project id",
            "example": "bf842546-fa54-4c6c-935f-f8146db98756"
          }
        }
      },
      "UpdateTeamDto": {
        "type": "object",
        "properties": {
          "teamName": {
            "type": "string",
            "description": "Name of the team",
            "example": "Team Dharini"
          },
          "address": {
            "type": "string",
            "description": "Address of the lab"
          },
          "logo": {
            "type": "string",
            "description": "Logo of the lab"
          }
        }
      },
      "TeamMembersCollectorListType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "siteCount": {
            "type": "number"
          },
          "lastVisitedVisit": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "firstName",
          "lastName",
          "siteCount"
        ]
      },
      "PaginatedTeamMemberResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamMembersCollectorListType"
            }
          },
          "total": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "limit": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "TeamProgressActivityOverviewResponseData": {
        "type": "object",
        "properties": {
          "activeMembers": {
            "type": "number"
          },
          "collectedSamples": {
            "type": "number"
          }
        },
        "required": [
          "activeMembers",
          "collectedSamples"
        ]
      },
      "TeamProgressActivityOverviewResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/TeamProgressActivityOverviewResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "VisitDataForEveryMemberType": {
        "type": "object",
        "properties": {
          "siteName": {
            "type": "string"
          },
          "siteAddress": {
            "type": "string"
          },
          "siteState": {
            "type": "string"
          },
          "siteDistrict": {
            "type": "string"
          },
          "visitScheduledAt": {
            "format": "date-time",
            "type": "string"
          },
          "visitStatus": {
            "type": "string",
            "enum": [
              "upcoming",
              "overdue",
              "skipped",
              "completed"
            ]
          }
        },
        "required": [
          "siteName",
          "siteAddress",
          "siteState",
          "siteDistrict",
          "visitScheduledAt",
          "visitStatus"
        ]
      },
      "MembersActivityDataType": {
        "type": "object",
        "properties": {
          "visits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VisitDataForEveryMemberType"
            }
          },
          "totalNumberOfVisitsAssigned": {
            "type": "number"
          },
          "collector": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "totalNumberOfVisitsPending": {
            "type": "number"
          },
          "totalNumberOfVisitsOverDue": {
            "type": "number"
          }
        },
        "required": [
          "visits",
          "totalNumberOfVisitsAssigned",
          "collector",
          "id",
          "totalNumberOfVisitsPending",
          "totalNumberOfVisitsOverDue"
        ]
      },
      "TeamMemberActivityResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MembersActivityDataType"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "CreatePayloadDto": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "farmType": {
            "type": "string"
          },
          "siteType": {
            "type": "string"
          },
          "siteOwnerName": {
            "type": "string"
          },
          "siteOwnerNumber": {
            "type": "string"
          },
          "workerNumber": {
            "type": "number"
          },
          "address": {
            "type": "string"
          },
          "regionId": {
            "type": "string"
          },
          "pinCode": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "comment": {
            "type": "string"
          },
          "photos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "project",
          "name",
          "farmType",
          "siteType",
          "siteOwnerName",
          "siteOwnerNumber",
          "workerNumber",
          "address",
          "regionId",
          "pinCode",
          "latitude",
          "longitude",
          "comment",
          "photos"
        ]
      },
      "LabTestDetailsDto": {
        "type": "object",
        "properties": {
          "Conc. (ng/µl)": {
            "type": "number"
          },
          "260/280 Ratio": {
            "type": "number"
          },
          "Kit 1 H5 Ct Value": {
            "type": "object"
          },
          "Kit 1 N1 Ct Value": {
            "type": "object"
          },
          "Kit 1 Influenza A Ct Value": {
            "type": "object"
          },
          "Kit 2 H5 Ct Value": {
            "type": "object"
          },
          "Kit 2 H7 Ct Value": {
            "type": "object"
          },
          "Kit 2 H9 Ct Value": {
            "type": "object"
          }
        },
        "required": [
          "Conc. (ng/µl)",
          "260/280 Ratio",
          "Kit 1 H5 Ct Value",
          "Kit 1 N1 Ct Value",
          "Kit 1 Influenza A Ct Value",
          "Kit 2 H5 Ct Value",
          "Kit 2 H7 Ct Value",
          "Kit 2 H9 Ct Value"
        ]
      },
      "LabTestDto": {
        "type": "object",
        "properties": {
          "disease": {
            "type": "string"
          },
          "testedAt": {
            "type": "string"
          },
          "testResult": {
            "type": "string"
          },
          "testedBy": {
            "type": "object"
          },
          "extraDetails": {
            "$ref": "#/components/schemas/LabTestDetailsDto"
          },
          "details": {
            "$ref": "#/components/schemas/LabTestDetailsDto"
          }
        },
        "required": [
          "disease",
          "testedAt",
          "testResult",
          "testedBy",
          "extraDetails",
          "details"
        ]
      },
      "SampleDto": {
        "type": "object",
        "properties": {
          "sampleId": {
            "type": "string"
          },
          "barcode": {
            "type": "string"
          },
          "replicates": {
            "type": "string"
          },
          "comment": {
            "type": "string"
          },
          "diseases": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "photos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "labTests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabTestDto"
            }
          }
        },
        "required": [
          "sampleId",
          "barcode",
          "replicates",
          "comment",
          "diseases",
          "photos",
          "latitude",
          "longitude",
          "labTests"
        ]
      },
      "VisitDto": {
        "type": "object",
        "properties": {
          "visitId": {
            "type": "string"
          },
          "visitData": {
            "type": "object"
          },
          "samples": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SampleDto"
            }
          }
        },
        "required": [
          "visitId",
          "visitData",
          "samples"
        ]
      },
      "StructuredSiteDto": {
        "type": "object",
        "properties": {
          "sites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreatePayloadDto"
            }
          },
          "visits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VisitDto"
            }
          },
          "samples": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SampleDto"
            }
          },
          "labTests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabTestDto"
            }
          }
        },
        "required": [
          "sites",
          "visits",
          "samples",
          "labTests"
        ]
      },
      "SampleScriptResponseData": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "success",
          "message"
        ]
      },
      "DiseaseSiteStat": {
        "type": "object",
        "properties": {
          "diseaseId": {
            "type": "string"
          },
          "diseaseName": {
            "type": "string"
          },
          "diseaseIndex": {
            "type": "number"
          },
          "shortName": {
            "type": "string"
          },
          "totalSites": {
            "type": "number"
          },
          "positiveSites": {
            "type": "number"
          },
          "negativeSites": {
            "type": "number"
          },
          "positiveSitesCoordinates": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "negativeSitesCoordinates": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "diseaseId",
          "diseaseName",
          "shortName",
          "totalSites",
          "positiveSites",
          "negativeSites",
          "positiveSitesCoordinates",
          "negativeSitesCoordinates"
        ]
      },
      "DiseaseFreeSite": {
        "type": "object",
        "properties": {
          "coordinates": {
            "$ref": "#/components/schemas/LocationCoordinates"
          },
          "siteName": {
            "type": "string"
          },
          "totalSampleCount": {
            "type": "number"
          },
          "totalPositiveSampleCount": {
            "type": "number"
          }
        },
        "required": [
          "coordinates",
          "siteName",
          "totalSampleCount",
          "totalPositiveSampleCount"
        ]
      },
      "ExploreSiteData": {
        "type": "object",
        "properties": {
          "siteData": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiseaseSiteStat"
            }
          },
          "diseaseFreeSiteCount": {
            "type": "number"
          },
          "diseaseFreeSitesCoordinates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiseaseFreeSite"
            }
          }
        },
        "required": [
          "siteData",
          "diseaseFreeSiteCount",
          "diseaseFreeSitesCoordinates"
        ]
      },
      "ExploreSitesResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/ExploreSiteData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "GetSiteOnDiseaseSiteStatData": {
        "type": "object",
        "properties": {
          "totalPresent": {
            "type": "number"
          },
          "totalPositive": {
            "type": "number"
          }
        },
        "required": [
          "totalPresent",
          "totalPositive"
        ]
      },
      "GetSiteOnDiseaseVisitStatData": {
        "type": "object",
        "properties": {
          "totalPresent": {
            "type": "number"
          },
          "totalVisited": {
            "type": "number"
          }
        },
        "required": [
          "totalPresent",
          "totalVisited"
        ]
      },
      "GetSiteOnSampleVisitStatData": {
        "type": "object",
        "properties": {
          "totalPresent": {
            "type": "number"
          },
          "totalTested": {
            "type": "number"
          }
        },
        "required": [
          "totalPresent",
          "totalTested"
        ]
      },
      "GetSiteOnDiseaseResponseData": {
        "type": "object",
        "properties": {
          "sites": {
            "$ref": "#/components/schemas/GetSiteOnDiseaseSiteStatData"
          },
          "visits": {
            "$ref": "#/components/schemas/GetSiteOnDiseaseVisitStatData"
          },
          "samples": {
            "$ref": "#/components/schemas/GetSiteOnSampleVisitStatData"
          }
        },
        "required": [
          "sites",
          "visits",
          "samples"
        ]
      },
      "GetSiteOnDiseaseResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/GetSiteOnDiseaseResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "SiteStatType": {
        "type": "object",
        "properties": {
          "district": {
            "type": "string"
          },
          "positiveCount": {
            "type": "number"
          },
          "totalSiteCount": {
            "type": "number"
          }
        },
        "required": [
          "district",
          "positiveCount",
          "totalSiteCount"
        ]
      },
      "MostPositiveSiteResponseData": {
        "type": "object",
        "properties": {
          "siteStats": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SiteStatType"
            }
          }
        },
        "required": [
          "siteStats"
        ]
      },
      "MostPositiveSiteResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/MostPositiveSiteResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "CreateDiseaseDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the disease",
            "example": "Dengue"
          },
          "shortName": {
            "type": "string",
            "description": "Short name of the disease",
            "example": "DNG"
          },
          "code": {
            "type": "string",
            "description": "Code associated with the disease",
            "example": "DA12dgh"
          }
        },
        "required": [
          "name",
          "shortName",
          "code"
        ]
      },
      "DiseaseResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "shortName": {
            "type": "string"
          },
          "index": {
            "type": "number"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "nullable": true,
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "code",
          "name",
          "shortName",
          "index",
          "createdAt",
          "updatedAt"
        ]
      },
      "DiseaseResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/DiseaseResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ListDiseaseResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiseaseResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateDiseaseDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the disease",
            "example": "Dengue"
          },
          "shortName": {
            "type": "string",
            "description": "Short name of the disease",
            "example": "DNG"
          },
          "code": {
            "type": "string",
            "description": "Code associated with the disease",
            "example": "DA12dgh"
          }
        }
      },
      "InvitePartnerDto": {
        "type": "object",
        "properties": {
          "individualContractors": {
            "description": "Contractors",
            "example": "Contractors",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "collectors": {
            "description": "Collectors",
            "example": "collectors",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "projectId": {
            "type": "object",
            "format": "uuid"
          },
          "invitedBy": {
            "type": "object",
            "format": "uuid"
          }
        }
      },
      "CreateWorkspaceInviteDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "description": "Email of the person being invited"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid",
            "description": "Workspace UUID to invite the user into"
          },
          "roleId": {
            "type": "string",
            "format": "uuid",
            "description": "Workspace-scoped Role UUID to assign when the invite is accepted"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "workspaceId",
          "roleId"
        ]
      },
      "Invite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "accepted": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "accepted"
        ]
      },
      "InviteResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/Invite"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "FetchAllInviteResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invite"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "CreatePermissionDto": {
        "type": "object",
        "properties": {}
      },
      "UpdatePermissionDto": {
        "type": "object",
        "properties": {}
      },
      "CreateRoleDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name",
            "example": "collector"
          },
          "permissions": {
            "description": "Permissions",
            "example": "[id1, id2]",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "name",
          "permissions"
        ]
      },
      "RoleResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "scope",
          "type",
          "status",
          "createdAt",
          "updatedAt"
        ]
      },
      "ListRoleResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateRoleDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name",
            "example": "collector"
          },
          "permissions": {
            "description": "Name",
            "example": "collector",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "UpdateAccessDto": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "roleId": {
            "type": "string"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "CreateSurveillanceTypeDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Surveillance type name",
            "example": "name"
          }
        },
        "required": [
          "name"
        ]
      },
      "SurveillanceTypeResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "createdAt",
          "updatedAt"
        ]
      },
      "SurveillanceTypeResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SurveillanceTypeResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ListSurveillanceTypeResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SurveillanceTypeResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateSurveillanceTypeDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Surveillance type name",
            "example": "name"
          }
        }
      },
      "CreateLocationDto": {
        "type": "object",
        "properties": {
          "regionId": {
            "type": "string",
            "description": "Id of the district",
            "example": "district_111"
          },
          "latitude": {
            "type": "number",
            "description": "current location latitude",
            "example": "34.0522"
          },
          "longitude": {
            "type": "number",
            "description": "current location longitude",
            "example": "-118.2437"
          }
        },
        "required": [
          "regionId"
        ]
      },
      "LocationResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "coordinates": {
            "$ref": "#/components/schemas/LocationCoordinates"
          },
          "region": {
            "$ref": "#/components/schemas/SiteResponseRegion"
          }
        },
        "required": [
          "id"
        ]
      },
      "LocationResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/LocationResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ListLocationResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocationResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateLocationDto": {
        "type": "object",
        "properties": {
          "regionId": {
            "type": "string",
            "description": "Id of the district",
            "example": "district_111"
          },
          "latitude": {
            "type": "number",
            "description": "current location latitude",
            "example": "34.0522"
          },
          "longitude": {
            "type": "number",
            "description": "current location longitude",
            "example": "-118.2437"
          }
        }
      },
      "CreateSpeciesDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the species",
            "example": "Chicken"
          },
          "emojiIcon": {
            "type": "string",
            "description": "Dynamic emoji for the species",
            "example": "🐔"
          },
          "abbreviation": {
            "type": "string",
            "description": "Abbreviation for the species",
            "example": "CH"
          },
          "diseaseShortNames": {
            "description": "Applicable disease short names",
            "example": [
              "AI",
              "FMD"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "active": {
            "type": "boolean",
            "description": "Active status",
            "example": true
          }
        },
        "required": [
          "name"
        ]
      },
      "SpeciesResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "emojiIcon": {
            "type": "string",
            "nullable": true,
            "description": "Dynamic emoji for the species",
            "example": "🐔"
          },
          "diseaseShortNames": {
            "nullable": true,
            "description": "List of applicable disease short names",
            "example": [
              "AI",
              "FMD"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "abbreviation": {
            "type": "string",
            "nullable": true,
            "description": "Abbreviation for the species used in accession ID",
            "example": "CH"
          },
          "active": {
            "type": "boolean"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "active",
          "createdAt",
          "updatedAt"
        ]
      },
      "SpeciesResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SpeciesResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ListSpeciesResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SpeciesResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateSpeciesDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the species",
            "example": "Chicken"
          },
          "emojiIcon": {
            "type": "string",
            "description": "Dynamic emoji for the species",
            "example": "🐔"
          },
          "abbreviation": {
            "type": "string",
            "description": "Abbreviation for the species",
            "example": "CH"
          },
          "diseaseShortNames": {
            "description": "Applicable disease short names",
            "example": [
              "AI",
              "FMD"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "active": {
            "type": "boolean",
            "description": "Active status",
            "example": true
          }
        }
      },
      "CreateSampleTypeDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name",
            "example": "Blood"
          },
          "surveillanceType": {
            "type": "object",
            "format": "uuid",
            "description": "surveillanceType",
            "example": "Clinical surveillanceTypeId"
          },
          "emojiIcon": {
            "type": "string",
            "description": "Dynamic emoji for the sample type",
            "example": "🚰"
          },
          "abbreviation": {
            "type": "string",
            "description": "Abbreviation for the sample type",
            "example": "CL"
          },
          "diseaseShortNames": {
            "description": "List of applicable disease short names",
            "example": [
              "AI",
              "FMD"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string",
            "description": "Status"
          }
        },
        "required": [
          "name",
          "surveillanceType"
        ]
      },
      "SampleTypeResponseData": {
        "type": "object",
        "properties": {
          "emojiIcon": {
            "type": "string",
            "nullable": true,
            "description": "Dynamic emoji for the sample type",
            "example": "🚰"
          },
          "diseaseShortNames": {
            "nullable": true,
            "description": "List of applicable disease short names",
            "example": [
              "AI",
              "FMD"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "surveillanceType": {
            "$ref": "#/components/schemas/SurveillanceType"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "createdAt",
          "updatedAt"
        ]
      },
      "SampleTypeResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SampleTypeResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ListSampleTypeResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SampleTypeResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateSampleTypeDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name",
            "example": "Blood"
          },
          "surveillanceType": {
            "type": "object",
            "format": "uuid",
            "description": "surveillanceType",
            "example": "Clinical surveillanceTypeId"
          },
          "emojiIcon": {
            "type": "string",
            "description": "Dynamic emoji for the sample type",
            "example": "🚰"
          },
          "abbreviation": {
            "type": "string",
            "description": "Abbreviation for the sample type",
            "example": "CL"
          },
          "diseaseShortNames": {
            "description": "List of applicable disease short names",
            "example": [
              "AI",
              "FMD"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string",
            "description": "Status"
          }
        }
      },
      "AnimalMetadataSpecies": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "emojiIcon": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "AnimalMetadataData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "animalTagId": {
            "type": "string",
            "nullable": true
          },
          "birdId": {
            "type": "string",
            "nullable": true
          },
          "species": {
            "nullable": true,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/AnimalMetadataSpecies"
              }
            ]
          },
          "breed": {
            "type": "string",
            "nullable": true
          },
          "ageYears": {
            "type": "number",
            "nullable": true
          },
          "ageMonths": {
            "type": "number",
            "nullable": true
          },
          "gender": {
            "type": "string",
            "nullable": true
          },
          "vaccinationStage": {
            "type": "string",
            "nullable": true
          },
          "diseaseHistory": {
            "nullable": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "averageMilkProductionPerDayWithinOneYear": {
            "type": "number",
            "nullable": true
          },
          "averageMilkProductionPerDayBeforeOneYear": {
            "type": "number",
            "nullable": true
          },
          "feverObserved": {
            "type": "boolean"
          },
          "firstNoticedDate": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "vectors": {
            "nullable": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "dropInFeedIntake": {
            "type": "boolean"
          },
          "dropInWaterIntake": {
            "type": "boolean"
          },
          "dropInEggProduction": {
            "type": "boolean"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "feverObserved",
          "dropInFeedIntake",
          "dropInWaterIntake",
          "dropInEggProduction",
          "createdAt"
        ]
      },
      "ListAnimalMetadataResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnimalMetadataData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "SampleBreakDownResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "photos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "locationId": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "totalSampleCount": {
            "type": "number"
          },
          "positiveSampleCount": {
            "type": "number"
          },
          "negativeSampleCount": {
            "type": "number"
          },
          "unclearSampleCount": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "code",
          "photos",
          "locationId",
          "state",
          "district",
          "totalSampleCount",
          "positiveSampleCount",
          "negativeSampleCount",
          "unclearSampleCount"
        ]
      },
      "SampleBreakDownResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SampleBreakDownResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "CreateRegionDto": {
        "type": "object",
        "properties": {
          "regionType": {
            "type": "string",
            "enum": [
              "country",
              "state",
              "district",
              "subdistrict",
              "city"
            ]
          },
          "name": {
            "type": "string"
          },
          "parentId": {
            "type": "string"
          }
        },
        "required": [
          "regionType",
          "name"
        ]
      },
      "Region": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "regionType": {
            "enum": [
              "country",
              "state",
              "district",
              "subdistrict",
              "city"
            ],
            "type": "string"
          },
          "lgdCode": {
            "type": "string",
            "nullable": true
          },
          "localName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "regionType",
          "localName",
          "name",
          "createdAt",
          "updatedAt"
        ]
      },
      "RegionResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "regionType": {
            "enum": [
              "country",
              "state",
              "district",
              "subdistrict",
              "city"
            ],
            "type": "string"
          },
          "lgdCode": {
            "type": "string",
            "nullable": true
          },
          "localName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "subRegions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Region"
            }
          },
          "parentRegion": {
            "$ref": "#/components/schemas/Region"
          }
        },
        "required": [
          "id",
          "regionType",
          "localName",
          "name",
          "createdAt",
          "updatedAt"
        ]
      },
      "RegionResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/RegionResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ListRegionResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RegionResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ProjectLocationStateType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "regionType": {
            "type": "string"
          },
          "lgdcode": {
            "type": "number"
          },
          "localname": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "createdat": {
            "format": "date-time",
            "type": "string"
          },
          "updatedat": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "regionType",
          "lgdcode",
          "localname",
          "name",
          "createdat",
          "updatedat"
        ]
      },
      "ProjectLocationStateResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectLocationStateType"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateRegionDto": {
        "type": "object",
        "properties": {
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string",
            "description": "Status of the region"
          },
          "regionType": {
            "type": "string",
            "enum": [
              "country",
              "state",
              "district",
              "subdistrict",
              "city"
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "regionType",
          "name"
        ]
      },
      "ConvertExcelResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "success",
          "message"
        ]
      },
      "SampleExposesDto": {
        "type": "object",
        "properties": {
          "collectedAt": {
            "format": "date-time",
            "type": "string"
          },
          "collectionTime": {
            "format": "date-time",
            "type": "string"
          },
          "comment": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "collectedAt",
          "collectionTime"
        ]
      },
      "UserResponseDto": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "nullable": true,
            "example": "John"
          },
          "id": {
            "type": "string"
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id"
        ]
      },
      "DiseaseResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "shortName": {
            "type": "string"
          },
          "index": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "shortName",
          "index"
        ]
      },
      "LabTestResponseDto": {
        "type": "object",
        "properties": {
          "testResult": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TestResultType"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "testedAt": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "sample": {
            "$ref": "#/components/schemas/SampleExposesDto"
          },
          "testedBy": {
            "$ref": "#/components/schemas/UserResponseDto"
          },
          "disease": {
            "$ref": "#/components/schemas/DiseaseResponseDto"
          }
        },
        "required": [
          "id"
        ]
      },
      "FetchAllLabTestResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabTestResponseDto"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UploadImageDto": {
        "type": "object",
        "properties": {
          "files": {
            "type": "array",
            "description": "Array of files to be uploaded",
            "items": {
              "type": "string",
              "format": "binary"
            }
          }
        },
        "required": [
          "files"
        ]
      },
      "FileUploadResult": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string"
          },
          "uploaded": {
            "type": "boolean"
          },
          "fileUrl": {
            "type": "string",
            "nullable": true
          },
          "publicUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "filename",
          "uploaded",
          "fileUrl",
          "publicUrl"
        ]
      },
      "UploadMultipleFilesResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileUploadResult"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "DiseaseSampleStatsType": {
        "type": "object",
        "properties": {
          "totalSamples": {
            "type": "number"
          },
          "testedSamples": {
            "type": "number"
          }
        },
        "required": [
          "totalSamples",
          "testedSamples"
        ]
      },
      "DiseaseSampleStatsResponseData": {
        "type": "object",
        "properties": {
          "diseaseName": {
            "$ref": "#/components/schemas/DiseaseSampleStatsType"
          }
        },
        "required": [
          "diseaseName"
        ]
      },
      "DiseaseStatsResponseData": {
        "type": "object",
        "properties": {
          "diseaseStats": {
            "$ref": "#/components/schemas/DiseaseSampleStatsResponseData"
          }
        },
        "required": [
          "diseaseStats"
        ]
      },
      "DiseaseStatsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/DiseaseStatsResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "DiseaseStatistics": {
        "type": "object",
        "properties": {
          "diseaseShortName": {
            "type": "string"
          },
          "totalSamples": {
            "type": "number"
          },
          "positiveSamples": {
            "type": "number"
          }
        },
        "required": [
          "diseaseShortName",
          "totalSamples",
          "positiveSamples"
        ]
      },
      "ProjectDiseaseStatsResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "visitedSites": {
            "type": "number"
          },
          "notVisitedSites": {
            "type": "number"
          },
          "diseaseStatistics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiseaseStatistics"
            }
          },
          "totalSiteCount": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "diseaseStatistics"
        ]
      },
      "PaginatedProjectDiseaseStatsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectDiseaseStatsResponseData"
            }
          },
          "total": {
            "type": "number"
          },
          "page": {
            "type": "number"
          },
          "limit": {
            "type": "number"
          },
          "totalPages": {
            "type": "number"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "MonitorDashboardSummary": {
        "type": "object",
        "properties": {
          "totalSamples": {
            "type": "number"
          },
          "processedSamples": {
            "type": "number"
          },
          "positivityRate": {
            "type": "number"
          },
          "positiveSamples": {
            "type": "number"
          },
          "negativeSamples": {
            "type": "number"
          },
          "positiveSites": {
            "type": "number"
          },
          "inconclusiveSamples": {
            "type": "number"
          }
        },
        "required": [
          "totalSamples",
          "processedSamples",
          "positivityRate",
          "positiveSites",
          "inconclusiveSamples"
        ]
      },
      "MonitorDashboardTrendPoint": {
        "type": "object",
        "properties": {
          "period": {
            "format": "date-time",
            "type": "string"
          },
          "totalSamples": {
            "type": "number"
          },
          "positiveSamples": {
            "type": "number"
          },
          "negativeSamples": {
            "type": "number"
          }
        },
        "required": [
          "period",
          "totalSamples",
          "positiveSamples",
          "negativeSamples"
        ]
      },
      "MonitorDashboardDiseasePositive": {
        "type": "object",
        "properties": {
          "diseaseId": {
            "type": "string"
          },
          "diseaseName": {
            "type": "string"
          },
          "diseaseShortName": {
            "type": "string"
          },
          "diseaseIndex": {
            "type": "number"
          },
          "positiveSamples": {
            "type": "number"
          }
        },
        "required": [
          "diseaseId",
          "diseaseName",
          "diseaseShortName",
          "diseaseIndex",
          "positiveSamples"
        ]
      },
      "MonitorDashboardResponseData": {
        "type": "object",
        "properties": {
          "summary": {
            "$ref": "#/components/schemas/MonitorDashboardSummary"
          },
          "trend": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MonitorDashboardTrendPoint"
            }
          },
          "diseasePositive": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MonitorDashboardDiseasePositive"
            }
          }
        },
        "required": [
          "summary",
          "trend",
          "diseasePositive"
        ]
      },
      "MonitorDashboardResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/MonitorDashboardResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "CreateKitDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Kit name",
            "example": "Blood"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string",
            "description": "Status"
          }
        },
        "required": [
          "name"
        ]
      },
      "KitResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "createdAt",
          "updatedAt"
        ]
      },
      "KitResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/KitResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "ListKitResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KitResponseData"
            }
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "UpdateKitDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Kit name",
            "example": "Blood"
          },
          "status": {
            "enum": [
              "active",
              "inactive",
              "deleted"
            ],
            "type": "string",
            "description": "Status"
          }
        }
      },
      "ProjectSearchResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "SiteSearchResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "projectId"
        ]
      },
      "DiseaseSearchResponseData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "SearchResponseData": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectSearchResponseData"
            }
          },
          "sites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SiteSearchResponseData"
            }
          },
          "diseases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiseaseSearchResponseData"
            }
          }
        },
        "required": [
          "projects",
          "sites",
          "diseases"
        ]
      },
      "SearchResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SearchResponseData"
          }
        },
        "required": [
          "success",
          "message",
          "data"
        ]
      },
      "PresignUploadDto": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "contentLength": {
            "type": "number",
            "minimum": 1
          }
        },
        "required": [
          "filename",
          "contentLength"
        ]
      },
      "SubmitSequencingJobDto": {
        "type": "object",
        "properties": {
          "sourceType": {
            "type": "string",
            "enum": [
              "lab",
              "ncbi",
              "manual"
            ]
          },
          "labTestId": {
            "type": "string",
            "format": "uuid"
          },
          "ncbiAccession": {
            "type": "string"
          },
          "manualSampleBarcode": {
            "type": "string"
          },
          "manualSiteName": {
            "type": "string"
          },
          "fileFormat": {
            "type": "string",
            "enum": [
              "FASTA",
              "FASTQ"
            ]
          },
          "libraryType": {
            "type": "string",
            "enum": [
              "Single End",
              "Paired End"
            ]
          },
          "platform": {
            "type": "string"
          },
          "sequencingMethod": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "pipelineId": {
            "type": "string"
          },
          "inputKey": {
            "type": "string",
            "nullable": true
          },
          "inputFilename": {
            "type": "string"
          },
          "extraInputKeys": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "params": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "required": [
          "sourceType",
          "pipelineId"
        ]
      },
      "CreateWorkspaceDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          }
        },
        "required": [
          "name"
        ]
      },
      "UpdateWorkspaceDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "New workspace name"
          }
        },
        "required": [
          "name"
        ]
      },
      "CreateWorkspaceProjectDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 3,
            "description": "Name of the project",
            "example": "Project demo"
          },
          "code": {
            "type": "string",
            "description": "Code associated with the project",
            "example": "P-123"
          },
          "diseases": {
            "description": "Unique identifier for the disease",
            "example": [
              "20f0a586-1b8e-40eb-9576-b76966c5102a"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "surveillanceTypes": {
            "description": "List of unique identifiers for surveillance types",
            "example": [
              "570c4a4c-c6f6-4138-a6ec-57aa1a81d0d2"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "regions": {
            "description": "List of unique identifiers for locations",
            "example": [
              "a382d6b2-3565-45e2-88a5-5e59b1660d84"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "teams": {
            "description": "Email associated with the project",
            "example": [
              {
                "teamName": "test1",
                "email": "test@gmail.com",
                "isProjectViewer": true
              }
            ],
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "name",
          "code",
          "diseases",
          "surveillanceTypes",
          "regions",
          "teams"
        ]
      },
      "CreateWorkspaceMemberDto": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid",
            "description": "User UUID to add to the workspace"
          },
          "roleId": {
            "type": "string",
            "format": "uuid",
            "description": "Workspace-scoped Role UUID to assign"
          }
        },
        "required": [
          "userId",
          "roleId"
        ]
      },
      "UpdateWorkspaceMemberDto": {
        "type": "object",
        "properties": {
          "roleId": {
            "type": "string",
            "format": "uuid",
            "description": "Workspace-scoped Role UUID to assign"
          }
        },
        "required": [
          "roleId"
        ]
      }
    }
  }
}
