{
  "openapi": "3.0.0",
  "info": {
    "title": "maitretask",
    "version": "2.13.15",
    "description": "maitre task",
    "contact": {
      "name": "kamran186",
      "email": "kamran@darkhorsesolutions.co"
    }
  },
  "paths": {
    "/MewsWebHook": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "MewsWebHook",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Mews Webhook Api"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "AuthController.MewsWebHook"
      }
    },
    "/addCompletedByInPreviousTask": {
      "get": {
        "x-controller-name": "TaskController",
        "x-operation-name": "addCompletedByInPreviousTask",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Rooms and Floors for workshifts success"
                }
              }
            }
          }
        },
        "operationId": "TaskController.addCompletedByInPreviousTask"
      }
    },
    "/addDeliveryCategory": {
      "post": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "addDeliveryCategory",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Add Delivery Category."
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array"
              }
            }
          }
        },
        "operationId": "DeliveryServiceController.addDeliveryCategory"
      }
    },
    "/addHotelIdCleaning": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "addHotelIdCleanig",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Sritch to add hotel id in cleaning result table",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "operationId": "RoomsController.addHotelIdCleanig"
      }
    },
    "/addHotelIdTurndown": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "addHotelIdTurndown",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Sritch to add hotel id in cleaning result table",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "operationId": "RoomsController.addHotelIdTurndown"
      }
    },
    "/addHotelTokenTime": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "AddLinenTime",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Returns List of Filters for Location Screen",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "operationId": "HotelController.AddLinenTime"
      }
    },
    "/addNewWorkshifts": {
      "post": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "create",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workshift"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array"
              }
            }
          }
        },
        "operationId": "WorkshiftController.create"
      }
    },
    "/addParentIdInChildTasks": {
      "get": {
        "x-controller-name": "TaskController",
        "x-operation-name": "addParentIdInChildTasks",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Add parent ids in recurring tasks"
                }
              }
            }
          }
        },
        "operationId": "TaskController.addParentIdInChildTasks"
      }
    },
    "/admin/hotel-reset/mismatches": {
      "get": {
        "x-controller-name": "HotelResetAdminController",
        "x-operation-name": "listMismatches",
        "tags": [
          "HotelResetAdminController"
        ],
        "responses": {
          "200": {
            "description": "List legacy vs shadow mismatches",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workflow",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "HotelResetAdminController.listMismatches"
      }
    },
    "/admin/hotel-reset/replays": {
      "post": {
        "x-controller-name": "HotelResetAdminController",
        "x-operation-name": "queueReplay",
        "tags": [
          "HotelResetAdminController"
        ],
        "responses": {
          "200": {
            "description": "Queue a hotel reset replay",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "hotelId",
                    "hotelLocalDate",
                    "mode"
                  ],
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "hotelId": {
                      "type": "string"
                    },
                    "hotelLocalDate": {
                      "type": "string"
                    },
                    "mode": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotelId",
                  "hotelLocalDate"
                ],
                "properties": {
                  "hotelId": {
                    "type": "string"
                  },
                  "hotelLocalDate": {
                    "type": "string"
                  },
                  "confirmLive": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "operationId": "HotelResetAdminController.queueReplay"
      }
    },
    "/admin/hotel-reset/runs": {
      "get": {
        "x-controller-name": "HotelResetAdminController",
        "x-operation-name": "listRuns",
        "tags": [
          "HotelResetAdminController"
        ],
        "responses": {
          "200": {
            "description": "List hotel reset audit runs",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workflow",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phase",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "trigger",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "HotelResetAdminController.listRuns"
      }
    },
    "/asset-register/assets/{assetId}/documents/{documentId}/download-url": {
      "post": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "createAssetDocumentDownloadUrl",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.createAssetDocumentDownloadUrl"
          }
        },
        "parameters": [
          {
            "name": "assetId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.createAssetDocumentDownloadUrl"
      }
    },
    "/asset-register/assets/{assetId}/documents/{documentId}": {
      "delete": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "archiveAssetDocument",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.archiveAssetDocument"
          }
        },
        "parameters": [
          {
            "name": "assetId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.archiveAssetDocument"
      }
    },
    "/asset-register/assets/{assetId}/documents": {
      "post": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "uploadAssetDocuments",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.uploadAssetDocuments"
          }
        },
        "parameters": [
          {
            "name": "assetId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "AssetRegisterController.uploadAssetDocuments"
      },
      "get": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "listAssetDocuments",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.listAssetDocuments"
          }
        },
        "parameters": [
          {
            "name": "assetId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.listAssetDocuments"
      }
    },
    "/asset-register/assets/{id}/history": {
      "post": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "createManualHistoryEntry",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.createManualHistoryEntry"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "AssetRegisterController.createManualHistoryEntry"
      },
      "get": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "listAssetHistory",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.listAssetHistory"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.listAssetHistory"
      }
    },
    "/asset-register/assets/{assetId}/maintenance-plans/{planId}": {
      "patch": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "updateMaintenancePlan",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.updateMaintenancePlan"
          }
        },
        "parameters": [
          {
            "name": "assetId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "planId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 2
        },
        "operationId": "AssetRegisterController.updateMaintenancePlan"
      },
      "get": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "getMaintenancePlan",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.getMaintenancePlan"
          }
        },
        "parameters": [
          {
            "name": "assetId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "planId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.getMaintenancePlan"
      },
      "delete": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "archiveMaintenancePlan",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.archiveMaintenancePlan"
          }
        },
        "parameters": [
          {
            "name": "assetId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "planId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.archiveMaintenancePlan"
      }
    },
    "/asset-register/assets/{assetId}/maintenance-plans": {
      "post": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "createMaintenancePlan",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.createMaintenancePlan"
          }
        },
        "parameters": [
          {
            "name": "assetId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "AssetRegisterController.createMaintenancePlan"
      },
      "get": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "listMaintenancePlans",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.listMaintenancePlans"
          }
        },
        "parameters": [
          {
            "name": "assetId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.listMaintenancePlans"
      }
    },
    "/asset-register/assets/{id}": {
      "patch": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "updateAsset",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.updateAsset"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "AssetRegisterController.updateAsset"
      },
      "get": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "getAsset",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.getAsset"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.getAsset"
      },
      "delete": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "archiveAsset",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.archiveAsset"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.archiveAsset"
      }
    },
    "/asset-register/assets": {
      "post": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "createAsset",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.createAsset"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "AssetRegisterController.createAsset"
      },
      "get": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "listAssets",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.listAssets"
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "registerId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subCategoryId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "departmentId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationType",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "AssetRegisterController.listAssets"
      }
    },
    "/asset-register/categories/{id}": {
      "patch": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "updateCategory",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.updateCategory"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "AssetRegisterController.updateCategory"
      },
      "get": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "getCategory",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.getCategory"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.getCategory"
      },
      "delete": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "archiveCategory",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.archiveCategory"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.archiveCategory"
      }
    },
    "/asset-register/categories": {
      "post": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "createCategory",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.createCategory"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "AssetRegisterController.createCategory"
      },
      "get": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "listCategories",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.listCategories"
          }
        },
        "parameters": [
          {
            "name": "registerId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.listCategories"
      }
    },
    "/asset-register/registers/{id}": {
      "patch": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "updateRegister",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.updateRegister"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "AssetRegisterController.updateRegister"
      },
      "get": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "getRegister",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.getRegister"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.getRegister"
      },
      "delete": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "archiveRegister",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.archiveRegister"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.archiveRegister"
      }
    },
    "/asset-register/registers": {
      "post": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "createRegister",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.createRegister"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "AssetRegisterController.createRegister"
      },
      "get": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "listRegisters",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.listRegisters"
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "includeArchived",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "operationId": "AssetRegisterController.listRegisters"
      }
    },
    "/asset-register/sub-categories/{id}": {
      "patch": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "updateSubCategory",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.updateSubCategory"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "AssetRegisterController.updateSubCategory"
      },
      "get": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "getSubCategory",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.getSubCategory"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.getSubCategory"
      },
      "delete": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "archiveSubCategory",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.archiveSubCategory"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AssetRegisterController.archiveSubCategory"
      }
    },
    "/asset-register/sub-categories": {
      "post": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "createSubCategory",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.createSubCategory"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "AssetRegisterController.createSubCategory"
      },
      "get": {
        "x-controller-name": "AssetRegisterController",
        "x-operation-name": "listSubCategories",
        "tags": [
          "AssetRegisterController"
        ],
        "responses": {
          "200": {
            "description": "Return value of AssetRegisterController.listSubCategories"
          }
        },
        "parameters": [
          {
            "name": "registerId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "AssetRegisterController.listSubCategories"
      }
    },
    "/assignTask/{id}": {
      "patch": {
        "x-controller-name": "TaskController",
        "x-operation-name": "assignTask",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "API used to pick or reject the task"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "assignee": {
                    "type": "string"
                  },
                  "isPickup": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "operationId": "TaskController.assignTask"
      }
    },
    "/cancelRoomCleaning/{roomId}": {
      "put": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "cancelRoomCleaning",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Cancel Room Cleaning"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "roomId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoomsController.cancelRoomCleaning"
      }
    },
    "/cancelRoomTurnDown/{roomId}": {
      "put": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "cancelRoomTurnDown",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Cancel Room TurnDown"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "roomId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoomsController.cancelRoomTurnDown"
      }
    },
    "/changePassword": {
      "put": {
        "x-controller-name": "UsersController",
        "x-operation-name": "changePassword",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Array of User model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Users"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "UsersController.changePassword"
      }
    },
    "/changePhoneNumber": {
      "put": {
        "x-controller-name": "UsersController",
        "x-operation-name": "changeUserPhoneNumber",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Change User Phone Number",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "phoneNumber": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "UsersController.changeUserPhoneNumber"
      }
    },
    "/changeRoomAssignee": {
      "post": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "changeRoomAssignee",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Change Room Assignee or Unassign the room.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RoomsController.changeRoomAssignee"
      }
    },
    "/changeRoomStatus": {
      "post": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "changeRoomStatus",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Change Room Status",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RoomsController.changeRoomStatus"
      }
    },
    "/changeRoomStatusBulk": {
      "post": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "changeRoomStatusBulk",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Bulk Change Room Status - Efficient bulk updates for multiple rooms",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "total": {
                      "type": "number"
                    },
                    "successful": {
                      "type": "number"
                    },
                    "failed": {
                      "type": "number"
                    },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "roomId": {
                            "type": "string"
                          },
                          "success": {
                            "type": "boolean"
                          },
                          "error": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "updates"
                ],
                "properties": {
                  "updates": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "roomId",
                        "date"
                      ],
                      "properties": {
                        "roomId": {
                          "type": "string"
                        },
                        "reservationStatus": {
                          "type": "string"
                        },
                        "cleaningStatus": {
                          "type": "string"
                        },
                        "turndownStatus": {
                          "type": "string"
                        },
                        "date": {
                          "type": "string"
                        },
                        "text": {
                          "type": "string"
                        },
                        "roomNumber": {
                          "oneOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "guestName": {
                          "type": "string"
                        },
                        "linen_status": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "RoomsController.changeRoomStatusBulk"
      }
    },
    "/changeUserStatus": {
      "patch": {
        "x-controller-name": "UsersController",
        "x-operation-name": "changeUserStatus",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "User will be deleted"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "UsersController.changeUserStatus"
      }
    },
    "/checkUKGConnection/{hotelId}": {
      "get": {
        "x-controller-name": "UKGController",
        "x-operation-name": "checkUKGConnection",
        "tags": [
          "UKGController"
        ],
        "responses": {
          "200": {
            "description": "Test UKG Connection.",
            "content": {}
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UKGController.checkUKGConnection"
      }
    },
    "/commonAreasScript": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "commonAreasScript",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Returns List of Filters for Location Screen",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "operationId": "HotelController.commonAreasScript"
      }
    },
    "/compensation-types/hotel/{hotelId}": {
      "get": {
        "x-controller-name": "CompensationTypeController",
        "x-operation-name": "findByHotel",
        "tags": [
          "CompensationTypeController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "CompensationTypes found by hotel"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "CompensationTypeController.findByHotel"
      }
    },
    "/compensation-types/{id}": {
      "patch": {
        "x-controller-name": "CompensationTypeController",
        "x-operation-name": "updateById",
        "tags": [
          "CompensationTypeController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "CompensationType updated successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "CompensationTypeController.updateById"
      },
      "get": {
        "x-controller-name": "CompensationTypeController",
        "x-operation-name": "findById",
        "tags": [
          "CompensationTypeController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "CompensationType found"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "CompensationTypeController.findById"
      },
      "delete": {
        "x-controller-name": "CompensationTypeController",
        "x-operation-name": "deleteById",
        "tags": [
          "CompensationTypeController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "CompensationType deleted successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "CompensationTypeController.deleteById"
      }
    },
    "/compensation-types": {
      "post": {
        "x-controller-name": "CompensationTypeController",
        "x-operation-name": "create",
        "tags": [
          "CompensationTypeController"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "description": "CompensationType created successfully"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "CompensationTypeController.create"
      }
    },
    "/createDeliverySchedule": {
      "post": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "createDeliverySchedule",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "DeliveryService model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryService"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "DeliveryServiceController.createDeliverySchedule"
      }
    },
    "/createDepartment": {
      "post": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "createDepartment",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Role model instance"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RoleAndDepartmentController.createDepartment"
      }
    },
    "/createDummyData": {
      "get": {
        "x-controller-name": "TaskController",
        "x-operation-name": "createDummyData",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "Return value of TaskController.createDummyData"
          }
        },
        "operationId": "TaskController.createDummyData"
      }
    },
    "/createDummyPermissionsData": {
      "get": {
        "x-controller-name": "RolePermissionsController",
        "x-operation-name": "createDummyData",
        "tags": [
          "RolePermissionsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of RolePermissionsController.createDummyData"
          }
        },
        "operationId": "RolePermissionsController.createDummyData"
      }
    },
    "/createGroup": {
      "post": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "createGroup",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Role model instance"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RoleAndDepartmentController.createGroup"
      }
    },
    "/createGuest": {
      "post": {
        "x-controller-name": "PingController",
        "x-operation-name": "createGuestForRoom",
        "tags": [
          "PingController"
        ],
        "responses": {
          "200": {
            "description": "Create Guest For Room",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "PingController.createGuestForRoom"
      }
    },
    "/createHotel": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "createHotel",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Hotel model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hotel"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "HotelController.createHotel"
      }
    },
    "/createNotes": {
      "post": {
        "x-controller-name": "NotesController",
        "x-operation-name": "createNotes",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Saving Cleaning Preference Time"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "NotesController.createNotes"
      }
    },
    "/createPermisionsAgainstRole": {
      "post": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "createPermisionsAgainstRole",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Role model instance"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RoleAndDepartmentController.createPermisionsAgainstRole"
      }
    },
    "/createRole": {
      "post": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "createRole",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Role model instance"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RoleAndDepartmentController.createRole"
      }
    },
    "/createRoomNote": {
      "post": {
        "x-controller-name": "RoomNoteController",
        "x-operation-name": "createRoomNote",
        "tags": [
          "RoomNoteController"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "text": {
                      "type": "string"
                    },
                    "taskId": {
                      "type": "string"
                    },
                    "roomId": {
                      "type": "string"
                    },
                    "projectId": {
                      "type": "string"
                    },
                    "checklistProgressId": {
                      "type": "string"
                    },
                    "checklistItemId": {
                      "type": "string"
                    },
                    "isPinned": {
                      "type": "boolean"
                    },
                    "type": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "description": "Create Room Note"
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true
        },
        "operationId": "RoomNoteController.createRoomNote"
      }
    },
    "/createUser": {
      "post": {
        "x-controller-name": "UsersController",
        "x-operation-name": "createUser",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Create User Instance",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "email": {
                      "type": "string"
                    },
                    "password": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "UsersController.createUser"
      }
    },
    "/deactivateRoomStatusTriggerRule/{id}": {
      "patch": {
        "x-controller-name": "TaskController",
        "x-operation-name": "deactivateRoomStatusTriggerRule",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "Deactivated room status trigger rule summary",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "is_active": {
                      "type": "boolean"
                    },
                    "status_values": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "created_by": {
                      "type": "string"
                    },
                    "created_by_name": {
                      "type": "string"
                    },
                    "deactivated_at": {
                      "type": "string"
                    },
                    "deactivated_by": {
                      "type": "string"
                    },
                    "deactivated_by_name": {
                      "type": "string"
                    },
                    "task": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string"
                        },
                        "title": {
                          "type": "string"
                        },
                        "description": {
                          "type": "string"
                        }
                      }
                    },
                    "scope": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string"
                        },
                        "room_count": {
                          "type": "number"
                        },
                        "room_names": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotel_id"
                ],
                "properties": {
                  "hotel_id": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "TaskController.deactivateRoomStatusTriggerRule"
      }
    },
    "/deleteCategoryByvalue/{categoryName}": {
      "delete": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "deleteCommonArea",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete Delivery Service Category"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "categoryName",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DeliveryServiceController.deleteCommonArea"
      }
    },
    "/deleteChecklist/{id}": {
      "delete": {
        "x-controller-name": "ChecklistController",
        "x-operation-name": "deleteChecklist",
        "tags": [
          "ChecklistController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Checklist DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ChecklistController.deleteChecklist"
      }
    },
    "/deleteChecklistItem/{id}": {
      "delete": {
        "x-controller-name": "ChecklistItemsController",
        "x-operation-name": "deleteChecklistItem",
        "tags": [
          "ChecklistItemsController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Checklist Item DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ChecklistItemsController.deleteChecklistItem"
      }
    },
    "/deleteCommonArea/{id}": {
      "delete": {
        "x-controller-name": "LocationController",
        "x-operation-name": "deleteCommonArea",
        "tags": [
          "LocationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Task DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LocationController.deleteCommonArea"
      }
    },
    "/deleteCommonAreas/{areaId}": {
      "delete": {
        "x-controller-name": "HotelController",
        "x-operation-name": "deleteCommonAreas",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Delete Common Areas",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Location"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "areaId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelController.deleteCommonAreas"
      }
    },
    "/deleteDeliveryServiceById/{deliveryId}": {
      "delete": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "deleteDeliveryServiceById",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "Delete Delivery Service ",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryServiceWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DeliveryServiceController.deleteDeliveryServiceById"
      }
    },
    "/deleteHotelImage": {
      "put": {
        "x-controller-name": "HotelController",
        "x-operation-name": "deleteHotelProfileImage",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Change User Phone Number",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "phoneNumber": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "HotelController.deleteHotelProfileImage"
      }
    },
    "/deleteItem/{id}/{deleteConfirm}": {
      "delete": {
        "x-controller-name": "ItemController",
        "x-operation-name": "deleteById",
        "tags": [
          "ItemController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Item DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "deleteConfirm",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ItemController.deleteById"
      }
    },
    "/deleteNotes/{id}": {
      "delete": {
        "x-controller-name": "NotesController",
        "x-operation-name": "deleteById",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notes DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotesController.deleteById"
      }
    },
    "/deleteProject/{id}/{isCascade}": {
      "delete": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "deleteProject",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Task DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "isCascade",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProjectController.deleteProject"
      }
    },
    "/deleteRequestCategory/{id}/{deleteConfirm}": {
      "delete": {
        "x-controller-name": "RequestcategoryController",
        "x-operation-name": "deleteRequestCategory",
        "tags": [
          "RequestcategoryController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "RequestCategory DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "deleteConfirm",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RequestcategoryController.deleteRequestCategory"
      }
    },
    "/deleteRoomNote/{id}": {
      "delete": {
        "x-controller-name": "RoomNoteController",
        "x-operation-name": "deleteRoomNote",
        "tags": [
          "RoomNoteController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Note DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomNoteController.deleteRoomNote"
      }
    },
    "/deleteSchedulingCredential/{id}": {
      "patch": {
        "x-controller-name": "SchedulingCredentialController",
        "x-operation-name": "deleteProject",
        "tags": [
          "SchedulingCredentialController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "DELETE SchedulingCredential success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SchedulingCredentialController.deleteProject"
      }
    },
    "/deleteSections/{id}": {
      "delete": {
        "x-controller-name": "SectionController",
        "x-operation-name": "deleteSections",
        "tags": [
          "SectionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Task DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SectionController.deleteSections"
      }
    },
    "/deleteSopDocument/{id}": {
      "delete": {
        "x-controller-name": "SopController",
        "x-operation-name": "deleteSopDocument",
        "tags": [
          "SopController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete SOP Document of Hotel"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SopController.deleteSopDocument"
      }
    },
    "/deleteTask/{id}/{recurredType}": {
      "delete": {
        "x-controller-name": "TaskController",
        "x-operation-name": "deleteTask",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Task DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "recurredType",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TaskController.deleteTask"
      }
    },
    "/deleteTasks": {
      "post": {
        "x-controller-name": "TaskController",
        "x-operation-name": "deleteTasks",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "Batch task DELETE results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "results",
                    "succeeded",
                    "failed"
                  ],
                  "properties": {
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "id",
                          "recurredType",
                          "success"
                        ],
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "recurredType": {
                            "type": "string"
                          },
                          "success": {
                            "type": "boolean"
                          },
                          "error": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "succeeded": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "failed": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "id",
                          "recurredType",
                          "error"
                        ],
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "recurredType": {
                            "type": "string"
                          },
                          "error": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid batch task DELETE request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "statusCode": {
                          "type": "number"
                        },
                        "name": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "tasks": {}
                }
              }
            }
          }
        },
        "operationId": "TaskController.deleteTasks"
      }
    },
    "/deleteUsers": {
      "post": {
        "x-controller-name": "UsersController",
        "x-operation-name": "deleteUsers",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "User will be deleted"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "UsersController.deleteUsers"
      }
    },
    "/delivery/{id}": {
      "put": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "replaceById",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "DeliveryService PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeliveryService"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DeliveryServiceController.replaceById"
      },
      "patch": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "updateById",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "DeliveryService PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeliveryServicePartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DeliveryServiceController.updateById"
      },
      "delete": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "deleteById",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "DeliveryService DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DeliveryServiceController.deleteById"
      }
    },
    "/delivery-service/location": {
      "get": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "getHotels",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "Locations for Delivery Service",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Hotel"
                  }
                }
              }
            }
          }
        },
        "operationId": "DeliveryServiceController.getHotels"
      }
    },
    "/department/{id}": {
      "delete": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "deleteDepartmentById",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Department DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoleAndDepartmentController.deleteDepartmentById"
      }
    },
    "/departmentRolesUsersMigration": {
      "get": {
        "x-controller-name": "DepartmentController",
        "x-operation-name": "existingMigration",
        "tags": [
          "DepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Department model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentWithRelations"
                }
              }
            }
          }
        },
        "operationId": "DepartmentController.existingMigration"
      }
    },
    "/departments/count": {
      "get": {
        "x-controller-name": "DepartmentController",
        "x-operation-name": "count",
        "tags": [
          "DepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Department model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Department.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Department>"
                }
              }
            }
          }
        ],
        "operationId": "DepartmentController.count"
      }
    },
    "/departments/{id}/hotel": {
      "get": {
        "x-controller-name": "DepartmentHotelController",
        "x-operation-name": "getHotel",
        "tags": [
          "DepartmentHotelController"
        ],
        "responses": {
          "200": {
            "description": "Hotel belonging to Department",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Hotel"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DepartmentHotelController.getHotel"
      }
    },
    "/departments/{id}": {
      "put": {
        "x-controller-name": "DepartmentController",
        "x-operation-name": "replaceById",
        "tags": [
          "DepartmentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Department PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Department"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DepartmentController.replaceById"
      },
      "patch": {
        "x-controller-name": "DepartmentController",
        "x-operation-name": "updateById",
        "tags": [
          "DepartmentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Department PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DepartmentPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DepartmentController.updateById"
      },
      "get": {
        "x-controller-name": "DepartmentController",
        "x-operation-name": "findById",
        "tags": [
          "DepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Department model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DepartmentWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Department.Filter"
                }
              }
            }
          }
        ],
        "operationId": "DepartmentController.findById"
      }
    },
    "/departments": {
      "post": {
        "x-controller-name": "DepartmentController",
        "x-operation-name": "create",
        "tags": [
          "DepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Department model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Department"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewDepartment"
              }
            }
          }
        },
        "operationId": "DepartmentController.create"
      },
      "patch": {
        "x-controller-name": "DepartmentController",
        "x-operation-name": "updateAll",
        "tags": [
          "DepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Department PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Department.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Department>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DepartmentPartial"
              }
            }
          }
        },
        "operationId": "DepartmentController.updateAll"
      },
      "get": {
        "x-controller-name": "DepartmentController",
        "x-operation-name": "find",
        "tags": [
          "DepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Array of Department model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DepartmentWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Department.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "DepartmentController.find"
      }
    },
    "/downloadAllocationCSV/{hotelId}/{type}": {
      "get": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "getAllocationBoardCSV",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "Workshift model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkshiftWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "type",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WorkshiftController.getAllocationBoardCSV"
      }
    },
    "/duplicateChecklist": {
      "post": {
        "x-controller-name": "ChecklistController",
        "x-operation-name": "duplicateChecklist",
        "tags": [
          "ChecklistController"
        ],
        "responses": {
          "200": {
            "description": "Duplicate checklist to target shifts"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ChecklistController.duplicateChecklist"
      }
    },
    "/editDeliveryLinks": {
      "put": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "editDeliveryLinks",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "Creates Link Betweeen Delivery Service and Hotel",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "email": {
                      "type": "string"
                    },
                    "password": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "DeliveryServiceController.editDeliveryLinks"
      }
    },
    "/editWorkshift": {
      "post": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "editWorkshift",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workshift"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "WorkshiftController.editWorkshift"
      }
    },
    "/endWorkshift/{id}": {
      "patch": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "endWorkshift",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Workshift PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WorkshiftController.endWorkshift"
      }
    },
    "/findUserByEmail": {
      "post": {
        "x-controller-name": "UsersController",
        "x-operation-name": "findUserByEmail",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Find User By Email",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "email": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "UsersController.findUserByEmail"
      }
    },
    "/findUserBySchedulingSystemId": {
      "post": {
        "x-controller-name": "UsersController",
        "x-operation-name": "findUserBySchedulingSystemId",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Find User By Scheduling System ID",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "email": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "UsersController.findUserBySchedulingSystemId"
      }
    },
    "/finishRoomCleaning": {
      "post": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "finishRoomCleaning",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Task model instance"
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true
        },
        "operationId": "RoomsController.finishRoomCleaning"
      }
    },
    "/finishRoomTurndown": {
      "post": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "finishRoomTurndown",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Task model instance"
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true
        },
        "operationId": "RoomsController.finishRoomTurndown"
      }
    },
    "/forgotPassword": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "forgotPassword",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Trigger a forgot password email for user by email id.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "email": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "AuthController.forgotPassword"
      }
    },
    "/gerRoomsForCleaningDialog": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "gerRoomsForCleaningDialog",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Get List of rooms for displaying in cleaning dialog",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RoomWithRelations"
                  }
                }
              }
            }
          }
        },
        "operationId": "RoomsController.gerRoomsForCleaningDialog"
      }
    },
    "/getActiveRoomsByWorkshiftId/{workshifId}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "getActiveRoomsByWorkshiftId",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Returns active rooms which are either being cleaned or turned down.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workshifId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.getActiveRoomsByWorkshiftId"
      }
    },
    "/getAppVersion": {
      "get": {
        "x-controller-name": "AuthController",
        "x-operation-name": "getAppVersion",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Returns app current latest version available"
                }
              }
            }
          }
        },
        "operationId": "AuthController.getAppVersion"
      }
    },
    "/getAttendantsForToday/{hotelId}/{mode}": {
      "get": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "getAttendantsForToday",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "Workshift model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkshiftWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "mode",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WorkshiftController.getAttendantsForToday"
      }
    },
    "/getChecklistFilterItem/{hotelId}": {
      "get": {
        "x-controller-name": "ChecklistController",
        "x-operation-name": "getChecklistFilterItem",
        "tags": [
          "ChecklistController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Create model instance",
                  "context": {
                    "$ref": "#/components/schemas/Checklist",
                    "definitions": {
                      "Checklist": {
                        "$ref": "#/components/schemas/Checklist"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ChecklistController.getChecklistFilterItem"
      }
    },
    "/getChecklistFormData/{id}": {
      "get": {
        "x-controller-name": "ChecklistController",
        "x-operation-name": "getChecklistFormData",
        "tags": [
          "ChecklistController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Create model instance",
                  "context": {
                    "$ref": "#/components/schemas/ChecklistWithRelations",
                    "definitions": {
                      "HotelWithRelations": {
                        "$ref": "#/components/schemas/HotelWithRelations"
                      },
                      "UsersWithRelations": {
                        "$ref": "#/components/schemas/UsersWithRelations"
                      },
                      "ChecklistItemsWithRelations": {
                        "$ref": "#/components/schemas/ChecklistItemsWithRelations"
                      },
                      "ChecklistWithRelations": {
                        "$ref": "#/components/schemas/ChecklistWithRelations"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ChecklistController.getChecklistFormData"
      }
    },
    "/getChecklistIndicators": {
      "post": {
        "x-controller-name": "ChecklistController",
        "x-operation-name": "getChecklistIndicators",
        "tags": [
          "ChecklistController"
        ],
        "responses": {
          "200": {
            "description": "Checklist items for date range"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ChecklistController.getChecklistIndicators"
      }
    },
    "/getChecklistItemDetail": {
      "post": {
        "x-controller-name": "ChecklistItemsController",
        "x-operation-name": "getChecklistItemDetail",
        "tags": [
          "ChecklistItemsController"
        ],
        "responses": {
          "200": {
            "description": "get Checklist Item Detail For App",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChecklistItems"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ChecklistItemsController.getChecklistItemDetail"
      }
    },
    "/getChecklistItemFormData/{id}": {
      "get": {
        "x-controller-name": "ChecklistItemsController",
        "x-operation-name": "getChecklistItemFormData",
        "tags": [
          "ChecklistItemsController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Create model instance",
                  "context": {
                    "$ref": "#/components/schemas/ChecklistItemsWithRelations",
                    "definitions": {
                      "ChecklistItemsWithRelations": {
                        "$ref": "#/components/schemas/ChecklistItemsWithRelations"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ChecklistItemsController.getChecklistItemFormData"
      }
    },
    "/getChecklistListing": {
      "post": {
        "x-controller-name": "ChecklistController",
        "x-operation-name": "getChecklistListing",
        "tags": [
          "ChecklistController"
        ],
        "responses": {
          "200": {
            "description": "Checklist model instance"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ChecklistController.getChecklistListing"
      }
    },
    "/getCommonAreas/{hotelId}": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "getCommonAreas",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Array of Location model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Location"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelController.getCommonAreas"
      }
    },
    "/getDashboardData": {
      "get": {
        "x-controller-name": "DashboardController",
        "x-operation-name": "getDashboardData",
        "tags": [
          "DashboardController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Get dashboard data"
                }
              }
            }
          }
        },
        "operationId": "DashboardController.getDashboardData"
      }
    },
    "/getDashboardTaskData": {
      "get": {
        "x-controller-name": "DashboardController",
        "x-operation-name": "getDashboardTaskData",
        "tags": [
          "DashboardController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Get dashboard task data"
                }
              }
            }
          }
        },
        "operationId": "DashboardController.getDashboardTaskData"
      }
    },
    "/getDeliveryCompanyDetail/{id}": {
      "get": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "getUserDetails",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of User model instances"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DeliveryServiceController.getUserDetails"
      }
    },
    "/getDeliveryServiceByHotelId/{hotelId}": {
      "get": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "getDeliveryServiceByHotelId",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "DeliveryService model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryServiceWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DeliveryServiceController.getDeliveryServiceByHotelId"
      }
    },
    "/getDeliveryServiceById/{deliveryId}": {
      "get": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "getDeliveryServiceById",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "Return the object to edit a specific service",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryServiceWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DeliveryServiceController.getDeliveryServiceById"
      }
    },
    "/getDeliveryServiceListing": {
      "get": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "getDeliveryServiceListing",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Returns Delivery Service Listing"
                }
              }
            }
          }
        },
        "operationId": "DeliveryServiceController.getDeliveryServiceListing"
      }
    },
    "/getDeparmentsAndRoles/{hotel_id}": {
      "get": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "getDeparmentsAndRoles",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Department"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoleAndDepartmentController.getDeparmentsAndRoles"
      }
    },
    "/getFilterItems/{hotel_id}": {
      "post": {
        "x-controller-name": "TaskController",
        "x-operation-name": "getFilterItems",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "All the items required for filters will be displayed here"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "date": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "TaskController.getFilterItems"
      }
    },
    "/getHotelCommonArea": {
      "post": {
        "x-controller-name": "LocationController",
        "x-operation-name": "getHotelCommonArea",
        "tags": [
          "LocationController"
        ],
        "responses": {
          "200": {
            "description": "Location model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Location"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "hotel_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "LocationController.getHotelCommonArea"
      }
    },
    "/getHotelFilters/{userType}": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "getHotelFilters",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Returns List of Filters for Location Screen",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userType",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelController.getHotelFilters"
      }
    },
    "/getHotelLayout/{hotel_id}": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "getHotelLayout",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Get Hotel Layout",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelController.getHotelLayout"
      }
    },
    "/getHotelPMS/{hotel_id}": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "getHotelPMS",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Get Hotel PMS Keys",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelController.getHotelPMS"
      }
    },
    "/getHotelPMSData/{hotel_id}": {
      "get": {
        "x-controller-name": "SchedulingCredentialController",
        "x-operation-name": "getHotelPMSData",
        "tags": [
          "SchedulingCredentialController"
        ],
        "responses": {
          "200": {
            "description": "Returns All the data required on the PMS Tab",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulingCredentialsWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SchedulingCredentialController.getHotelPMSData"
      }
    },
    "/getHotelRolePermissions/{hotel_id}": {
      "get": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "getHotelRolePermissions",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Array of BasePermission model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoleAndDepartmentController.getHotelRolePermissions"
      }
    },
    "/getHotelSections": {
      "post": {
        "x-controller-name": "SectionController",
        "x-operation-name": "getHotelSections",
        "tags": [
          "SectionController"
        ],
        "responses": {
          "200": {
            "description": "Location model instance"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "hotel_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "SectionController.getHotelSections"
      }
    },
    "/getHotelSettings/{hotelId}": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "getHotelSettings",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Returns List of Filters for Location Screen",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelController.getHotelSettings"
      }
    },
    "/getHotelsForDeliveries/{user_id}": {
      "get": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "getHotelsForDeliveries",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "DeliveryService model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryServiceWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DeliveryServiceController.getHotelsForDeliveries"
      }
    },
    "/getHotelsForDeliveryService/{id}": {
      "get": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "findById",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "DeliveryService model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryServiceWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DeliveryServiceController.findById"
      }
    },
    "/getHotelsForStaffUsers/{id}": {
      "get": {
        "x-controller-name": "AuthController",
        "x-operation-name": "getHotelsForStaffUsers",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "DeliveryService model instance"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AuthController.getHotelsForStaffUsers"
      }
    },
    "/getLocationList/{userType}": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "getHotelList",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of Hotel model instances"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userType",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelController.getHotelList"
      }
    },
    "/getManagersForStaff/{workshiftId}": {
      "get": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "findManagers",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of Workshift model instances"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workshiftId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WorkshiftController.findManagers"
      }
    },
    "/getMorningMeeting/{hotel_id}": {
      "get": {
        "x-controller-name": "DashboardController",
        "x-operation-name": "getMorningMeeting",
        "tags": [
          "DashboardController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Returns todays morning meeting instance of the hotel"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "DashboardController.getMorningMeeting"
      }
    },
    "/getNotes": {
      "post": {
        "x-controller-name": "NotesController",
        "x-operation-name": "getNotes",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Get Notes"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "NotesController.getNotes"
      }
    },
    "/getNotesByRoomId/{roomId}/{hotelId}": {
      "get": {
        "x-controller-name": "NotesController",
        "x-operation-name": "getNotesByRoomId",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notes model instance"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "roomId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotesController.getNotesByRoomId"
      }
    },
    "/getNotesPaginated": {
      "post": {
        "x-controller-name": "NotesController",
        "x-operation-name": "getNotesPaginated",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Get paginated room notes"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "NotesController.getNotesPaginated"
      }
    },
    "/getPayrollOptions/{hotelId}": {
      "get": {
        "x-controller-name": "UsersController",
        "x-operation-name": "getPayrollOptionsByHotelId",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Get available sub companies and compensation types for a hotel",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "sub_companies": {
                      "type": "array"
                    },
                    "compensation_types": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UsersController.getPayrollOptionsByHotelId"
      }
    },
    "/getPayrollsUsersCount/{payrollId}": {
      "get": {
        "x-controller-name": "UsersController",
        "x-operation-name": "getPayrollsUsersCount",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Get count of users by CompensationType or SubCompany"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "payrollId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "UsersController.getPayrollsUsersCount"
      }
    },
    "/getPermissionTemplates": {
      "get": {
        "x-controller-name": "PermissionController",
        "x-operation-name": "getPermissionTemplates",
        "tags": [
          "PermissionController"
        ],
        "responses": {
          "200": {
            "description": "Array of BasePermission model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BasePermissionWithRelations"
                  }
                }
              }
            }
          }
        },
        "operationId": "PermissionController.getPermissionTemplates"
      }
    },
    "/getProjectFormData/{hotel_id}/{id}": {
      "get": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "getProjectFormData",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Create model instance",
                  "context": {
                    "$ref": "#/components/schemas/ProjectWithRelations",
                    "definitions": {
                      "ProjectWithRelations": {
                        "$ref": "#/components/schemas/ProjectWithRelations"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProjectController.getProjectFormData"
      }
    },
    "/getProjectListing": {
      "post": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "getProjectListing",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "200": {
            "description": "Task model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "start_time": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "ProjectController.getProjectListing"
      }
    },
    "/getRequestItems/{hotel_id}": {
      "get": {
        "x-controller-name": "RequestController",
        "x-operation-name": "getRequestItems",
        "tags": [
          "RequestController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "All the items required for filters will be displayed here"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RequestController.getRequestItems"
      }
    },
    "/getRoleByHotel/{hotel_id}": {
      "get": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "getRoleByHotel",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Get Roles to display in the dropdown at the time of user creation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoleAndDepartmentController.getRoleByHotel"
      }
    },
    "/getRoleFormData/{role_id}/{hotel_id}/{department_type}": {
      "get": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "getRoleFormData",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Get Roles to display in the dropdown at the time of role creation. ",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "role_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "department_type",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoleAndDepartmentController.getRoleFormData"
      }
    },
    "/getRoomDetailForManager/{roomId}/{requestDate}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "getRoomDetailForManager",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Get Room Details For Manager.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "roomId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "requestDate",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.getRoomDetailForManager"
      }
    },
    "/getRoomDetailForStaff/{roomId}/{requestDate}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "getRoomDetailForStaff",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Get Room Details For Staff.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "roomId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "requestDate",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.getRoomDetailForStaff"
      }
    },
    "/getRoomGuest": {
      "post": {
        "x-controller-name": "TaskController",
        "x-operation-name": "getRoomGuest",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "Guest Name model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Task"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "roomIds": {
                    "type": "array",
                    "items": {}
                  },
                  "hotel_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "TaskController.getRoomGuest"
      }
    },
    "/getRoomListFilters/{hotel_id}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "getRoomListFilters",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Get Room List Filters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.getRoomListFilters"
      }
    },
    "/getRoomNotes": {
      "post": {
        "x-controller-name": "RoomNoteController",
        "x-operation-name": "getRoomNotes",
        "tags": [
          "RoomNoteController"
        ],
        "responses": {
          "200": {
            "description": "Room model instance",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "taskId": {
                    "type": "string"
                  },
                  "projectId": {
                    "type": "string"
                  },
                  "roomId": {
                    "type": "string"
                  },
                  "checklistProgressId": {
                    "type": "string"
                  },
                  "checklistItemId": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "RoomNoteController.getRoomNotes"
      }
    },
    "/getRoomStatusTriggerRules/{hotel_id}": {
      "get": {
        "x-controller-name": "TaskController",
        "x-operation-name": "getRoomStatusTriggerRules",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "Room status trigger rule summaries",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "is_active": {
                        "type": "boolean"
                      },
                      "status_values": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "created_at": {
                        "type": "string"
                      },
                      "updated_at": {
                        "type": "string"
                      },
                      "created_by": {
                        "type": "string"
                      },
                      "created_by_name": {
                        "type": "string"
                      },
                      "deactivated_at": {
                        "type": "string"
                      },
                      "deactivated_by": {
                        "type": "string"
                      },
                      "deactivated_by_name": {
                        "type": "string"
                      },
                      "task": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          }
                        }
                      },
                      "scope": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string"
                          },
                          "room_count": {
                            "type": "number"
                          },
                          "room_names": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "TaskController.getRoomStatusTriggerRules"
      }
    },
    "/getRoomsForAllocation/{hotel_id}/{date}/{mode}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "getRoomsForAllocation",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Get the list of Rooms in Legacy Type"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "date",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "mode",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.getRoomsForAllocation"
      }
    },
    "/getRoomsListing/{date}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "getRoomListing",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Returns Room Listing For Manager",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoomWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.getRoomListing"
      }
    },
    "/getSchedulers/{hotel_id}": {
      "get": {
        "x-controller-name": "SchedulingCredentialController",
        "x-operation-name": "getSchedulers",
        "tags": [
          "SchedulingCredentialController"
        ],
        "responses": {
          "200": {
            "description": "Get CredentialLocations of the hotel",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialLocationWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SchedulingCredentialController.getSchedulers"
      }
    },
    "/getSchedulingCredentialData/{id}": {
      "get": {
        "x-controller-name": "SchedulingCredentialController",
        "x-operation-name": "getSchedulingCredentialData",
        "tags": [
          "SchedulingCredentialController"
        ],
        "responses": {
          "200": {
            "description": "Returns data to edit Credentials",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulingCredentialsWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SchedulingCredentialController.getSchedulingCredentialData"
      }
    },
    "/getSchedulingFormData/{hotelId}": {
      "get": {
        "x-controller-name": "UsersController",
        "x-operation-name": "getSchedulingFormData",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Array of User model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Users"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UsersController.getSchedulingFormData"
      }
    },
    "/getSectionDropdown/{hotelId}": {
      "get": {
        "x-controller-name": "SectionController",
        "x-operation-name": "getSectionDropdown",
        "tags": [
          "SectionController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Hotel model count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SectionController.getSectionDropdown"
      }
    },
    "/getTaskData/{id}": {
      "get": {
        "x-controller-name": "TaskController",
        "x-operation-name": "getTaskData",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "context": {
                    "$ref": "#/components/schemas/TaskWithRelations",
                    "definitions": {
                      "TaskWithRelations": {
                        "$ref": "#/components/schemas/TaskWithRelations"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TaskController.getTaskData"
      }
    },
    "/getTaskFormData/{hotel_id}/{id}": {
      "get": {
        "x-controller-name": "TaskController",
        "x-operation-name": "getTaskFormData",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "Get create/update task form data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "object"
                    },
                    "locations": {
                      "type": "object"
                    },
                    "projects": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "task": {
                      "nullable": true,
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/TaskWithRelations"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "checklistItems": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            },
                            "checklistResults": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            },
                            "checklistSummary": {
                              "type": "object",
                              "properties": {
                                "total": {
                                  "type": "number"
                                },
                                "completed": {
                                  "type": "number"
                                },
                                "notCompleted": {
                                  "type": "number"
                                },
                                "requiredOpen": {
                                  "type": "number"
                                }
                              }
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TaskController.getTaskFormData"
      }
    },
    "/getTaskFormDataAssignees": {
      "patch": {
        "x-controller-name": "TaskController",
        "x-operation-name": "getTaskFormDataAssignees",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "All the assignees from selected task item role, task assignees will be displayed here"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "hotel_id": {
                    "type": "string"
                  },
                  "date": {
                    "type": "string"
                  },
                  "role": {
                    "type": "string"
                  },
                  "task_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "TaskController.getTaskFormDataAssignees"
      }
    },
    "/getTaskListing": {
      "post": {
        "x-controller-name": "TaskController",
        "x-operation-name": "getTaskListing",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "Task model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Task"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "locations": {
                    "type": "array",
                    "items": {}
                  },
                  "assignees": {
                    "type": "array",
                    "items": {}
                  },
                  "start_time": {
                    "type": "string"
                  },
                  "types": {
                    "type": "array",
                    "items": {}
                  },
                  "departments": {
                    "type": "array",
                    "items": {}
                  },
                  "hotel_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "TaskController.getTaskListing"
      }
    },
    "/getTaskReport": {
      "post": {
        "x-controller-name": "TaskController",
        "x-operation-name": "getTaskReport",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "Task model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Task"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "start_date": {
                    "type": "string"
                  },
                  "end_date": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "TaskController.getTaskReport"
      }
    },
    "/getTranslationLanguages": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "getTranslationLanguages",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Returns list of available languages that can be translated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "operationId": "HotelController.getTranslationLanguages"
      }
    },
    "/getUkgCredentialsForUser": {
      "get": {
        "x-controller-name": "SchedulingCredentialController",
        "x-operation-name": "getUkgCredentialsForUser",
        "tags": [
          "SchedulingCredentialController"
        ],
        "responses": {
          "200": {
            "description": "Array of User model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Users"
                  }
                }
              }
            }
          }
        },
        "operationId": "SchedulingCredentialController.getUkgCredentialsForUser"
      }
    },
    "/getUserFields/{hotel_id}/{module}": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "getUserFields",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Get Hotel Preference Keys",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "module",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelController.getUserFields"
      }
    },
    "/getUserFlow": {
      "get": {
        "x-controller-name": "UsersController",
        "x-operation-name": "getUserFlow",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Create model instance"
                }
              }
            }
          }
        },
        "operationId": "UsersController.getUserFlow"
      }
    },
    "/getUserList/{userType}": {
      "get": {
        "x-controller-name": "UsersController",
        "x-operation-name": "getUserList",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Array of User model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Users"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userType",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "UsersController.getUserList"
      }
    },
    "/getUserPermissions/{hotel_id}": {
      "get": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "getUserPermissions",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Get Roles to display in the dropdown at the time of role creation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoleAndDepartmentController.getUserPermissions"
      }
    },
    "/getUsersInfo": {
      "get": {
        "x-controller-name": "UsersController",
        "x-operation-name": "getUsersInfo",
        "tags": [
          "UsersController"
        ],
        "responses": {},
        "operationId": "UsersController.getUsersInfo"
      }
    },
    "/getWorkShiftRooms/{workshift_id}": {
      "get": {
        "x-controller-name": "TaskController",
        "x-operation-name": "getWorkShiftRooms",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Rooms and Floors for workshifts success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workshift_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TaskController.getWorkShiftRooms"
      }
    },
    "/getWorkshiftById/{workshiftId}": {
      "get": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "getWorkshiftById",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "Workshift model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkshiftWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workshiftId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WorkshiftController.getWorkshiftById"
      }
    },
    "/getWorkshiftForAllocation/{hotel_id}/{date}/{mode}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "getWorkshiftForAllocation",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Get the list of Workshift in Legacy Type"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "date",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "mode",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.getWorkshiftForAllocation"
      }
    },
    "/getWorkshiftFormData/{hotelId}": {
      "get": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "getWorkshiftFormData",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Workshift form data"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "all",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "operationId": "WorkshiftController.getWorkshiftFormData"
      }
    },
    "/getWorkshiftRooms/{workshiftId}": {
      "get": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "getWorkshiftRooms",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "Workshift model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkshiftWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workshiftId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WorkshiftController.getWorkshiftRooms"
      }
    },
    "/getWorkshiftsByDate": {
      "post": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "getWorkshiftsByDate",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "Workshift model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workshift"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "WorkshiftController.getWorkshiftsByDate"
      }
    },
    "/getWorkshiftsByDateRange": {
      "get": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "getWorkshiftsByDateRange",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "Workshifts by date range",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduleDateRangeResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "WorkshiftController.getWorkshiftsByDateRange"
      }
    },
    "/getWorkshiftsByDateRangeForUser": {
      "get": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "getWorkshiftsByDateRangeForUser",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "Workshifts by date range for specific user",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "WorkshiftController.getWorkshiftsByDateRangeForUser"
      }
    },
    "/group/{id}": {
      "delete": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "deleteGroupById",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Department DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoleAndDepartmentController.deleteGroupById"
      }
    },
    "/groupHotelsScript": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "GroupHotelsScript",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Returns List of Filters for Location Screen",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "operationId": "HotelController.GroupHotelsScript"
      }
    },
    "/hotel-metrics/{hotelId}/attendants": {
      "get": {
        "x-controller-name": "HotelMetricsController",
        "x-operation-name": "getAttendantsMetrics",
        "tags": [
          "HotelMetricsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of HotelMetricsController.getAttendantsMetrics"
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelMetricsController.getAttendantsMetrics"
      }
    },
    "/hotel-metrics/{hotelId}/metric": {
      "patch": {
        "x-controller-name": "HotelMetricsController",
        "x-operation-name": "updateMetric",
        "tags": [
          "HotelMetricsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of HotelMetricsController.updateMetric"
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "HotelMetricsController.updateMetric"
      }
    },
    "/hotel-metrics/{hotelId}/range": {
      "get": {
        "x-controller-name": "HotelMetricsController",
        "x-operation-name": "getMetricsForDateRange",
        "tags": [
          "HotelMetricsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of HotelMetricsController.getMetricsForDateRange"
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelMetricsController.getMetricsForDateRange"
      }
    },
    "/hotel-metrics/{hotelId}/update-range": {
      "post": {
        "x-controller-name": "HotelMetricsController",
        "x-operation-name": "updateMetricsForDateRange",
        "tags": [
          "HotelMetricsController"
        ],
        "responses": {
          "200": {
            "description": "Return value of HotelMetricsController.updateMetricsForDateRange"
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "HotelMetricsController.updateMetricsForDateRange"
      }
    },
    "/hotels/count": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "count",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Hotel model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "hotels.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Hotel>"
                }
              }
            }
          }
        ],
        "operationId": "HotelController.count"
      }
    },
    "/hotels/{hotel_id}/clock-in-out-sign": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "getClockInOutSign",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Clock in/out QR sign payload",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hotelId": {
                      "type": "string"
                    },
                    "hotelName": {
                      "type": "string"
                    },
                    "hotelAddress": {
                      "type": "string"
                    },
                    "mode": {
                      "type": "string"
                    },
                    "qrValue": {
                      "type": "string"
                    },
                    "shortCode": {
                      "type": "string"
                    },
                    "supportQrValue": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelController.getClockInOutSign"
      }
    },
    "/hotels/{hotelId}/parse-pms-report/async": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "parsePMSReportAsync",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Start async PMS report parsing job"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "HotelController.parsePMSReportAsync"
      }
    },
    "/hotels/{hotelId}/parse-pms-report/status/{jobId}": {
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "getPMSParsingJobStatus",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Get PMS parsing job status"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "jobId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelController.getPMSParsingJobStatus"
      }
    },
    "/hotels/{id}/{status}": {
      "put": {
        "x-controller-name": "HotelController",
        "x-operation-name": "updateHotelStatusById",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Hotel Status Update success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "status",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelController.updateHotelStatusById"
      }
    },
    "/hotels/{id}": {
      "put": {
        "x-controller-name": "HotelController",
        "x-operation-name": "replaceById",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Hotel PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Hotel"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "HotelController.replaceById"
      },
      "patch": {
        "x-controller-name": "HotelController",
        "x-operation-name": "updateById",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Hotel PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "HotelController.updateById"
      },
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "findById",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Hotel model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HotelWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotelController.findById"
      }
    },
    "/hotels": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "create",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Hotel model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hotel"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewHotel"
              }
            }
          }
        },
        "operationId": "HotelController.create"
      },
      "patch": {
        "x-controller-name": "HotelController",
        "x-operation-name": "updateAll",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Hotel PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "hotels.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Hotel>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HotelPartial"
              }
            }
          }
        },
        "operationId": "HotelController.updateAll"
      },
      "get": {
        "x-controller-name": "HotelController",
        "x-operation-name": "find",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Array of Hotel model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HotelWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/hotels.Filter"
                }
              }
            }
          }
        ],
        "operationId": "HotelController.find"
      }
    },
    "/hotsoft/metrics/{hotel_id}": {
      "get": {
        "x-controller-name": "HotSoftController",
        "x-operation-name": "getHotsoftMetricsData",
        "tags": [
          "HotSoftController"
        ],
        "responses": {
          "200": {
            "description": "Get StayNTouch data"
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HotSoftController.getHotsoftMetricsData"
      }
    },
    "/hr-documents/me/assignments/{assignmentId}/acknowledge": {
      "post": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "acknowledgeEmployeeDocument",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "Employee HR document acknowledged",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeHrDocumentAcknowledgementResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "assignmentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcknowledgeHrDocumentBody"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "HrDocumentController.acknowledgeEmployeeDocument"
      }
    },
    "/hr-documents/me/assignments/{assignmentId}/download-url": {
      "post": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "createEmployeeDownloadUrl",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "Employee HR document download URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HrDocumentDownloadUrlResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "assignmentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HrDocumentController.createEmployeeDownloadUrl"
      }
    },
    "/hr-documents/me/assignments/{assignmentId}": {
      "get": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "getEmployeeDocument",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "Employee HR document detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeHrDocumentDetail"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "assignmentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HrDocumentController.getEmployeeDocument"
      }
    },
    "/hr-documents/me": {
      "get": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "listEmployeeDocuments",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "Employee HR documents",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeHrDocumentListResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "HrDocumentController.listEmployeeDocuments"
      }
    },
    "/hr-documents/{documentId}/archive": {
      "post": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "archiveDocument",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "HR document archived",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HrDocument"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArchiveHrDocumentBody"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "HrDocumentController.archiveDocument"
      }
    },
    "/hr-documents/{documentId}/assignments": {
      "post": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "assignDocument",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "HR document recipients assigned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssignHrDocumentResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignHrDocumentBody"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "HrDocumentController.assignDocument"
      },
      "get": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "listDocumentAssignments",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "HR document assignments",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HrDocumentAssignmentListResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "versionId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "HrDocumentController.listDocumentAssignments"
      }
    },
    "/hr-documents/{documentId}/reminders": {
      "post": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "requestReminders",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "HR document reminders requested",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HrDocumentReminderResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HrDocumentReminderBody"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "HrDocumentController.requestReminders"
      }
    },
    "/hr-documents/{documentId}/versions/{versionId}/download-url": {
      "post": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "createVersionDownloadUrl",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "HR document version download URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HrDocumentDownloadUrlResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "versionId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HrDocumentController.createVersionDownloadUrl"
      }
    },
    "/hr-documents/{documentId}/versions/{versionId}/publish": {
      "post": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "publishDocument",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "HR document published",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishHrDocumentResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "versionId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishHrDocumentBody"
              }
            }
          },
          "required": true,
          "x-parameter-index": 2
        },
        "operationId": "HrDocumentController.publishDocument"
      }
    },
    "/hr-documents/{documentId}/versions/{versionId}": {
      "delete": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "deleteDraftVersion",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "HR document draft version deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteHrDocumentResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "versionId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HrDocumentController.deleteDraftVersion"
      }
    },
    "/hr-documents/{documentId}/versions": {
      "post": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "uploadDraftVersion",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "HR document draft version uploaded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HrDocumentVersion"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "$ref": "#/components/schemas/UploadHrDocumentVersionBody"
              }
            }
          },
          "required": true,
          "description": "Requires exactly one file part and exactly one acknowledgement_required text part.",
          "x-parameter-index": 1
        },
        "operationId": "HrDocumentController.uploadDraftVersion"
      }
    },
    "/hr-documents/{documentId}": {
      "get": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "getDocument",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "HR document detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HrDocumentDetail"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HrDocumentController.getDocument"
      },
      "delete": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "deleteDraftDocument",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "HR document draft deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteHrDocumentResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "HrDocumentController.deleteDraftDocument"
      }
    },
    "/hr-documents": {
      "post": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "createDocument",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "HR document created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HrDocument"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateHrDocumentBody"
              }
            }
          },
          "required": true
        },
        "operationId": "HrDocumentController.createDocument"
      },
      "get": {
        "x-controller-name": "HrDocumentController",
        "x-operation-name": "listDocuments",
        "tags": [
          "HrDocumentController"
        ],
        "responses": {
          "200": {
            "description": "HR documents",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HrDocumentListResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "completion",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "HrDocumentController.listDocuments"
      }
    },
    "/infor/metrics/{hotel_id}": {
      "get": {
        "x-controller-name": "InforController",
        "x-operation-name": "getInforMetricsData",
        "tags": [
          "InforController"
        ],
        "responses": {
          "200": {
            "description": "Get Infor data"
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "InforController.getInforMetricsData"
      }
    },
    "/keepalive": {
      "get": {
        "x-controller-name": "AuthController",
        "x-operation-name": "keepalive",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Token keepalive successful"
          }
        },
        "operationId": "AuthController.keepalive"
      }
    },
    "/leave-management/admin/hotels/{hotelId}/capability": {
      "put": {
        "x-controller-name": "LeaveCapabilityController",
        "x-operation-name": "update",
        "tags": [
          "LeaveCapabilityController"
        ],
        "responses": {
          "200": {
            "description": "Leave capability updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateLeaveCapabilityResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed Leave capability request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveCapabilityError"
                }
              }
            }
          },
          "403": {
            "description": "Maitre Admin access is required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveCapabilityError"
                }
              }
            }
          },
          "404": {
            "description": "Hotel not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveCapabilityError"
                }
              }
            }
          },
          "409": {
            "description": "Leave capability conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveCapabilityError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLeaveCapabilityRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveCapabilityController.update"
      }
    },
    "/leave-management/admin/hotels/{hotelId}/capability-readiness": {
      "get": {
        "x-controller-name": "LeaveCapabilityController",
        "x-operation-name": "readiness",
        "tags": [
          "LeaveCapabilityController"
        ],
        "responses": {
          "200": {
            "description": "Leave capability readiness",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveCapabilityReadinessResponse"
                }
              }
            }
          },
          "403": {
            "description": "Maitre Admin access is required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveCapabilityError"
                }
              }
            }
          },
          "404": {
            "description": "Hotel not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveCapabilityError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LeaveCapabilityController.readiness"
      }
    },
    "/leave-management/balances/{accountId}/adjustments": {
      "post": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "adjustBalance",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Leave balance adjusted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveBalanceFoundationCommandResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdjustLeaveBalanceRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveFoundationController.adjustBalance"
      }
    },
    "/leave-management/balances/{accountId}/ledger": {
      "get": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "listBalanceLedger",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Leave balance ledger",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagerLeaveBalanceLedgerResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "periodId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "LeaveFoundationController.listBalanceLedger"
      }
    },
    "/leave-management/balances": {
      "post": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "openBalance",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Leave balance period opened",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveBalanceFoundationCommandResult"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OpenLeaveBalancePeriodRequest"
              }
            }
          },
          "required": true
        },
        "operationId": "LeaveFoundationController.openBalance"
      },
      "get": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "listBalances",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Employee leave balances",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveBalanceListResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "employeeId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "LeaveFoundationController.listBalances"
      }
    },
    "/leave-management/contracts/employees/{employeeId}": {
      "put": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "putContract",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Employee work contract timeline updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkContractFoundationCommandResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "employeeId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PutWorkContractTimelineRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveFoundationController.putContract"
      },
      "get": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "getContract",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Employee work contract timeline",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkContractTimelineResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "employeeId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "onDate",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "LeaveFoundationController.getContract"
      }
    },
    "/leave-management/foundation/commands/{commandId}/resume": {
      "post": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "resumeFoundationCommand",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Leave foundation repair resumed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveFoundationCommandStatus"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "commandId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResumeLeaveFoundationRepairRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveFoundationController.resumeFoundationCommand"
      }
    },
    "/leave-management/foundation/commands/{commandId}/status": {
      "get": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "foundationCommandStatus",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Sanitized Leave foundation command status",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveFoundationCommandStatus"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "commandId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LeaveFoundationController.foundationCommandStatus"
      }
    },
    "/leave-management/me/balances/{accountId}/ledger": {
      "get": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "listMyBalanceLedger",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Own leave balance ledger",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfLeaveBalanceLedgerResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "periodId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "LeaveFoundationController.listMyBalanceLedger"
      }
    },
    "/leave-management/me/balances": {
      "get": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "listMyBalances",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Own leave balances and usage",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfLeaveBalanceListResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "LeaveFoundationController.listMyBalances"
      }
    },
    "/leave-management/me/requests/{requestId}/request-cancellation": {
      "post": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "requestCancellation",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Leave cancellation requested",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfLeaveCommandResult"
                }
              }
            }
          },
          "403": {
            "description": "Leave request is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "409": {
            "description": "Leave request cannot transition",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "422": {
            "description": "Invalid leave request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "503": {
            "description": "Leave capability unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestLeaveCancellationRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveLifecycleController.requestCancellation"
      }
    },
    "/leave-management/me/requests/{requestId}/withdraw": {
      "post": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "withdraw",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Leave request withdrawn",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfLeaveCommandResult"
                }
              }
            }
          },
          "403": {
            "description": "Leave request is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "409": {
            "description": "Leave request cannot transition",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "422": {
            "description": "Invalid leave request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "503": {
            "description": "Leave capability unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawLeaveRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveLifecycleController.withdraw"
      }
    },
    "/leave-management/me/requests/{requestId}": {
      "get": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "getSelfDetail",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Own leave request detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfLeaveRequestDetailResponse"
                }
              }
            }
          },
          "403": {
            "description": "Own leave request is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LeaveLifecycleController.getSelfDetail"
      }
    },
    "/leave-management/me/requests": {
      "post": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "submit",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Leave request submitted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfLeaveCommandResult"
                }
              }
            }
          },
          "403": {
            "description": "Employee or hotel scope is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "409": {
            "description": "Leave dates or submission targets conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "422": {
            "description": "Leave request policy or input is invalid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "503": {
            "description": "Leave capability or required integration is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLeaveRequest"
              }
            }
          },
          "required": true
        },
        "operationId": "LeaveLifecycleController.submit"
      },
      "get": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "listSelf",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Own leave requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfLeaveRequestListResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "leaveTypeId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "LeaveLifecycleController.listSelf"
      }
    },
    "/leave-management/me/types": {
      "get": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "listMyTypes",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Own requestable leave types",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveTypeListResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "LeaveFoundationController.listMyTypes"
      }
    },
    "/leave-management/requests/{requestId}/approval-preview": {
      "post": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "approvalPreview",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Leave approval preview",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveApprovalPreviewResponse"
                }
              }
            }
          },
          "503": {
            "description": "Integration unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LeaveApprovalPreviewRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveLifecycleController.approvalPreview"
      }
    },
    "/leave-management/requests/{requestId}/approve": {
      "post": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "approve",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Leave request approved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagerLeaveCommandResult"
                }
              }
            }
          },
          "403": {
            "description": "Leave request is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "409": {
            "description": "Leave request cannot transition",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "422": {
            "description": "Invalid leave request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "503": {
            "description": "Integration unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApproveLeaveRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveLifecycleController.approve"
      }
    },
    "/leave-management/requests/{requestId}/cancel": {
      "post": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "cancel",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Leave request cancelled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagerLeaveCommandResult"
                }
              }
            }
          },
          "403": {
            "description": "Leave request is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "409": {
            "description": "Leave request cannot transition",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "422": {
            "description": "Invalid leave request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "503": {
            "description": "Leave integration unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelLeaveRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveLifecycleController.cancel"
      }
    },
    "/leave-management/requests/{requestId}/correct": {
      "post": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "correct",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Leave request corrected",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagerLeaveCommandResult"
                }
              }
            }
          },
          "403": {
            "description": "Leave request is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "409": {
            "description": "Leave request cannot transition",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "422": {
            "description": "Invalid leave request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "503": {
            "description": "Integration unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CorrectLeaveRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveLifecycleController.correct"
      }
    },
    "/leave-management/requests/{requestId}/reject": {
      "post": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "reject",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Leave request rejected",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagerLeaveCommandResult"
                }
              }
            }
          },
          "403": {
            "description": "Leave request is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "409": {
            "description": "Leave request cannot transition",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "422": {
            "description": "Invalid leave request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "503": {
            "description": "Leave capability unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectLeaveRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveLifecycleController.reject"
      }
    },
    "/leave-management/requests/{requestId}/reverse": {
      "post": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "reverse",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Leave request reversed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagerLeaveCommandResult"
                }
              }
            }
          },
          "403": {
            "description": "Leave request is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "409": {
            "description": "Leave request cannot transition",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "422": {
            "description": "Invalid leave request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "503": {
            "description": "Integration unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReverseLeaveRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveLifecycleController.reverse"
      }
    },
    "/leave-management/requests/{requestId}": {
      "get": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "getManagerDetail",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Manager leave request detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagerLeaveRequestDetailResponse"
                }
              }
            }
          },
          "403": {
            "description": "Manager leave request is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LeaveLifecycleController.getManagerDetail"
      }
    },
    "/leave-management/requests": {
      "get": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "listManager",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Manager leave requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagerLeaveRequestListResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "employeeId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "leaveTypeId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "LeaveLifecycleController.listManager"
      }
    },
    "/leave-management/schedule-releases/{releaseId}": {
      "get": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "getScheduleRelease",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Privacy-safe released shift detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduleReleaseDetailResponse"
                }
              }
            }
          },
          "403": {
            "description": "Released shift is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "503": {
            "description": "Leave integration is not ready",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "releaseId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LeaveLifecycleController.getScheduleRelease"
      }
    },
    "/leave-management/types/{shiftTypeId}": {
      "patch": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "updateType",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Leave type updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveTypeFoundationCommandResult"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "shiftTypeId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLeaveTypeRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveFoundationController.updateType"
      }
    },
    "/leave-management/types": {
      "post": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "createType",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Leave type created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveTypeFoundationCommandResult"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLeaveTypeRequest"
              }
            }
          },
          "required": true
        },
        "operationId": "LeaveFoundationController.createType"
      },
      "get": {
        "x-controller-name": "LeaveFoundationController",
        "x-operation-name": "listTypes",
        "tags": [
          "LeaveFoundationController"
        ],
        "responses": {
          "200": {
            "description": "Hotel leave types",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeaveTypeListResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "requestable",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "LeaveFoundationController.listTypes"
      }
    },
    "/linenChangeDuration": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "linenChangeDuration",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "linenChangeDuration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "operationId": "RoomsController.linenChangeDuration"
      }
    },
    "/login": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "login",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Login: Validate User Credentials",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "email": {
                      "type": "string"
                    },
                    "password": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "AuthController.login"
      }
    },
    "/logout": {
      "post": {
        "x-controller-name": "UsersController",
        "x-operation-name": "logoutUser",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Logout User",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "scope": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "UsersController.logoutUser"
      }
    },
    "/logs/answers/item/{id}": {
      "get": {
        "x-controller-name": "LogsController",
        "x-operation-name": "getUserAnswerById",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Get specific user answer by ID"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LogsController.getUserAnswerById"
      }
    },
    "/logs/answers/manager/{userLogItemId}": {
      "post": {
        "x-controller-name": "LogsController",
        "x-operation-name": "createManagerAnswers",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Create manager answers (log item)"
          }
        },
        "parameters": [
          {
            "name": "userLogItemId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLogItemManagerBodyDto"
              }
            }
          }
        },
        "operationId": "LogsController.createManagerAnswers"
      }
    },
    "/logs/answers/{id}": {
      "patch": {
        "x-controller-name": "LogsController",
        "x-operation-name": "updateLogItemAnswers",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Update log item answers"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLogItemAnswersDto"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "LogsController.updateLogItemAnswers"
      }
    },
    "/logs/answers/{type}": {
      "get": {
        "x-controller-name": "LogsController",
        "x-operation-name": "answersListByType",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Get user answers by report type",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "id",
                      "status",
                      "statusLabel",
                      "summary",
                      "createdBy",
                      "claimState",
                      "tableAnswers"
                    ],
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "statusLabel": {
                        "type": "string"
                      },
                      "summary": {
                        "type": "string"
                      },
                      "completedAt": {
                        "type": "string"
                      },
                      "createdById": {
                        "type": "string"
                      },
                      "createdBy": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "initials": {
                            "type": "string"
                          },
                          "user_image": {
                            "type": "object"
                          }
                        }
                      },
                      "user": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "initials": {
                            "type": "string"
                          },
                          "user_image": {
                            "type": "object"
                          }
                        }
                      },
                      "manager": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "initials": {
                            "type": "string"
                          },
                          "user_image": {
                            "type": "object"
                          }
                        }
                      },
                      "claimState": {
                        "type": "string"
                      },
                      "claimedById": {
                        "type": "string"
                      },
                      "claimedBy": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "initials": {
                            "type": "string"
                          },
                          "user_image": {
                            "type": "object"
                          }
                        }
                      },
                      "claimedAt": {
                        "type": "string"
                      },
                      "canEdit": {
                        "type": "boolean"
                      },
                      "canClaim": {
                        "type": "boolean"
                      },
                      "answers": {
                        "type": "object",
                        "description": "Guest Report saved answers keyed by log definition answer keys, plus stay_dates when stored"
                      },
                      "tableAnswers": {
                        "type": "object"
                      }
                    },
                    "additionalProperties": true
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdById",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateFrom",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateTo",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subtype",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "LogsController.answersListByType"
      }
    },
    "/logs/answers": {
      "post": {
        "x-controller-name": "LogsController",
        "x-operation-name": "createUserAnswers",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Create user answers (log item)"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLogItemBodyDto"
              }
            }
          }
        },
        "operationId": "LogsController.createUserAnswers"
      }
    },
    "/logs/definitions": {
      "get": {
        "x-controller-name": "LogsController",
        "x-operation-name": "getLogDefinitions",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Get shared log definitions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "type",
                      "label",
                      "questions",
                      "managerQuestions",
                      "answerKeys",
                      "managerAnswerKeys",
                      "tableFields",
                      "managerTableFields",
                      "branchMetadata",
                      "statusMetadata",
                      "capabilities"
                    ],
                    "properties": {
                      "type": {
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      },
                      "managerType": {
                        "type": "string"
                      },
                      "questions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "type": {
                              "type": "string"
                            },
                            "key": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            },
                            "description": {
                              "type": "string"
                            },
                            "questionNumber": {
                              "type": "number"
                            },
                            "questionType": {
                              "type": "string"
                            },
                            "required": {
                              "oneOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "object"
                                }
                              ]
                            },
                            "options": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            },
                            "visibleWhen": {
                              "type": "object"
                            },
                            "disabledWhen": {
                              "type": "object"
                            },
                            "metadata": {
                              "type": "object"
                            },
                            "nextStep": {
                              "type": "object"
                            }
                          }
                        }
                      },
                      "managerQuestions": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "type": {
                              "type": "string"
                            },
                            "key": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            },
                            "description": {
                              "type": "string"
                            },
                            "questionNumber": {
                              "type": "number"
                            },
                            "questionType": {
                              "type": "string"
                            },
                            "required": {
                              "oneOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "object"
                                }
                              ]
                            },
                            "options": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            },
                            "visibleWhen": {
                              "type": "object"
                            },
                            "disabledWhen": {
                              "type": "object"
                            },
                            "metadata": {
                              "type": "object"
                            },
                            "nextStep": {
                              "type": "object"
                            }
                          }
                        }
                      },
                      "answerKeys": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "questionNumber",
                            "key",
                            "label"
                          ],
                          "properties": {
                            "questionNumber": {
                              "type": "number"
                            },
                            "key": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            },
                            "questionType": {
                              "type": "string"
                            },
                            "required": {
                              "oneOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "object"
                                }
                              ]
                            }
                          }
                        }
                      },
                      "managerAnswerKeys": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "questionNumber",
                            "key",
                            "label"
                          ],
                          "properties": {
                            "questionNumber": {
                              "type": "number"
                            },
                            "key": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            },
                            "questionType": {
                              "type": "string"
                            },
                            "required": {
                              "oneOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "object"
                                }
                              ]
                            }
                          }
                        }
                      },
                      "tableFields": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "questionNumber",
                            "key",
                            "label"
                          ],
                          "properties": {
                            "questionNumber": {
                              "type": "number"
                            },
                            "key": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "managerTableFields": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "questionNumber",
                            "key",
                            "label"
                          ],
                          "properties": {
                            "questionNumber": {
                              "type": "number"
                            },
                            "key": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "listViews": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "key",
                            "label",
                            "type",
                            "subtype",
                            "tableFields",
                            "statusMetadata"
                          ],
                          "properties": {
                            "key": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            },
                            "type": {
                              "type": "string"
                            },
                            "subtype": {
                              "type": "string"
                            },
                            "tableFields": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "required": [
                                  "questionNumber",
                                  "key",
                                  "label"
                                ],
                                "properties": {
                                  "questionNumber": {
                                    "type": "number"
                                  },
                                  "key": {
                                    "type": "string"
                                  },
                                  "label": {
                                    "type": "string"
                                  }
                                }
                              }
                            },
                            "statusMetadata": {
                              "type": "object",
                              "properties": {
                                "initialStatus": {
                                  "type": "string"
                                },
                                "statuses": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "string"
                                  }
                                },
                                "allowedTransitions": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "branchMetadata": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "questionNumber": {
                              "type": "number"
                            },
                            "key": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            },
                            "nextStep": {
                              "type": "object"
                            },
                            "visibleWhen": {
                              "type": "object"
                            },
                            "disabledWhen": {
                              "type": "object"
                            },
                            "options": {
                              "type": "array",
                              "items": {
                                "type": "object"
                              }
                            }
                          }
                        }
                      },
                      "statusMetadata": {
                        "type": "object",
                        "properties": {
                          "initialStatus": {
                            "type": "string"
                          },
                          "statuses": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "allowedTransitions": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "statusesBySubtype": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "object",
                              "properties": {
                                "initialStatus": {
                                  "type": "string"
                                },
                                "statuses": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "string"
                                  }
                                },
                                "allowedTransitions": {
                                  "type": "object",
                                  "additionalProperties": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "capabilities": {
                        "type": "object",
                        "required": [
                          "hasManagerQuestions",
                          "hasCloseout",
                          "hasEmailAction"
                        ],
                        "properties": {
                          "hasManagerQuestions": {
                            "type": "boolean"
                          },
                          "hasCloseout": {
                            "type": "boolean"
                          },
                          "hasEmailAction": {
                            "type": "boolean"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "LogsController.getLogDefinitions"
      }
    },
    "/logs/questions/bulk/{type}": {
      "post": {
        "x-controller-name": "LogsController",
        "x-operation-name": "createQuestionsForType",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Create multiple questions for a specific report type"
          }
        },
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "LogsController.createQuestionsForType"
      }
    },
    "/logs/questions/manager/{type}": {
      "get": {
        "x-controller-name": "LogsController",
        "x-operation-name": "getQuestionsForManagerByType",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Get questions by report type"
          }
        },
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "LogsController.getQuestionsForManagerByType"
      }
    },
    "/logs/questions/{type}": {
      "get": {
        "x-controller-name": "LogsController",
        "x-operation-name": "getQuestionsByType",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Get questions by report type"
          }
        },
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LogsController.getQuestionsByType"
      }
    },
    "/logs/questions": {
      "post": {
        "x-controller-name": "LogsController",
        "x-operation-name": "createQuestion",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Create a new question for log forms"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQuestionDto"
              }
            }
          }
        },
        "operationId": "LogsController.createQuestion"
      }
    },
    "/logs/status/{id}": {
      "patch": {
        "x-controller-name": "LogsController",
        "x-operation-name": "updateLogStatus",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Update log item status"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLogStatusDto"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "LogsController.updateLogStatus"
      }
    },
    "/logs/upload-files": {
      "post": {
        "x-controller-name": "LogsController",
        "x-operation-name": "uploadLogFiles",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Upload multiple files for logs"
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true
        },
        "operationId": "LogsController.uploadLogFiles"
      }
    },
    "/logs/{id}/claim": {
      "patch": {
        "x-controller-name": "LogsController",
        "x-operation-name": "claimLogItem",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Claim log item manager ownership"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LogsController.claimLogItem"
      }
    },
    "/logs/{id}/unclaim": {
      "patch": {
        "x-controller-name": "LogsController",
        "x-operation-name": "unclaimLogItem",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "200": {
            "description": "Clear log item manager ownership"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LogsController.unclaimLogItem"
      }
    },
    "/logs/{id}": {
      "delete": {
        "x-controller-name": "LogsController",
        "x-operation-name": "deleteLogItem",
        "tags": [
          "LogsController"
        ],
        "responses": {
          "204": {
            "description": "Delete log item"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LogsController.deleteLogItem"
      }
    },
    "/markAsRead/{entityId}/{moduleName}": {
      "put": {
        "x-controller-name": "NotesController",
        "x-operation-name": "markAsRead",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notes Mark As Read success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "moduleName",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotesController.markAsRead"
      }
    },
    "/markDeliveryAsComplete": {
      "put": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "markDeliveryAsComplete",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "Updates the time for a specific delivery",
            "content": {
              "application/json": {}
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "DeliveryServiceController.markDeliveryAsComplete"
      }
    },
    "/markNotesRead": {
      "post": {
        "x-controller-name": "RoomNoteController",
        "x-operation-name": "markNotesRead",
        "tags": [
          "RoomNoteController"
        ],
        "responses": {
          "200": {
            "description": "Room model instance",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "taskId": {
                    "type": "string"
                  },
                  "projectId": {
                    "type": "string"
                  },
                  "checklistProgressId": {
                    "type": "string"
                  },
                  "roomId": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "RoomNoteController.markNotesRead"
      }
    },
    "/meetingTranslator": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "meetingTranslator",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Translates the text in the targetted languagels",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hotel"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "HotelController.meetingTranslator"
      }
    },
    "/mews/metrics/{hotel_id}": {
      "get": {
        "x-controller-name": "MewsController",
        "x-operation-name": "getMewsMetricsData",
        "tags": [
          "MewsController"
        ],
        "responses": {
          "200": {
            "description": "Get Mews data"
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "MewsController.getMewsMetricsData"
      }
    },
    "/notes/count": {
      "get": {
        "x-controller-name": "NotesController",
        "x-operation-name": "count",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notes model count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Notes.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Notes>"
                }
              }
            }
          }
        ],
        "operationId": "NotesController.count"
      }
    },
    "/notes/script": {
      "get": {
        "x-controller-name": "NotesController",
        "x-operation-name": "noteScript",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notes model count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Notes.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Notes>"
                }
              }
            }
          }
        ],
        "operationId": "NotesController.noteScript"
      }
    },
    "/notes/{id}": {
      "patch": {
        "x-controller-name": "NotesController",
        "x-operation-name": "updateById",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notes PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Notes"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "NotesController.updateById"
      }
    },
    "/notes": {
      "post": {
        "x-controller-name": "NotesController",
        "x-operation-name": "create",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Saving Cleaning Preference Time"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "NotesController.create"
      },
      "patch": {
        "x-controller-name": "NotesController",
        "x-operation-name": "updateAll",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notes PATCH success count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Notes.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Notes>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Notes"
              }
            }
          }
        },
        "operationId": "NotesController.updateAll"
      },
      "get": {
        "x-controller-name": "NotesController",
        "x-operation-name": "find",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of Notes model instances"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Notes.Filter"
                }
              }
            }
          }
        ],
        "operationId": "NotesController.find"
      }
    },
    "/notifications/{id}/users": {
      "get": {
        "x-controller-name": "NotificationsUsersController",
        "x-operation-name": "getUsers",
        "tags": [
          "NotificationsUsersController"
        ],
        "responses": {
          "200": {
            "description": "Users belonging to Notifications",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Users"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotificationsUsersController.getUsers"
      }
    },
    "/opera/fetchRoomStatuses": {
      "post": {
        "x-controller-name": "OperaController",
        "x-operation-name": "fetchRoomStatuses",
        "tags": [
          "OperaController"
        ],
        "responses": {
          "200": {
            "description": "Get Authentication Token For Opera",
            "content": {}
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "OperaController.fetchRoomStatuses"
      }
    },
    "/opera-cloud/metrics/{hotel_id}": {
      "get": {
        "x-controller-name": "OperaController",
        "x-operation-name": "getOperaCloudMetricsData",
        "tags": [
          "OperaController"
        ],
        "responses": {
          "200": {
            "description": "Get StayNTouch data"
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OperaController.getOperaCloudMetricsData"
      }
    },
    "/opera5ActivityService": {
      "post": {
        "x-controller-name": "OperaController",
        "x-operation-name": "opera5ActivityService",
        "tags": [
          "OperaController"
        ],
        "responses": {
          "200": {
            "description": "Return value of OperaController.opera5ActivityService"
          }
        },
        "operationId": "OperaController.opera5ActivityService"
      }
    },
    "/opera5NameService": {
      "post": {
        "x-controller-name": "OperaController",
        "x-operation-name": "opera5NameService",
        "tags": [
          "OperaController"
        ],
        "responses": {
          "200": {
            "description": "Return value of OperaController.opera5NameService"
          }
        },
        "operationId": "OperaController.opera5NameService"
      }
    },
    "/opera5ReservationService": {
      "post": {
        "x-controller-name": "OperaController",
        "x-operation-name": "opera5ReservationService",
        "tags": [
          "OperaController"
        ],
        "responses": {
          "200": {
            "description": "Return value of OperaController.opera5ReservationService"
          }
        },
        "operationId": "OperaController.opera5ReservationService"
      }
    },
    "/permission/count": {
      "get": {
        "x-controller-name": "PermissionController",
        "x-operation-name": "count",
        "tags": [
          "PermissionController"
        ],
        "responses": {
          "200": {
            "description": "BasePermission model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "BasePermission.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<BasePermission>"
                }
              }
            }
          }
        ],
        "operationId": "PermissionController.count"
      }
    },
    "/permission/{id}": {
      "put": {
        "x-controller-name": "PermissionController",
        "x-operation-name": "replaceById",
        "tags": [
          "PermissionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "BasePermission PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BasePermission"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "PermissionController.replaceById"
      },
      "patch": {
        "x-controller-name": "PermissionController",
        "x-operation-name": "updateById",
        "tags": [
          "PermissionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "BasePermission PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BasePermissionPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "PermissionController.updateById"
      },
      "get": {
        "x-controller-name": "PermissionController",
        "x-operation-name": "findById",
        "tags": [
          "PermissionController"
        ],
        "responses": {
          "200": {
            "description": "BasePermission model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasePermissionWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasePermission.Filter"
                }
              }
            }
          }
        ],
        "operationId": "PermissionController.findById"
      },
      "delete": {
        "x-controller-name": "PermissionController",
        "x-operation-name": "deleteById",
        "tags": [
          "PermissionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "BasePermission DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "PermissionController.deleteById"
      }
    },
    "/permission": {
      "post": {
        "x-controller-name": "PermissionController",
        "x-operation-name": "create",
        "tags": [
          "PermissionController"
        ],
        "responses": {
          "200": {
            "description": "BasePermission model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasePermission"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewBasePermission"
              }
            }
          }
        },
        "operationId": "PermissionController.create"
      },
      "patch": {
        "x-controller-name": "PermissionController",
        "x-operation-name": "updateAll",
        "tags": [
          "PermissionController"
        ],
        "responses": {
          "200": {
            "description": "BasePermission PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "BasePermission.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<BasePermission>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BasePermissionPartial"
              }
            }
          }
        },
        "operationId": "PermissionController.updateAll"
      }
    },
    "/ping": {
      "get": {
        "x-controller-name": "PingController",
        "x-operation-name": "ping",
        "tags": [
          "PingController"
        ],
        "responses": {
          "200": {
            "description": "Ping Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PingResponse"
                }
              }
            }
          }
        },
        "operationId": "PingController.ping"
      }
    },
    "/pinnedNotes/{id}": {
      "put": {
        "x-controller-name": "NotesController",
        "x-operation-name": "pinnedNotes",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notes PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "NotesController.pinnedNotes"
      }
    },
    "/pms/status": {
      "get": {
        "x-controller-name": "PMSStatusController",
        "x-operation-name": "getPMSStatus",
        "tags": [
          "PMSStatusController"
        ],
        "responses": {
          "200": {
            "description": "Get PMS operations status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "environment": {
                      "type": "string"
                    },
                    "writeAllowed": {
                      "type": "boolean"
                    },
                    "createAllowed": {
                      "type": "boolean"
                    },
                    "deleteAllowed": {
                      "type": "boolean"
                    },
                    "mode": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "PMSStatusController.getPMSStatus"
      }
    },
    "/publishShifts": {
      "patch": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "publishShifts",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workshift"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array"
              }
            }
          }
        },
        "operationId": "WorkshiftController.publishShifts"
      }
    },
    "/refresh": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "refresh",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "accessToken": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "refreshToken"
                ],
                "properties": {
                  "refreshToken": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "description": "Reissuing Acess Token",
          "required": true
        },
        "operationId": "AuthController.refresh"
      }
    },
    "/removeDuplicateRequestCategories": {
      "get": {
        "x-controller-name": "AuthController",
        "x-operation-name": "removeDuplicateRequestCategories",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "RequestCategory model instance"
                }
              }
            }
          }
        },
        "operationId": "AuthController.removeDuplicateRequestCategories"
      }
    },
    "/removeDuplicateUserHotel": {
      "get": {
        "x-controller-name": "AuthController",
        "x-operation-name": "removeDuplicateUserHotel",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "DeliveryService model instance"
                }
              }
            }
          }
        },
        "operationId": "AuthController.removeDuplicateUserHotel"
      }
    },
    "/replaceCategoryName": {
      "put": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "replaceCategoryName",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "Creates Link Betweeen Delivery Service and Hotel"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "DeliveryServiceController.replaceCategoryName"
      }
    },
    "/report/checklist/pdf": {
      "post": {
        "x-controller-name": "ChecklistController",
        "x-operation-name": "getChecklistPdfReport",
        "tags": [
          "ChecklistController"
        ],
        "responses": {
          "200": {
            "description": "Checklist report in PDF format",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotel_id",
                  "role",
                  "shift_type",
                  "date"
                ],
                "properties": {
                  "hotel_id": {
                    "type": "string"
                  },
                  "role": {
                    "type": "string"
                  },
                  "shift_type": {
                    "type": "string"
                  },
                  "date": {
                    "type": "string"
                  },
                  "assigned_to": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "ChecklistController.getChecklistPdfReport"
      }
    },
    "/report/checklist": {
      "post": {
        "x-controller-name": "ChecklistController",
        "x-operation-name": "getChecklistReport",
        "tags": [
          "ChecklistController"
        ],
        "responses": {
          "200": {
            "description": "Checklist report in CSV format",
            "content": {
              "text/csv; charset=utf-8": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotel_id",
                  "role",
                  "shift_type",
                  "date"
                ],
                "properties": {
                  "hotel_id": {
                    "type": "string"
                  },
                  "role": {
                    "type": "string"
                  },
                  "shift_type": {
                    "type": "string"
                  },
                  "date": {
                    "type": "string"
                  },
                  "assigned_to": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "ChecklistController.getChecklistReport"
      }
    },
    "/report/cleaning": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "CleaningReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Average Cleaning Report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hotel": {
                      "type": "array"
                    },
                    "user": {
                      "type": "array"
                    },
                    "start_date": {
                      "type": "string"
                    },
                    "end_date": {
                      "type": "string"
                    },
                    "less_than": {
                      "type": "number"
                    },
                    "greater_than": {
                      "type": "number"
                    },
                    "type": {
                      "type": "string"
                    },
                    "report_type": {
                      "type": "string"
                    },
                    "room_types": {
                      "type": "array"
                    },
                    "reservation_statuses": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.CleaningReport"
      }
    },
    "/report/housekeeping-status": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "housekeepingStatusReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Housekeeping Status Report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "hotelId",
                    "hotelName",
                    "timezone",
                    "reportDate",
                    "generatedAt",
                    "roomAttendantProductivity",
                    "roomStatusUpdates",
                    "roomsOverview",
                    "houseperson",
                    "openHousekeepingTasks",
                    "occupancyForecast",
                    "unavailableFields"
                  ],
                  "properties": {
                    "hotelId": {
                      "type": "string"
                    },
                    "hotelName": {
                      "type": "string"
                    },
                    "timezone": {
                      "type": "string"
                    },
                    "reportDate": {
                      "type": "string"
                    },
                    "generatedAt": {
                      "type": "string"
                    },
                    "roomAttendantProductivity": {
                      "type": "object"
                    },
                    "roomStatusUpdates": {
                      "type": "object"
                    },
                    "roomsOverview": {
                      "type": "object"
                    },
                    "houseperson": {
                      "type": "object"
                    },
                    "openHousekeepingTasks": {
                      "type": "object"
                    },
                    "occupancyForecast": {
                      "type": "object"
                    },
                    "unavailableFields": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.housekeepingStatusReport"
      }
    },
    "/report/productivity/old": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "productivityReportOld",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Room Attendent Productivity Report ",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hotel": {
                      "type": "array"
                    },
                    "user": {
                      "type": "array"
                    },
                    "type": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.productivityReportOld"
      }
    },
    "/report/productivity": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "productivityReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Room Attendent Productivity Report "
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.productivityReport"
      }
    },
    "/report/project/pdf": {
      "post": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "getProjectChecklistPdfReport",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "200": {
            "description": "Project checklist report in PDF format",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotel_id",
                  "project_id"
                ],
                "properties": {
                  "hotel_id": {
                    "type": "string"
                  },
                  "project_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "ProjectController.getProjectChecklistPdfReport"
      }
    },
    "/report/project": {
      "post": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "getProjectReport",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "200": {
            "description": "Project report in CSV format",
            "content": {
              "text/csv; charset=utf-8": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotel_id",
                  "project_id"
                ],
                "properties": {
                  "hotel_id": {
                    "type": "string"
                  },
                  "project_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "ProjectController.getProjectReport"
      }
    },
    "/report/rating": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "CleaningRatingReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Average Cleaning Rating Report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hotel": {
                      "type": "array"
                    },
                    "user": {
                      "type": "array"
                    },
                    "item": {
                      "type": "array"
                    },
                    "type": {
                      "type": "string"
                    },
                    "request_type": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.CleaningRatingReport"
      }
    },
    "/report/request/completion-time": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "AverageRequestCompletionTimeReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Average Request Completion Time Report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hotel": {
                      "type": "array"
                    },
                    "user": {
                      "type": "array"
                    },
                    "item": {
                      "type": "array"
                    },
                    "department": {
                      "type": "array"
                    },
                    "type": {
                      "type": "string"
                    },
                    "request_type": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.AverageRequestCompletionTimeReport"
      }
    },
    "/report/request": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "NumberOfRequestReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Number of Request Report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hotel": {
                      "type": "array"
                    },
                    "user": {
                      "type": "array"
                    },
                    "item": {
                      "type": "array"
                    },
                    "department": {
                      "type": "array"
                    },
                    "type": {
                      "type": "string"
                    },
                    "request_type": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.NumberOfRequestReport"
      }
    },
    "/report/timesheet": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "timesheetProductivityReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Timesheet report in CSV format",
            "content": {
              "text/csv; charset=utf-8": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.timesheetProductivityReport"
      }
    },
    "/report-email-schedules/list": {
      "get": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "listReportEmailSchedules",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Recurring report email schedules for a report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "schedules": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ReportEmailSchedule"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "report_type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include_disabled",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "operationId": "ReportsController.listReportEmailSchedules"
      }
    },
    "/report-email-schedules/send-test": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "sendReportEmailScheduleTest",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Send a one-off test recurring report email without creating a schedule",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "sent",
                    "failed",
                    "message_ids"
                  ],
                  "properties": {
                    "sent": {
                      "type": "number"
                    },
                    "failed": {
                      "type": "number"
                    },
                    "message_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "error_message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotel_id",
                  "report_type",
                  "report_filters",
                  "rolling_period",
                  "recurrence",
                  "recipients",
                  "send_time",
                  "start_date",
                  "end_date"
                ],
                "properties": {
                  "hotel_id": {
                    "type": "string"
                  },
                  "report_type": {
                    "type": "string",
                    "enum": [
                      "room_status_csv",
                      "tasks_csv",
                      "allocation_board_csv",
                      "timesheet_productivity_csv",
                      "average_room_cleaning_time_csv",
                      "room_attendant_productivity_csv",
                      "number_of_requests_csv",
                      "average_request_completion_time_csv",
                      "room_attendant_cleaning_rating_csv",
                      "housekeeping_status_pdf",
                      "checklist_pdf"
                    ]
                  },
                  "report_filters": {
                    "type": "object"
                  },
                  "rolling_period": {
                    "type": "object"
                  },
                  "recurrence": {
                    "type": "object"
                  },
                  "recipients": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 25
                  },
                  "is_active": {
                    "type": "boolean"
                  },
                  "send_time": {
                    "type": "string",
                    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
                  },
                  "start_date": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                  },
                  "end_date": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                  }
                }
              }
            }
          }
        },
        "operationId": "ReportsController.sendReportEmailScheduleTest"
      }
    },
    "/report-email-schedules/{id}/disable": {
      "patch": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "disableReportEmailSchedule",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Disabled recurring report email schedule",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportEmailSchedule"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ReportsController.disableReportEmailSchedule"
      }
    },
    "/report-email-schedules/{id}": {
      "delete": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "deleteReportEmailSchedule",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Soft-deleted recurring report email schedule",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportEmailSchedule"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ReportsController.deleteReportEmailSchedule"
      }
    },
    "/report-email-schedules": {
      "put": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "upsertReportEmailSchedule",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Recurring report email schedule",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportEmailSchedule"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotel_id",
                  "report_type",
                  "report_filters",
                  "rolling_period",
                  "recurrence",
                  "recipients",
                  "send_time",
                  "start_date",
                  "end_date"
                ],
                "properties": {
                  "hotel_id": {
                    "type": "string"
                  },
                  "report_type": {
                    "type": "string",
                    "enum": [
                      "room_status_csv",
                      "tasks_csv",
                      "allocation_board_csv",
                      "timesheet_productivity_csv",
                      "average_room_cleaning_time_csv",
                      "room_attendant_productivity_csv",
                      "number_of_requests_csv",
                      "average_request_completion_time_csv",
                      "room_attendant_cleaning_rating_csv",
                      "housekeeping_status_pdf",
                      "checklist_pdf"
                    ]
                  },
                  "report_filters": {
                    "type": "object"
                  },
                  "rolling_period": {
                    "type": "object"
                  },
                  "recurrence": {
                    "type": "object"
                  },
                  "recipients": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 25
                  },
                  "is_active": {
                    "type": "boolean"
                  },
                  "send_time": {
                    "type": "string",
                    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
                  },
                  "start_date": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                  },
                  "end_date": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                  }
                }
              }
            }
          }
        },
        "operationId": "ReportsController.upsertReportEmailSchedule"
      },
      "get": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "getReportEmailSchedule",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Recurring report email schedule for the report context",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ReportEmailSchedule"
                    }
                  ],
                  "nullable": true
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "report_type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "context_key",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "report_filters",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ReportsController.getReportEmailSchedule"
      }
    },
    "/request/hotels": {
      "get": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "getHotels",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Hotel Data for Reports",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Hotel"
                  }
                }
              }
            }
          }
        },
        "operationId": "ReportsController.getHotels"
      }
    },
    "/request/items/completion": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "getItemsForCompletion",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Items Data for Average Request Completion Time Report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Item"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.getItemsForCompletion"
      }
    },
    "/request/items": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "getItems",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Items Data for Number of Request Reports",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Item"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.getItems"
      }
    },
    "/resetChecklistTime": {
      "post": {
        "x-controller-name": "ChecklistController",
        "x-operation-name": "resetChecklistTime",
        "tags": [
          "ChecklistController"
        ],
        "responses": {
          "200": {
            "description": "reset Checklist Time",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Checklist"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ChecklistController.resetChecklistTime"
      }
    },
    "/resetDNDandRSstatus": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "resetDNDandRSstatus",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Reset DND and RS status",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "operationId": "RoomsController.resetDNDandRSstatus"
      }
    },
    "/resetPassword": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "resetPassword",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Reset Password",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "newPassword": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "newPassword": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "AuthController.resetPassword"
      }
    },
    "/resetToken/{id}": {
      "put": {
        "x-controller-name": "UsersController",
        "x-operation-name": "resetToken",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Reset User Token While Logout",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "email": {
                      "type": "string"
                    },
                    "password": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UsersController.resetToken"
      }
    },
    "/roles/{id}": {
      "put": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "replaceById",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Role PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Role"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoleAndDepartmentController.replaceById"
      },
      "patch": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "updateById",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Role PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RolePartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoleAndDepartmentController.updateById"
      },
      "get": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "findById",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Role model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Role.Filter"
                }
              }
            }
          }
        ],
        "operationId": "RoleAndDepartmentController.findById"
      },
      "delete": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "deleteRoleById",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Role DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoleAndDepartmentController.deleteRoleById"
      }
    },
    "/roles": {
      "patch": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "updateAll",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Role PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Role.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Role>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RolePartial"
              }
            }
          }
        },
        "operationId": "RoleAndDepartmentController.updateAll"
      },
      "get": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "find",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "Array of Role model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RoleWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Role.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "RoleAndDepartmentController.find"
      }
    },
    "/room/inspect": {
      "put": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "updateCleaningInspect",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Cleaning Inspect PUT success"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RoomsController.updateCleaningInspect"
      },
      "delete": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "deleteCleaningInspect",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Cleaning Inspect DELETE success"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RoomsController.deleteCleaningInspect"
      }
    },
    "/room-status/report/old": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "roomStatusCSVReportOld",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Room Status CSV Report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hotel_id": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.roomStatusCSVReportOld"
      }
    },
    "/room-status/report": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "roomStatusCSVReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "Room Status CSV Report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hotel_id": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.roomStatusCSVReport"
      }
    },
    "/rooms/count": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "count",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Room model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "rooms.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Room>"
                }
              }
            }
          }
        ],
        "operationId": "RoomsController.count"
      }
    },
    "/rooms/{roomId}/action-tracking/complete": {
      "patch": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "completeRoomActionTracking",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Marks room action tracking complete.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "roomId",
                    "has_action_required"
                  ],
                  "properties": {
                    "roomId": {
                      "type": "string"
                    },
                    "has_action_required": {
                      "type": "boolean"
                    },
                    "action_tracking_completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "action_tracking_completed_by_name": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "roomId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "date"
                ],
                "properties": {
                  "date": {
                    "type": "string",
                    "description": "Room date in MM-DD-YYYY format."
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoomsController.completeRoomActionTracking"
      }
    },
    "/rooms/{roomId}/action-tracking": {
      "patch": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "updateRoomActionTracking",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Updates room action tracking completion state.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "roomId",
                    "has_action_required"
                  ],
                  "properties": {
                    "roomId": {
                      "type": "string"
                    },
                    "has_action_required": {
                      "type": "boolean"
                    },
                    "action_tracking_completed_at": {
                      "type": "string",
                      "nullable": true
                    },
                    "action_tracking_completed_by_name": {
                      "type": "string",
                      "nullable": true
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "roomId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "date",
                  "is_complete"
                ],
                "properties": {
                  "date": {
                    "type": "string",
                    "description": "Room date in MM-DD-YYYY format."
                  },
                  "is_complete": {
                    "type": "boolean",
                    "description": "Whether the configured room action has been completed."
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoomsController.updateRoomActionTracking"
      }
    },
    "/rooms/{id}": {
      "put": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "replaceById",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Room PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Room"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoomsController.replaceById"
      },
      "patch": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "updateById",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Room PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoomPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoomsController.updateById"
      },
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "findById",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Room model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoomWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rooms.Filter"
                }
              }
            }
          }
        ],
        "operationId": "RoomsController.findById"
      },
      "delete": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "deleteById",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Room DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.deleteById"
      }
    },
    "/rooms": {
      "patch": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "updateAll",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Room PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "rooms.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Room>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoomPartial"
              }
            }
          }
        },
        "operationId": "RoomsController.updateAll"
      },
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "find",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Array of Room model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RoomWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rooms.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "RoomsController.find"
      }
    },
    "/saveAllocations": {
      "post": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "saveAllocations",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "Save Workshift Allocations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workshift"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "WorkshiftController.saveAllocations"
      }
    },
    "/saveCleaningPreferenceTime": {
      "post": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "saveCleaningPreferenceTime",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Saving Cleaning Preference Time",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RoomsController.saveCleaningPreferenceTime"
      }
    },
    "/saveHotelSettings": {
      "put": {
        "x-controller-name": "HotelController",
        "x-operation-name": "saveHotelSettings",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Updates in hotel settings"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "HotelController.saveHotelSettings"
      }
    },
    "/saveRoomService": {
      "put": {
        "x-controller-name": "HotelController",
        "x-operation-name": "saveRoomService",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of Location model instances"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "HotelController.saveRoomService"
      }
    },
    "/saveTurndownPreferenceTime": {
      "post": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "saveTurndownPreferenceTime",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Saving Cleaning Preference Time",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RoomsController.saveTurndownPreferenceTime"
      }
    },
    "/saveWorkshiftOrder": {
      "post": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "saveWorkshiftOrder",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "Workshift model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workshift"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array"
              }
            }
          }
        },
        "operationId": "WorkshiftController.saveWorkshiftOrder"
      }
    },
    "/schedule/workshifts/{workshiftId}/claim-open-shift": {
      "post": {
        "x-controller-name": "LeaveLifecycleController",
        "x-operation-name": "claimOpenShift",
        "tags": [
          "LeaveLifecycleController"
        ],
        "responses": {
          "200": {
            "description": "Claim an open released Workshift without changing its ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimOpenShiftResponse"
                }
              }
            }
          },
          "403": {
            "description": "Open shift claim is forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "409": {
            "description": "Open shift claim conflicts with the current revision",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "422": {
            "description": "Open shift claim request is invalid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          },
          "503": {
            "description": "Leave integration is not ready",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Phase2LoopBackError"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workshiftId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClaimOpenShiftRequest"
              }
            }
          },
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LeaveLifecycleController.claimOpenShift"
      }
    },
    "/setAttendantAllocation": {
      "post": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "setAttendantAllocation",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "Returns the Allocated Baskets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Room"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "WorkshiftController.setAttendantAllocation"
      }
    },
    "/setDND/{room_id}/{type}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "setDND",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Set Room DND",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "room_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "type",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.setDND"
      }
    },
    "/setHotelPMS": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "setHotelPMS",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Set PMS For Hotel.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hotel"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "HotelController.setHotelPMS"
      }
    },
    "/setHotelStepperPosition": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "setHotelStepperPosition",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Set Stepper For Hotel.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hotel"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "HotelController.setHotelStepperPosition"
      }
    },
    "/setHotelTaskPreference": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "setHotelTaskPreference",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Set Task Preference For Hotel.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hotel"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "HotelController.setHotelTaskPreference"
      }
    },
    "/setOOO/{room_id}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "setOOO",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Set Room OOO",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "room_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.setOOO"
      }
    },
    "/setRS/{room_id}/{type}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "setRS",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Set Room RS",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "room_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "type",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.setRS"
      }
    },
    "/shift-types/{id}": {
      "patch": {
        "x-controller-name": "ShiftTypeController",
        "x-operation-name": "update",
        "tags": [
          "ShiftTypeController"
        ],
        "responses": {
          "200": {
            "description": "Return value of ShiftTypeController.update"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ShiftTypeController.update"
      },
      "delete": {
        "x-controller-name": "ShiftTypeController",
        "x-operation-name": "remove",
        "tags": [
          "ShiftTypeController"
        ],
        "responses": {
          "200": {
            "description": "Return value of ShiftTypeController.remove"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ShiftTypeController.remove"
      }
    },
    "/shift-types/{hotelId}": {
      "get": {
        "x-controller-name": "ShiftTypeController",
        "x-operation-name": "list",
        "tags": [
          "ShiftTypeController"
        ],
        "responses": {
          "200": {
            "description": "Return value of ShiftTypeController.list"
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ShiftTypeController.list"
      }
    },
    "/shift-types": {
      "post": {
        "x-controller-name": "ShiftTypeController",
        "x-operation-name": "create",
        "tags": [
          "ShiftTypeController"
        ],
        "responses": {
          "200": {
            "description": "Return value of ShiftTypeController.create"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ShiftTypeController.create"
      }
    },
    "/skipRoom": {
      "post": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "skipRooms",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Skip Rooms",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RoomsController.skipRooms"
      }
    },
    "/sntWebHook": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "SntWebHook",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SNT Webhook Api"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "AuthController.SntWebHook"
      }
    },
    "/sortChecklistItems": {
      "post": {
        "x-controller-name": "ChecklistController",
        "x-operation-name": "sortChecklistItems",
        "tags": [
          "ChecklistController"
        ],
        "responses": {
          "200": {
            "description": "reset Checklist Time",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Checklist"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ChecklistController.sortChecklistItems"
      }
    },
    "/sortHotelCommonArea": {
      "post": {
        "x-controller-name": "LocationController",
        "x-operation-name": "sortHotelCommonArea",
        "tags": [
          "LocationController"
        ],
        "responses": {
          "200": {
            "description": "Item model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Item"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "LocationController.sortHotelCommonArea"
      }
    },
    "/sortHotelSections": {
      "post": {
        "x-controller-name": "SectionController",
        "x-operation-name": "sortHotelSections",
        "tags": [
          "SectionController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Item model instance"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "SectionController.sortHotelSections"
      }
    },
    "/startRoomCleaning/{roomId}": {
      "put": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "startRoomCleaning",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Start Room Cleaning"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "roomId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoomsController.startRoomCleaning"
      }
    },
    "/startRoomTurndown/{roomId}": {
      "put": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "startRoomTurnDown",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Start Room TurnDown"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "roomId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoomsController.startRoomTurnDown"
      }
    },
    "/stayntouch/fetchRoomStatuses": {
      "post": {
        "x-controller-name": "StayNTouchController",
        "x-operation-name": "fetchRoomStatuses",
        "tags": [
          "StayNTouchController"
        ],
        "responses": {
          "200": {
            "description": "Get Authentication Token For Opera",
            "content": {}
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "StayNTouchController.fetchRoomStatuses"
      }
    },
    "/stayntouch/metrics/{hotel_id}": {
      "get": {
        "x-controller-name": "StayNTouchController",
        "x-operation-name": "getStayNTouchMetricsData",
        "tags": [
          "StayNTouchController"
        ],
        "responses": {
          "200": {
            "description": "Get StayNTouch data"
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "StayNTouchController.getStayNTouchMetricsData"
      }
    },
    "/stayntouchauth": {
      "get": {
        "x-controller-name": "AuthController",
        "x-operation-name": "stayntouchauth",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "DeliveryService model instance"
                }
              }
            }
          }
        },
        "operationId": "AuthController.stayntouchauth"
      }
    },
    "/sub-companies/hotel/{hotelId}": {
      "get": {
        "x-controller-name": "SubCompanyController",
        "x-operation-name": "findByHotel",
        "tags": [
          "SubCompanyController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SubCompanies found by hotel"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "SubCompanyController.findByHotel"
      }
    },
    "/sub-companies/{id}": {
      "patch": {
        "x-controller-name": "SubCompanyController",
        "x-operation-name": "updateById",
        "tags": [
          "SubCompanyController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SubCompany updated successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SubCompanyController.updateById"
      },
      "get": {
        "x-controller-name": "SubCompanyController",
        "x-operation-name": "findById",
        "tags": [
          "SubCompanyController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SubCompany found"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SubCompanyController.findById"
      },
      "delete": {
        "x-controller-name": "SubCompanyController",
        "x-operation-name": "deleteById",
        "tags": [
          "SubCompanyController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SubCompany deleted successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SubCompanyController.deleteById"
      }
    },
    "/sub-companies": {
      "post": {
        "x-controller-name": "SubCompanyController",
        "x-operation-name": "create",
        "tags": [
          "SubCompanyController"
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SubCompany created successfully"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "SubCompanyController.create"
      }
    },
    "/switchLocation/{hotel_id}": {
      "put": {
        "x-controller-name": "UsersController",
        "x-operation-name": "switchLocation",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Array of User model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Users"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UsersController.switchLocation"
      }
    },
    "/taskNotesTypeUpdate": {
      "get": {
        "x-controller-name": "TaskController",
        "x-operation-name": "TaskNotesTypeUpdate",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Task Notes Text Type Update to System Log"
                }
              }
            }
          }
        },
        "operationId": "TaskController.TaskNotesTypeUpdate"
      }
    },
    "/test-sentry-error": {
      "get": {
        "x-controller-name": "SentryTestController",
        "x-operation-name": "testSentryError",
        "tags": [
          "SentryTestController"
        ],
        "responses": {
          "200": {
            "description": "Return value of SentryTestController.testSentryError"
          }
        },
        "operationId": "SentryTestController.testSentryError"
      }
    },
    "/test-sentry-message": {
      "get": {
        "x-controller-name": "SentryTestController",
        "x-operation-name": "testSentryMessage",
        "tags": [
          "SentryTestController"
        ],
        "responses": {
          "200": {
            "description": "Return value of SentryTestController.testSentryMessage"
          }
        },
        "operationId": "SentryTestController.testSentryMessage"
      }
    },
    "/test-sentry-pms-error": {
      "post": {
        "x-controller-name": "SentryTestAuthController",
        "x-operation-name": "testPMSErrorWithUser",
        "tags": [
          "SentryTestAuthController"
        ],
        "responses": {
          "200": {
            "description": "Test PMS error with user context",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "authHeader": {
                      "type": "string"
                    },
                    "pmsName": {
                      "type": "string"
                    },
                    "operation": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "authHeader": {
                    "type": "string"
                  },
                  "pmsName": {
                    "type": "string"
                  },
                  "operation": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "SentryTestAuthController.testPMSErrorWithUser"
      }
    },
    "/test-sentry-pms-http-error": {
      "post": {
        "x-controller-name": "SentryTestAuthController",
        "x-operation-name": "testPMSHttpErrorWithUser",
        "tags": [
          "SentryTestAuthController"
        ],
        "responses": {
          "200": {
            "description": "Test PMS HTTP error with user context",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "authHeader": {
                      "type": "string"
                    },
                    "pmsName": {
                      "type": "string"
                    },
                    "operation": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "authHeader": {
                    "type": "string"
                  },
                  "pmsName": {
                    "type": "string"
                  },
                  "operation": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "SentryTestAuthController.testPMSHttpErrorWithUser"
      }
    },
    "/test-sentry-pms-message": {
      "post": {
        "x-controller-name": "SentryTestAuthController",
        "x-operation-name": "testPMSMessageWithUser",
        "tags": [
          "SentryTestAuthController"
        ],
        "responses": {
          "200": {
            "description": "Test PMS message with user context",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "authHeader": {
                      "type": "string"
                    },
                    "pmsName": {
                      "type": "string"
                    },
                    "operation": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "authHeader": {
                    "type": "string"
                  },
                  "pmsName": {
                    "type": "string"
                  },
                  "operation": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "SentryTestAuthController.testPMSMessageWithUser"
      }
    },
    "/timesheet-adjustments/activity": {
      "get": {
        "x-controller-name": "TimesheetReviewController",
        "x-operation-name": "listActivity",
        "tags": [
          "TimesheetReviewController"
        ],
        "responses": {
          "200": {
            "description": "Timesheet activity events",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workerWeekId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "dayRowId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "TimesheetReviewController.listActivity"
      }
    },
    "/timesheet-adjustments/approvals/{approvalTargetId}/reopen": {
      "post": {
        "x-controller-name": "TimesheetApprovalController",
        "x-operation-name": "reopenApprovalTarget",
        "tags": [
          "TimesheetApprovalController"
        ],
        "responses": {
          "200": {
            "description": "Reopened Timesheet approval target",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "approvalId",
                    "scope",
                    "mode",
                    "recordIds",
                    "dayRowIds"
                  ],
                  "properties": {
                    "approvalId": {
                      "type": "string"
                    },
                    "scope": {
                      "type": "string",
                      "enum": [
                        "worker_week",
                        "day_row"
                      ]
                    },
                    "mode": {
                      "type": "string",
                      "enum": [
                        "normal",
                        "override",
                        "reapproval",
                        "reopen",
                        "source_drift"
                      ]
                    },
                    "recordIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "dayRowIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "approvedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "reopenedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "approvalTargetId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "reason"
                ],
                "properties": {
                  "reason": {
                    "type": "string"
                  },
                  "clientMutationId": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "TimesheetApprovalController.reopenApprovalTarget"
      }
    },
    "/timesheet-adjustments/approvals": {
      "post": {
        "x-controller-name": "TimesheetApprovalController",
        "x-operation-name": "approveRecords",
        "tags": [
          "TimesheetApprovalController"
        ],
        "responses": {
          "200": {
            "description": "Approved Timesheet records",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "approvalId",
                    "scope",
                    "mode",
                    "recordIds",
                    "dayRowIds"
                  ],
                  "properties": {
                    "approvalId": {
                      "type": "string"
                    },
                    "scope": {
                      "type": "string",
                      "enum": [
                        "worker_week",
                        "day_row"
                      ]
                    },
                    "mode": {
                      "type": "string",
                      "enum": [
                        "normal",
                        "override",
                        "reapproval",
                        "reopen",
                        "source_drift"
                      ]
                    },
                    "recordIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "dayRowIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "approvedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "reopenedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "scope",
                  "recordIds"
                ],
                "properties": {
                  "scope": {
                    "type": "string",
                    "enum": [
                      "worker_week",
                      "day_row"
                    ]
                  },
                  "recordIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "override": {
                    "type": "boolean"
                  },
                  "reason": {
                    "type": "string"
                  },
                  "clientMutationId": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "TimesheetApprovalController.approveRecords"
      }
    },
    "/timesheet-adjustments/day-rows/{dayRowId}/adjustments": {
      "post": {
        "x-controller-name": "TimesheetAdjustmentController",
        "x-operation-name": "saveAdjustment",
        "tags": [
          "TimesheetAdjustmentController"
        ],
        "responses": {
          "200": {
            "description": "Saved Timesheet day-row adjustment",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "dayRowId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "paid"
                ],
                "properties": {
                  "paid": {
                    "type": "object",
                    "required": [
                      "in",
                      "out"
                    ],
                    "properties": {
                      "in": {
                        "type": "string"
                      },
                      "out": {
                        "type": "string"
                      },
                      "unpaidBreakMinutes": {
                        "type": "number"
                      }
                    }
                  },
                  "statusCodes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "customStatuses": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "comment": {
                    "type": "string"
                  },
                  "clientMutationId": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "TimesheetAdjustmentController.saveAdjustment"
      }
    },
    "/timesheet-adjustments/days": {
      "get": {
        "x-controller-name": "TimesheetReviewController",
        "x-operation-name": "getDailyReview",
        "tags": [
          "TimesheetReviewController"
        ],
        "responses": {
          "200": {
            "description": "Timesheet daily review rows",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimesheetDailyReviewResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "locationId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "date",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "departmentId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "roleId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "activityId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workerId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customStatus",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exception",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "approvalState",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "TimesheetReviewController.getDailyReview"
      }
    },
    "/timesheet-adjustments/employees/{employeeId}/weeks/{weekStart}": {
      "get": {
        "x-controller-name": "TimesheetReviewController",
        "x-operation-name": "getEmployeeWeek",
        "tags": [
          "TimesheetReviewController"
        ],
        "responses": {
          "200": {
            "description": "Timesheet employee week detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimesheetEmployeeWeekResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "employeeId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "weekStart",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "locationId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TimesheetReviewController.getEmployeeWeek"
      }
    },
    "/timesheet-adjustments/exports/{snapshotId}/download": {
      "get": {
        "x-controller-name": "TimesheetExportController",
        "x-operation-name": "downloadExport",
        "tags": [
          "TimesheetExportController"
        ],
        "responses": {
          "200": {
            "description": "Finalized Timesheet export CSV",
            "content": {
              "text/csv; charset=utf-8": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "snapshotId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TimesheetExportController.downloadExport"
      }
    },
    "/timesheet-adjustments/exports": {
      "post": {
        "x-controller-name": "TimesheetExportController",
        "x-operation-name": "createExport",
        "tags": [
          "TimesheetExportController"
        ],
        "responses": {
          "200": {
            "description": "Created Timesheet export snapshot",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "snapshotId",
                    "hotelId",
                    "weekStart",
                    "weekEnd",
                    "exportedAt",
                    "actor",
                    "recordIds",
                    "dayRowIds",
                    "format",
                    "records"
                  ],
                  "properties": {
                    "snapshotId": {
                      "type": "string"
                    },
                    "hotelId": {
                      "type": "string"
                    },
                    "locationId": {
                      "type": "string"
                    },
                    "weekStart": {
                      "type": "string"
                    },
                    "weekEnd": {
                      "type": "string"
                    },
                    "exportedAt": {
                      "type": "string"
                    },
                    "actor": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    },
                    "recordIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "dayRowIds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "csv"
                      ]
                    },
                    "records": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "employee",
                          "department",
                          "job",
                          "status",
                          "approval",
                          "approvalHistory",
                          "settings",
                          "totals",
                          "dayRows"
                        ],
                        "properties": {
                          "workerWeekId": {
                            "type": "string"
                          },
                          "employee": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              }
                            },
                            "additionalProperties": false
                          },
                          "department": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              }
                            },
                            "additionalProperties": false
                          },
                          "job": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              }
                            },
                            "additionalProperties": false
                          },
                          "status": {
                            "type": "string"
                          },
                          "approvalState": {
                            "type": "string"
                          },
                          "approval": {
                            "type": "object",
                            "required": [
                              "approvedBy"
                            ],
                            "properties": {
                              "approvedAt": {
                                "type": "string"
                              },
                              "approvedBy": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string"
                                  },
                                  "name": {
                                    "type": "string"
                                  }
                                },
                                "additionalProperties": false
                              },
                              "approvalId": {
                                "type": "string"
                              },
                              "mode": {
                                "type": "string"
                              },
                              "reason": {
                                "type": "string"
                              }
                            },
                            "additionalProperties": false
                          },
                          "approvalHistory": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "actor"
                              ],
                              "properties": {
                                "approvalId": {
                                  "type": "string"
                                },
                                "action": {
                                  "type": "string"
                                },
                                "mode": {
                                  "type": "string"
                                },
                                "reason": {
                                  "type": "string"
                                },
                                "approvedAt": {
                                  "type": "string"
                                },
                                "actor": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "additionalProperties": false
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "settings": {
                            "type": "object",
                            "properties": {
                              "settingsId": {
                                "type": "string"
                              },
                              "settingsVersion": {
                                "type": "number"
                              }
                            },
                            "additionalProperties": false
                          },
                          "totals": {
                            "type": "object",
                            "required": [
                              "scheduledMinutes",
                              "actualMinutes",
                              "adjustmentMinutes",
                              "paidMinutes",
                              "unpaidBreakMinutes",
                              "overtimeMinutes"
                            ],
                            "properties": {
                              "scheduledMinutes": {
                                "type": "number"
                              },
                              "actualMinutes": {
                                "type": "number"
                              },
                              "adjustmentMinutes": {
                                "type": "number"
                              },
                              "paidMinutes": {
                                "type": "number"
                              },
                              "unpaidBreakMinutes": {
                                "type": "number"
                              },
                              "overtimeMinutes": {
                                "type": "number"
                              }
                            },
                            "additionalProperties": false
                          },
                          "dayRows": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "date",
                                "employee",
                                "department",
                                "job",
                                "scheduled",
                                "actual",
                                "adjustment",
                                "paid",
                                "settings",
                                "status",
                                "statusCodes",
                                "customStatuses",
                                "blockers",
                                "exceptions",
                                "comments",
                                "notesCount",
                                "adjustmentHistory",
                                "sourceChangedAfterApproval"
                              ],
                              "properties": {
                                "dayRowId": {
                                  "type": "string"
                                },
                                "workshiftId": {
                                  "type": "string"
                                },
                                "date": {
                                  "type": "string"
                                },
                                "employee": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "department": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "job": {
                                  "type": "object",
                                  "properties": {
                                    "id": {
                                      "type": "string"
                                    },
                                    "name": {
                                      "type": "string"
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "scheduled": {
                                  "type": "object",
                                  "properties": {
                                    "in": {
                                      "type": "string"
                                    },
                                    "out": {
                                      "type": "string"
                                    },
                                    "unpaidBreakMinutes": {
                                      "type": "number"
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "actual": {
                                  "type": "object",
                                  "properties": {
                                    "in": {
                                      "type": "string"
                                    },
                                    "out": {
                                      "type": "string"
                                    },
                                    "unpaidBreakMinutes": {
                                      "type": "number"
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "adjustment": {
                                  "type": "object",
                                  "properties": {
                                    "in": {
                                      "type": "string"
                                    },
                                    "out": {
                                      "type": "string"
                                    },
                                    "unpaidBreakMinutes": {
                                      "type": "number"
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "paid": {
                                  "type": "object",
                                  "properties": {
                                    "in": {
                                      "type": "string"
                                    },
                                    "out": {
                                      "type": "string"
                                    },
                                    "unpaidBreakMinutes": {
                                      "type": "number"
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "paidTotalMinutes": {
                                  "type": "number"
                                },
                                "paidComponents": {
                                  "type": "array",
                                  "items": {
                                    "$ref": "#/components/schemas/TimesheetPaidComponent"
                                  }
                                },
                                "publicHoliday": {
                                  "type": "object",
                                  "required": [
                                    "decisionId",
                                    "decisionRevision",
                                    "holidayDate",
                                    "treatmentDate",
                                    "holidayName",
                                    "legalEmployerId",
                                    "originatingPropertyId",
                                    "eligibilityStatus",
                                    "eligibilityBasis",
                                    "evidence",
                                    "payrollCategory",
                                    "workedMinutesOnHoliday",
                                    "enhancedNonStatutory",
                                    "decisionActor",
                                    "decisionTime",
                                    "decisionReason"
                                  ],
                                  "properties": {
                                    "decisionId": {
                                      "type": "string"
                                    },
                                    "decisionRevision": {
                                      "type": "number"
                                    },
                                    "holidayDate": {
                                      "type": "string"
                                    },
                                    "treatmentDate": {
                                      "type": "string"
                                    },
                                    "holidayName": {
                                      "type": "string"
                                    },
                                    "legalEmployerId": {
                                      "type": "string"
                                    },
                                    "originatingPropertyId": {
                                      "type": "string"
                                    },
                                    "eligibilityStatus": {
                                      "type": "string",
                                      "enum": [
                                        "eligible",
                                        "not_eligible",
                                        "needs_review"
                                      ]
                                    },
                                    "eligibilityBasis": {
                                      "type": "string"
                                    },
                                    "evidence": {
                                      "type": "object",
                                      "properties": {
                                        "periodStart": {
                                          "type": "string"
                                        },
                                        "periodEnd": {
                                          "type": "string"
                                        },
                                        "actualWorkedMinutes": {
                                          "type": "number"
                                        },
                                        "propertyIds": {
                                          "type": "array",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "complete": {
                                          "type": "boolean"
                                        },
                                        "scopeComplete": {
                                          "type": "boolean"
                                        },
                                        "employmentStatus": {
                                          "type": "string"
                                        },
                                        "possibleStatutoryExclusion": {
                                          "type": "string"
                                        },
                                        "alreadyPaidDayOff": {
                                          "type": "boolean"
                                        },
                                        "contractedNormalWeeklyPaidMinutes": {
                                          "type": "number"
                                        }
                                      },
                                      "additionalProperties": false
                                    },
                                    "selectedBenefit": {
                                      "type": "string",
                                      "enum": [
                                        "paid_day_off_on_holiday",
                                        "paid_day_off_within_one_month",
                                        "additional_annual_leave_day",
                                        "additional_day_pay"
                                      ]
                                    },
                                    "benefitDate": {
                                      "type": "string"
                                    },
                                    "entitlementId": {
                                      "type": "string"
                                    },
                                    "payrollCategory": {
                                      "type": "string",
                                      "enum": [
                                        "public_holiday_paid_day_off_on_holiday",
                                        "public_holiday_paid_day_off_within_one_month",
                                        "public_holiday_additional_annual_leave_day",
                                        "public_holiday_additional_day_pay",
                                        "public_holiday_worked_plus_separate_benefit",
                                        "public_holiday_enhanced_employer_benefit"
                                      ]
                                    },
                                    "referenceMinutes": {
                                      "type": "number"
                                    },
                                    "referenceType": {
                                      "type": "string",
                                      "enum": [
                                        "scheduled_net_minutes",
                                        "contracted_normal_weekly_paid_minutes_divided_by_five"
                                      ]
                                    },
                                    "workedMinutesOnHoliday": {
                                      "type": "number"
                                    },
                                    "enhancedNonStatutory": {
                                      "type": "boolean"
                                    },
                                    "decisionActor": {
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "type": "string"
                                        },
                                        "name": {
                                          "type": "string"
                                        }
                                      },
                                      "additionalProperties": false
                                    },
                                    "decisionTime": {
                                      "type": "string"
                                    },
                                    "decisionReason": {
                                      "type": "string"
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "paidSource": {
                                  "type": "string"
                                },
                                "recommendationId": {
                                  "type": "string"
                                },
                                "recommendation": {
                                  "type": "object",
                                  "additionalProperties": true
                                },
                                "settings": {
                                  "type": "object",
                                  "properties": {
                                    "settingsId": {
                                      "type": "string"
                                    },
                                    "settingsVersion": {
                                      "type": "number"
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "status": {
                                  "type": "string"
                                },
                                "approvalState": {
                                  "type": "string"
                                },
                                "statusCodes": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "customStatuses": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": true
                                  }
                                },
                                "blockers": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "exceptions": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "comments": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "notesCount": {
                                  "type": "number"
                                },
                                "lastAdjustmentId": {
                                  "type": "string"
                                },
                                "lastAdjustmentVersion": {
                                  "type": "number"
                                },
                                "adjustmentHistory": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "required": [
                                      "actor"
                                    ],
                                    "properties": {
                                      "adjustmentId": {
                                        "type": "string"
                                      },
                                      "version": {
                                        "type": "number"
                                      },
                                      "current": {
                                        "type": "boolean"
                                      },
                                      "comment": {
                                        "type": "string"
                                      },
                                      "actor": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "string"
                                          },
                                          "name": {
                                            "type": "string"
                                          }
                                        },
                                        "additionalProperties": false
                                      },
                                      "createdAt": {
                                        "type": "string"
                                      }
                                    },
                                    "additionalProperties": false
                                  }
                                },
                                "sourceChangedAfterApproval": {
                                  "type": "boolean"
                                }
                              },
                              "additionalProperties": false
                            }
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "downloadUrl": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotelId",
                  "weekStart",
                  "recordIds"
                ],
                "properties": {
                  "hotelId": {
                    "type": "string"
                  },
                  "locationId": {
                    "type": "string"
                  },
                  "weekStart": {
                    "type": "string"
                  },
                  "recordIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "csv"
                    ]
                  },
                  "clientMutationId": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "operationId": "TimesheetExportController.createExport"
      }
    },
    "/timesheet-adjustments/group-exports/validate": {
      "post": {
        "x-controller-name": "PayrollGroupExportController",
        "x-operation-name": "validateGroupExport",
        "tags": [
          "PayrollGroupExportController"
        ],
        "responses": {
          "200": {
            "description": "Payroll group export validation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupExportValidationResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "groupId",
                  "weekStart"
                ],
                "properties": {
                  "groupId": {
                    "type": "string"
                  },
                  "weekStart": {
                    "type": "string",
                    "format": "date"
                  },
                  "employeeIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "operationId": "PayrollGroupExportController.validateGroupExport"
      }
    },
    "/timesheet-adjustments/group-exports/{groupExportId}/download": {
      "get": {
        "x-controller-name": "PayrollGroupExportController",
        "x-operation-name": "downloadGroupExport",
        "tags": [
          "PayrollGroupExportController"
        ],
        "responses": {
          "200": {
            "description": "Immutable payroll group export CSV",
            "content": {
              "text/csv; charset=utf-8": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "groupExportId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "PayrollGroupExportController.downloadGroupExport"
      }
    },
    "/timesheet-adjustments/group-exports/{groupExportId}": {
      "get": {
        "x-controller-name": "PayrollGroupExportController",
        "x-operation-name": "getGroupExport",
        "tags": [
          "PayrollGroupExportController"
        ],
        "responses": {
          "200": {
            "description": "Immutable payroll group export metadata",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupExportMetadataResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "groupExportId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "PayrollGroupExportController.getGroupExport"
      }
    },
    "/timesheet-adjustments/group-exports": {
      "post": {
        "x-controller-name": "PayrollGroupExportController",
        "x-operation-name": "createGroupExport",
        "tags": [
          "PayrollGroupExportController"
        ],
        "responses": {
          "200": {
            "description": "Created payroll group export snapshot",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupExportMetadataResponse"
                }
              }
            }
          },
          "422": {
            "description": "Payroll group export exceeds the supported BSON capacity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupExportCapacityExceededErrorResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "groupId",
                  "weekStart",
                  "validationManifestHash",
                  "format",
                  "clientMutationId"
                ],
                "properties": {
                  "groupId": {
                    "type": "string"
                  },
                  "weekStart": {
                    "type": "string",
                    "format": "date"
                  },
                  "employeeIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "validationManifestHash": {
                    "type": "string"
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "csv"
                    ]
                  },
                  "clientMutationId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "operationId": "PayrollGroupExportController.createGroupExport"
      }
    },
    "/timesheet-adjustments/payroll-groups/{groupId}/memberships": {
      "put": {
        "x-controller-name": "PayrollGroupController",
        "x-operation-name": "replaceMemberships",
        "tags": [
          "PayrollGroupController"
        ],
        "responses": {
          "200": {
            "description": "Replaced payroll group memberships",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "id",
                    "name",
                    "timezoneArea",
                    "weekStartDay",
                    "active",
                    "revision",
                    "memberships"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "timezoneArea": {
                      "type": "string"
                    },
                    "weekStartDay": {
                      "type": "integer"
                    },
                    "active": {
                      "type": "boolean"
                    },
                    "revision": {
                      "type": "integer"
                    },
                    "memberships": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "hotelId",
                          "hotelName",
                          "revision"
                        ],
                        "properties": {
                          "hotelId": {
                            "type": "string"
                          },
                          "hotelName": {
                            "type": "string"
                          },
                          "revision": {
                            "type": "integer"
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "expectedRevision",
                  "hotelIds",
                  "clientMutationId"
                ],
                "properties": {
                  "expectedRevision": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "hotelIds": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "string"
                    }
                  },
                  "clientMutationId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "PayrollGroupController.replaceMemberships"
      }
    },
    "/timesheet-adjustments/payroll-groups/{groupId}": {
      "patch": {
        "x-controller-name": "PayrollGroupController",
        "x-operation-name": "updateGroup",
        "tags": [
          "PayrollGroupController"
        ],
        "responses": {
          "200": {
            "description": "Updated payroll group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "id",
                    "name",
                    "timezoneArea",
                    "weekStartDay",
                    "active",
                    "revision",
                    "memberships"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "timezoneArea": {
                      "type": "string"
                    },
                    "weekStartDay": {
                      "type": "integer"
                    },
                    "active": {
                      "type": "boolean"
                    },
                    "revision": {
                      "type": "integer"
                    },
                    "memberships": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "hotelId",
                          "hotelName",
                          "revision"
                        ],
                        "properties": {
                          "hotelId": {
                            "type": "string"
                          },
                          "hotelName": {
                            "type": "string"
                          },
                          "revision": {
                            "type": "integer"
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "expectedRevision",
                  "name",
                  "timezoneArea",
                  "weekStartDay",
                  "active",
                  "clientMutationId"
                ],
                "properties": {
                  "expectedRevision": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "name": {
                    "type": "string"
                  },
                  "timezoneArea": {
                    "type": "string"
                  },
                  "weekStartDay": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 7
                  },
                  "active": {
                    "type": "boolean"
                  },
                  "clientMutationId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "PayrollGroupController.updateGroup"
      }
    },
    "/timesheet-adjustments/payroll-groups": {
      "post": {
        "x-controller-name": "PayrollGroupController",
        "x-operation-name": "createGroup",
        "tags": [
          "PayrollGroupController"
        ],
        "responses": {
          "200": {
            "description": "Created payroll group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "id",
                    "name",
                    "timezoneArea",
                    "weekStartDay",
                    "active",
                    "revision",
                    "memberships"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "timezoneArea": {
                      "type": "string"
                    },
                    "weekStartDay": {
                      "type": "integer"
                    },
                    "active": {
                      "type": "boolean"
                    },
                    "revision": {
                      "type": "integer"
                    },
                    "memberships": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "hotelId",
                          "hotelName",
                          "revision"
                        ],
                        "properties": {
                          "hotelId": {
                            "type": "string"
                          },
                          "hotelName": {
                            "type": "string"
                          },
                          "revision": {
                            "type": "integer"
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "initialHotelIds",
                  "name",
                  "timezoneArea",
                  "weekStartDay",
                  "clientMutationId"
                ],
                "properties": {
                  "initialHotelIds": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "string"
                    }
                  },
                  "name": {
                    "type": "string"
                  },
                  "timezoneArea": {
                    "type": "string"
                  },
                  "weekStartDay": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 7
                  },
                  "clientMutationId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "operationId": "PayrollGroupController.createGroup"
      },
      "get": {
        "x-controller-name": "PayrollGroupController",
        "x-operation-name": "listGroups",
        "tags": [
          "PayrollGroupController"
        ],
        "responses": {
          "200": {
            "description": "Authorized payroll groups",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "items",
                    "total",
                    "skip",
                    "limit"
                  ],
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "id",
                          "name",
                          "timezoneArea",
                          "weekStartDay",
                          "active",
                          "revision",
                          "memberships"
                        ],
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "timezoneArea": {
                            "type": "string"
                          },
                          "weekStartDay": {
                            "type": "integer"
                          },
                          "active": {
                            "type": "boolean"
                          },
                          "revision": {
                            "type": "integer"
                          },
                          "memberships": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "hotelId",
                                "hotelName",
                                "revision"
                              ],
                              "properties": {
                                "hotelId": {
                                  "type": "string"
                                },
                                "hotelName": {
                                  "type": "string"
                                },
                                "revision": {
                                  "type": "integer"
                                }
                              },
                              "additionalProperties": false
                            }
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "total": {
                      "type": "integer"
                    },
                    "skip": {
                      "type": "integer"
                    },
                    "limit": {
                      "type": "integer"
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "PayrollGroupController.listGroups"
      }
    },
    "/timesheet-adjustments/public-holidays/calendar": {
      "get": {
        "x-controller-name": "PublicHolidayController",
        "x-operation-name": "listCalendar",
        "tags": [
          "PublicHolidayController"
        ],
        "responses": {
          "200": {
            "description": "Configured Irish public-holiday calendar",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicHolidayCalendarResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "year",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "PublicHolidayController.listCalendar"
      }
    },
    "/timesheet-adjustments/public-holidays/decisions/evaluate": {
      "post": {
        "x-controller-name": "PublicHolidayController",
        "x-operation-name": "evaluate",
        "tags": [
          "PublicHolidayController"
        ],
        "responses": {
          "200": {
            "description": "Audited public-holiday eligibility recommendation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotelId",
                  "employeeId",
                  "holidayDate",
                  "employmentStatus",
                  "historyComplete",
                  "possibleStatutoryExclusion",
                  "alreadyPaidDayOff",
                  "reason"
                ],
                "properties": {
                  "hotelId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "locationId": {
                    "type": "string"
                  },
                  "employeeId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "holidayDate": {
                    "type": "string",
                    "format": "date"
                  },
                  "employmentStatus": {
                    "type": "string",
                    "enum": [
                      "whole_time",
                      "not_whole_time",
                      "unknown"
                    ]
                  },
                  "historyComplete": {
                    "type": "boolean"
                  },
                  "possibleStatutoryExclusion": {
                    "type": "string",
                    "enum": [
                      "none",
                      "possible",
                      "unknown"
                    ]
                  },
                  "alreadyPaidDayOff": {
                    "type": "boolean"
                  },
                  "contractedNormalWeeklyPaidMinutes": {
                    "type": "number",
                    "minimum": 0
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1
                  },
                  "clientMutationId": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "operationId": "PublicHolidayController.evaluate"
      }
    },
    "/timesheet-adjustments/public-holidays/decisions/{decisionId}/activity": {
      "get": {
        "x-controller-name": "PublicHolidayController",
        "x-operation-name": "listActivity",
        "tags": [
          "PublicHolidayController"
        ],
        "responses": {
          "200": {
            "description": "Public-holiday decision and entitlement activity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicHolidayActivityResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "decisionId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "PublicHolidayController.listActivity"
      }
    },
    "/timesheet-adjustments/public-holidays/decisions/{decisionId}/confirm": {
      "post": {
        "x-controller-name": "PublicHolidayController",
        "x-operation-name": "confirm",
        "tags": [
          "PublicHolidayController"
        ],
        "responses": {
          "200": {
            "description": "Confirmed or overridden public-holiday decision",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "decisionId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotelId",
                  "reason"
                ],
                "properties": {
                  "hotelId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "locationId": {
                    "type": "string"
                  },
                  "selectedBenefit": {
                    "type": "string",
                    "enum": [
                      "paid_day_off_on_holiday",
                      "paid_day_off_within_one_month",
                      "additional_annual_leave_day",
                      "additional_day_pay"
                    ]
                  },
                  "enhancedEmployerBenefit": {
                    "type": "boolean"
                  },
                  "overrideEligibility": {
                    "type": "boolean"
                  },
                  "benefitDate": {
                    "type": "string",
                    "format": "date"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1
                  },
                  "clientMutationId": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "PublicHolidayController.confirm"
      }
    },
    "/timesheet-adjustments/public-holidays/entitlements/{entitlementId}/consume": {
      "post": {
        "x-controller-name": "PublicHolidayController",
        "x-operation-name": "consumeEntitlement",
        "tags": [
          "PublicHolidayController"
        ],
        "responses": {
          "200": {
            "description": "Consumed linked public-holiday entitlement",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicHolidayEntitlementConsumptionResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entitlementId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotelId",
                  "benefitDate",
                  "reason"
                ],
                "properties": {
                  "hotelId": {
                    "type": "string",
                    "minLength": 1
                  },
                  "locationId": {
                    "type": "string"
                  },
                  "benefitDate": {
                    "type": "string",
                    "format": "date"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 1
                  },
                  "clientMutationId": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "PublicHolidayController.consumeEntitlement"
      }
    },
    "/timesheet-adjustments/recommendations/refresh": {
      "post": {
        "x-controller-name": "TimesheetRecommendationController",
        "x-operation-name": "refreshRecommendations",
        "tags": [
          "TimesheetRecommendationController"
        ],
        "responses": {
          "200": {
            "description": "Timesheet recommendation refresh summary",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "refreshId",
                    "hotelId",
                    "weekStart",
                    "settingsId",
                    "settingsVersion",
                    "counts"
                  ],
                  "properties": {
                    "refreshId": {
                      "type": "string"
                    },
                    "hotelId": {
                      "type": "string"
                    },
                    "locationId": {
                      "type": "string"
                    },
                    "weekStart": {
                      "type": "string"
                    },
                    "settingsId": {
                      "type": "string"
                    },
                    "settingsVersion": {
                      "type": "number"
                    },
                    "counts": {
                      "type": "object",
                      "required": [
                        "recalculated",
                        "updated",
                        "skippedManualAdjustment",
                        "skippedApprovedOrExported",
                        "blocked",
                        "unchanged"
                      ],
                      "properties": {
                        "recalculated": {
                          "type": "number"
                        },
                        "updated": {
                          "type": "number"
                        },
                        "skippedManualAdjustment": {
                          "type": "number"
                        },
                        "skippedApprovedOrExported": {
                          "type": "number"
                        },
                        "blocked": {
                          "type": "number"
                        },
                        "unchanged": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotelId",
                  "weekStart",
                  "reason"
                ],
                "properties": {
                  "hotelId": {
                    "type": "string"
                  },
                  "locationId": {
                    "type": "string"
                  },
                  "weekStart": {
                    "type": "string"
                  },
                  "reason": {
                    "type": "string"
                  },
                  "clientMutationId": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "TimesheetRecommendationController.refreshRecommendations"
      }
    },
    "/timesheet-adjustments/settings/activity": {
      "get": {
        "x-controller-name": "TimesheetSettingsController",
        "x-operation-name": "listActivity",
        "tags": [
          "TimesheetSettingsController"
        ],
        "responses": {
          "200": {
            "description": "Timesheet Settings activity events",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "events"
                  ],
                  "properties": {
                    "events": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TimesheetSettingsController.listActivity"
      }
    },
    "/timesheet-adjustments/settings": {
      "put": {
        "x-controller-name": "TimesheetSettingsController",
        "x-operation-name": "updateSettings",
        "tags": [
          "TimesheetSettingsController"
        ],
        "responses": {
          "200": {
            "description": "Updated active hotel Timesheet Settings profile",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "settingsId",
                    "hotelId",
                    "version",
                    "status"
                  ],
                  "properties": {
                    "settingsId": {
                      "type": "string"
                    },
                    "hotelId": {
                      "type": "string"
                    },
                    "version": {
                      "type": "number"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "active"
                      ]
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "updatedBy": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        }
                      }
                    },
                    "paidRecommendationDefault": {
                      "type": "string",
                      "enum": [
                        "prefer_scheduled",
                        "prefer_actual",
                        "require_review_when_actual_differs"
                      ]
                    },
                    "clockVariance": {
                      "type": "object",
                      "required": [
                        "earlyClockIn",
                        "lateClockIn",
                        "earlyClockOut",
                        "lateClockOut"
                      ],
                      "properties": {
                        "earlyClockIn": {
                          "type": "object",
                          "required": [
                            "graceMinutes",
                            "behavior",
                            "requireCommentBeyondMinutes"
                          ],
                          "properties": {
                            "graceMinutes": {
                              "type": "number"
                            },
                            "behavior": {
                              "type": "string",
                              "enum": [
                                "round_to_schedule",
                                "keep_actual",
                                "require_review",
                                "round_to_schedule_or_overtime"
                              ]
                            },
                            "requireCommentBeyondMinutes": {
                              "type": "number"
                            }
                          }
                        },
                        "lateClockIn": {
                          "type": "object",
                          "required": [
                            "graceMinutes",
                            "behavior",
                            "requireCommentBeyondMinutes"
                          ],
                          "properties": {
                            "graceMinutes": {
                              "type": "number"
                            },
                            "behavior": {
                              "type": "string",
                              "enum": [
                                "round_to_schedule",
                                "keep_actual",
                                "require_review",
                                "round_to_schedule_or_overtime"
                              ]
                            },
                            "requireCommentBeyondMinutes": {
                              "type": "number"
                            }
                          }
                        },
                        "earlyClockOut": {
                          "type": "object",
                          "required": [
                            "graceMinutes",
                            "behavior",
                            "requireCommentBeyondMinutes"
                          ],
                          "properties": {
                            "graceMinutes": {
                              "type": "number"
                            },
                            "behavior": {
                              "type": "string",
                              "enum": [
                                "round_to_schedule",
                                "keep_actual",
                                "require_review",
                                "round_to_schedule_or_overtime"
                              ]
                            },
                            "requireCommentBeyondMinutes": {
                              "type": "number"
                            }
                          }
                        },
                        "lateClockOut": {
                          "type": "object",
                          "required": [
                            "graceMinutes",
                            "behavior",
                            "requireCommentBeyondMinutes"
                          ],
                          "properties": {
                            "graceMinutes": {
                              "type": "number"
                            },
                            "behavior": {
                              "type": "string",
                              "enum": [
                                "round_to_schedule",
                                "keep_actual",
                                "require_review",
                                "round_to_schedule_or_overtime"
                              ]
                            },
                            "requireCommentBeyondMinutes": {
                              "type": "number"
                            }
                          }
                        }
                      }
                    },
                    "breaks": {
                      "type": "object",
                      "required": [
                        "defaultUnpaidBreakMinutes",
                        "appliesOnlyWhenScheduled",
                        "missingBreakBehavior",
                        "maxEditableUnpaidBreakMinutes"
                      ],
                      "properties": {
                        "defaultUnpaidBreakMinutes": {
                          "type": "number"
                        },
                        "appliesOnlyWhenScheduled": {
                          "type": "boolean"
                        },
                        "missingBreakBehavior": {
                          "type": "string",
                          "enum": [
                            "require_review",
                            "block_until_resolved",
                            "apply_default_unpaid_break"
                          ]
                        },
                        "maxEditableUnpaidBreakMinutes": {
                          "type": "number"
                        }
                      }
                    },
                    "exceptions": {
                      "type": "object",
                      "required": [
                        "missingPunchBehavior",
                        "missingTimecardBehavior",
                        "noShowBehavior",
                        "notScheduledBehavior",
                        "overtimeBehavior"
                      ],
                      "properties": {
                        "missingPunchBehavior": {
                          "type": "string",
                          "enum": [
                            "block_until_resolved",
                            "allow_manager_resolution",
                            "approver_override_required"
                          ]
                        },
                        "missingTimecardBehavior": {
                          "type": "string",
                          "enum": [
                            "hotel_configured_review_policy",
                            "block_until_resolved",
                            "allow_manager_resolution",
                            "approver_override_required"
                          ]
                        },
                        "noShowBehavior": {
                          "type": "string",
                          "enum": [
                            "flag_for_review",
                            "block_until_resolved",
                            "zero_paid_requires_comment",
                            "allow_manager_resolution"
                          ]
                        },
                        "notScheduledBehavior": {
                          "type": "string",
                          "enum": [
                            "flag_for_review",
                            "block_until_resolved",
                            "zero_paid_requires_comment",
                            "allow_manager_resolution"
                          ]
                        },
                        "overtimeBehavior": {
                          "type": "string",
                          "enum": [
                            "require_tag_and_comment",
                            "require_review",
                            "allow_with_comment"
                          ]
                        }
                      }
                    },
                    "commentsAndAudit": {
                      "type": "object",
                      "required": [
                        "changeReasonRequired",
                        "adjustmentCommentRequiredWhenPaidDiffers",
                        "refreshReasonRequired"
                      ],
                      "properties": {
                        "changeReasonRequired": {
                          "type": "boolean"
                        },
                        "adjustmentCommentRequiredWhenPaidDiffers": {
                          "type": "boolean"
                        },
                        "refreshReasonRequired": {
                          "type": "boolean"
                        }
                      }
                    },
                    "approval": {
                      "type": "object",
                      "required": [
                        "normalApprovalRequiresReady",
                        "overrideAllowed",
                        "overrideReasonRequired"
                      ],
                      "properties": {
                        "normalApprovalRequiresReady": {
                          "type": "boolean"
                        },
                        "overrideAllowed": {
                          "type": "boolean"
                        },
                        "overrideReasonRequired": {
                          "type": "boolean"
                        }
                      }
                    },
                    "reopen": {
                      "type": "object",
                      "required": [
                        "reopenReasonRequired"
                      ],
                      "properties": {
                        "reopenReasonRequired": {
                          "type": "boolean"
                        }
                      }
                    },
                    "refresh": {
                      "type": "object",
                      "required": [
                        "preserveManualAdjustedPaid",
                        "skipApprovedAndExported"
                      ],
                      "properties": {
                        "preserveManualAdjustedPaid": {
                          "type": "boolean"
                        },
                        "skipApprovedAndExported": {
                          "type": "boolean"
                        }
                      }
                    },
                    "publicHolidays": {
                      "type": "object",
                      "required": [
                        "enabled",
                        "timezone",
                        "legalEmployerId",
                        "calendarOverrides"
                      ],
                      "properties": {
                        "enabled": {
                          "type": "boolean"
                        },
                        "timezone": {
                          "type": "string",
                          "enum": [
                            "Europe/Dublin"
                          ]
                        },
                        "legalEmployerId": {
                          "type": "string"
                        },
                        "calendarOverrides": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "date",
                              "name",
                              "enabled"
                            ],
                            "properties": {
                              "date": {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                              },
                              "name": {
                                "type": "string"
                              },
                              "enabled": {
                                "type": "boolean"
                              }
                            },
                            "additionalProperties": false
                          }
                        }
                      },
                      "additionalProperties": false
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "hotelId",
                  "settings",
                  "changeReason"
                ],
                "properties": {
                  "hotelId": {
                    "type": "string"
                  },
                  "settings": {
                    "type": "object",
                    "properties": {
                      "paidRecommendationDefault": {
                        "type": "string",
                        "enum": [
                          "prefer_scheduled",
                          "prefer_actual",
                          "require_review_when_actual_differs"
                        ]
                      },
                      "clockVariance": {
                        "type": "object",
                        "required": [
                          "earlyClockIn",
                          "lateClockIn",
                          "earlyClockOut",
                          "lateClockOut"
                        ],
                        "properties": {
                          "earlyClockIn": {
                            "type": "object",
                            "required": [
                              "graceMinutes",
                              "behavior",
                              "requireCommentBeyondMinutes"
                            ],
                            "properties": {
                              "graceMinutes": {
                                "type": "number"
                              },
                              "behavior": {
                                "type": "string",
                                "enum": [
                                  "round_to_schedule",
                                  "keep_actual",
                                  "require_review",
                                  "round_to_schedule_or_overtime"
                                ]
                              },
                              "requireCommentBeyondMinutes": {
                                "type": "number"
                              }
                            }
                          },
                          "lateClockIn": {
                            "type": "object",
                            "required": [
                              "graceMinutes",
                              "behavior",
                              "requireCommentBeyondMinutes"
                            ],
                            "properties": {
                              "graceMinutes": {
                                "type": "number"
                              },
                              "behavior": {
                                "type": "string",
                                "enum": [
                                  "round_to_schedule",
                                  "keep_actual",
                                  "require_review",
                                  "round_to_schedule_or_overtime"
                                ]
                              },
                              "requireCommentBeyondMinutes": {
                                "type": "number"
                              }
                            }
                          },
                          "earlyClockOut": {
                            "type": "object",
                            "required": [
                              "graceMinutes",
                              "behavior",
                              "requireCommentBeyondMinutes"
                            ],
                            "properties": {
                              "graceMinutes": {
                                "type": "number"
                              },
                              "behavior": {
                                "type": "string",
                                "enum": [
                                  "round_to_schedule",
                                  "keep_actual",
                                  "require_review",
                                  "round_to_schedule_or_overtime"
                                ]
                              },
                              "requireCommentBeyondMinutes": {
                                "type": "number"
                              }
                            }
                          },
                          "lateClockOut": {
                            "type": "object",
                            "required": [
                              "graceMinutes",
                              "behavior",
                              "requireCommentBeyondMinutes"
                            ],
                            "properties": {
                              "graceMinutes": {
                                "type": "number"
                              },
                              "behavior": {
                                "type": "string",
                                "enum": [
                                  "round_to_schedule",
                                  "keep_actual",
                                  "require_review",
                                  "round_to_schedule_or_overtime"
                                ]
                              },
                              "requireCommentBeyondMinutes": {
                                "type": "number"
                              }
                            }
                          }
                        }
                      },
                      "breaks": {
                        "type": "object",
                        "required": [
                          "defaultUnpaidBreakMinutes",
                          "appliesOnlyWhenScheduled",
                          "missingBreakBehavior",
                          "maxEditableUnpaidBreakMinutes"
                        ],
                        "properties": {
                          "defaultUnpaidBreakMinutes": {
                            "type": "number"
                          },
                          "appliesOnlyWhenScheduled": {
                            "type": "boolean"
                          },
                          "missingBreakBehavior": {
                            "type": "string",
                            "enum": [
                              "require_review",
                              "block_until_resolved",
                              "apply_default_unpaid_break"
                            ]
                          },
                          "maxEditableUnpaidBreakMinutes": {
                            "type": "number"
                          }
                        }
                      },
                      "exceptions": {
                        "type": "object",
                        "required": [
                          "missingPunchBehavior",
                          "missingTimecardBehavior",
                          "noShowBehavior",
                          "notScheduledBehavior",
                          "overtimeBehavior"
                        ],
                        "properties": {
                          "missingPunchBehavior": {
                            "type": "string",
                            "enum": [
                              "block_until_resolved",
                              "allow_manager_resolution",
                              "approver_override_required"
                            ]
                          },
                          "missingTimecardBehavior": {
                            "type": "string",
                            "enum": [
                              "hotel_configured_review_policy",
                              "block_until_resolved",
                              "allow_manager_resolution",
                              "approver_override_required"
                            ]
                          },
                          "noShowBehavior": {
                            "type": "string",
                            "enum": [
                              "flag_for_review",
                              "block_until_resolved",
                              "zero_paid_requires_comment",
                              "allow_manager_resolution"
                            ]
                          },
                          "notScheduledBehavior": {
                            "type": "string",
                            "enum": [
                              "flag_for_review",
                              "block_until_resolved",
                              "zero_paid_requires_comment",
                              "allow_manager_resolution"
                            ]
                          },
                          "overtimeBehavior": {
                            "type": "string",
                            "enum": [
                              "require_tag_and_comment",
                              "require_review",
                              "allow_with_comment"
                            ]
                          }
                        }
                      },
                      "commentsAndAudit": {
                        "type": "object",
                        "required": [
                          "changeReasonRequired",
                          "adjustmentCommentRequiredWhenPaidDiffers",
                          "refreshReasonRequired"
                        ],
                        "properties": {
                          "changeReasonRequired": {
                            "type": "boolean"
                          },
                          "adjustmentCommentRequiredWhenPaidDiffers": {
                            "type": "boolean"
                          },
                          "refreshReasonRequired": {
                            "type": "boolean"
                          }
                        }
                      },
                      "approval": {
                        "type": "object",
                        "required": [
                          "normalApprovalRequiresReady",
                          "overrideAllowed",
                          "overrideReasonRequired"
                        ],
                        "properties": {
                          "normalApprovalRequiresReady": {
                            "type": "boolean"
                          },
                          "overrideAllowed": {
                            "type": "boolean"
                          },
                          "overrideReasonRequired": {
                            "type": "boolean"
                          }
                        }
                      },
                      "reopen": {
                        "type": "object",
                        "required": [
                          "reopenReasonRequired"
                        ],
                        "properties": {
                          "reopenReasonRequired": {
                            "type": "boolean"
                          }
                        }
                      },
                      "refresh": {
                        "type": "object",
                        "required": [
                          "preserveManualAdjustedPaid",
                          "skipApprovedAndExported"
                        ],
                        "properties": {
                          "preserveManualAdjustedPaid": {
                            "type": "boolean"
                          },
                          "skipApprovedAndExported": {
                            "type": "boolean"
                          }
                        }
                      },
                      "publicHolidays": {
                        "type": "object",
                        "required": [
                          "enabled",
                          "timezone",
                          "legalEmployerId",
                          "calendarOverrides"
                        ],
                        "properties": {
                          "enabled": {
                            "type": "boolean"
                          },
                          "timezone": {
                            "type": "string",
                            "enum": [
                              "Europe/Dublin"
                            ]
                          },
                          "legalEmployerId": {
                            "type": "string"
                          },
                          "calendarOverrides": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "date",
                                "name",
                                "enabled"
                              ],
                              "properties": {
                                "date": {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                                },
                                "name": {
                                  "type": "string"
                                },
                                "enabled": {
                                  "type": "boolean"
                                }
                              },
                              "additionalProperties": false
                            }
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  },
                  "changeReason": {
                    "type": "string"
                  },
                  "clientMutationId": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "TimesheetSettingsController.updateSettings"
      },
      "get": {
        "x-controller-name": "TimesheetSettingsController",
        "x-operation-name": "getSettings",
        "tags": [
          "TimesheetSettingsController"
        ],
        "responses": {
          "200": {
            "description": "Active hotel Timesheet Settings profile",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "settingsId",
                    "hotelId",
                    "version",
                    "status"
                  ],
                  "properties": {
                    "settingsId": {
                      "type": "string"
                    },
                    "hotelId": {
                      "type": "string"
                    },
                    "version": {
                      "type": "number"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "active"
                      ]
                    },
                    "createdAt": {
                      "type": "string"
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "updatedBy": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        }
                      }
                    },
                    "paidRecommendationDefault": {
                      "type": "string",
                      "enum": [
                        "prefer_scheduled",
                        "prefer_actual",
                        "require_review_when_actual_differs"
                      ]
                    },
                    "clockVariance": {
                      "type": "object",
                      "required": [
                        "earlyClockIn",
                        "lateClockIn",
                        "earlyClockOut",
                        "lateClockOut"
                      ],
                      "properties": {
                        "earlyClockIn": {
                          "type": "object",
                          "required": [
                            "graceMinutes",
                            "behavior",
                            "requireCommentBeyondMinutes"
                          ],
                          "properties": {
                            "graceMinutes": {
                              "type": "number"
                            },
                            "behavior": {
                              "type": "string",
                              "enum": [
                                "round_to_schedule",
                                "keep_actual",
                                "require_review",
                                "round_to_schedule_or_overtime"
                              ]
                            },
                            "requireCommentBeyondMinutes": {
                              "type": "number"
                            }
                          }
                        },
                        "lateClockIn": {
                          "type": "object",
                          "required": [
                            "graceMinutes",
                            "behavior",
                            "requireCommentBeyondMinutes"
                          ],
                          "properties": {
                            "graceMinutes": {
                              "type": "number"
                            },
                            "behavior": {
                              "type": "string",
                              "enum": [
                                "round_to_schedule",
                                "keep_actual",
                                "require_review",
                                "round_to_schedule_or_overtime"
                              ]
                            },
                            "requireCommentBeyondMinutes": {
                              "type": "number"
                            }
                          }
                        },
                        "earlyClockOut": {
                          "type": "object",
                          "required": [
                            "graceMinutes",
                            "behavior",
                            "requireCommentBeyondMinutes"
                          ],
                          "properties": {
                            "graceMinutes": {
                              "type": "number"
                            },
                            "behavior": {
                              "type": "string",
                              "enum": [
                                "round_to_schedule",
                                "keep_actual",
                                "require_review",
                                "round_to_schedule_or_overtime"
                              ]
                            },
                            "requireCommentBeyondMinutes": {
                              "type": "number"
                            }
                          }
                        },
                        "lateClockOut": {
                          "type": "object",
                          "required": [
                            "graceMinutes",
                            "behavior",
                            "requireCommentBeyondMinutes"
                          ],
                          "properties": {
                            "graceMinutes": {
                              "type": "number"
                            },
                            "behavior": {
                              "type": "string",
                              "enum": [
                                "round_to_schedule",
                                "keep_actual",
                                "require_review",
                                "round_to_schedule_or_overtime"
                              ]
                            },
                            "requireCommentBeyondMinutes": {
                              "type": "number"
                            }
                          }
                        }
                      }
                    },
                    "breaks": {
                      "type": "object",
                      "required": [
                        "defaultUnpaidBreakMinutes",
                        "appliesOnlyWhenScheduled",
                        "missingBreakBehavior",
                        "maxEditableUnpaidBreakMinutes"
                      ],
                      "properties": {
                        "defaultUnpaidBreakMinutes": {
                          "type": "number"
                        },
                        "appliesOnlyWhenScheduled": {
                          "type": "boolean"
                        },
                        "missingBreakBehavior": {
                          "type": "string",
                          "enum": [
                            "require_review",
                            "block_until_resolved",
                            "apply_default_unpaid_break"
                          ]
                        },
                        "maxEditableUnpaidBreakMinutes": {
                          "type": "number"
                        }
                      }
                    },
                    "exceptions": {
                      "type": "object",
                      "required": [
                        "missingPunchBehavior",
                        "missingTimecardBehavior",
                        "noShowBehavior",
                        "notScheduledBehavior",
                        "overtimeBehavior"
                      ],
                      "properties": {
                        "missingPunchBehavior": {
                          "type": "string",
                          "enum": [
                            "block_until_resolved",
                            "allow_manager_resolution",
                            "approver_override_required"
                          ]
                        },
                        "missingTimecardBehavior": {
                          "type": "string",
                          "enum": [
                            "hotel_configured_review_policy",
                            "block_until_resolved",
                            "allow_manager_resolution",
                            "approver_override_required"
                          ]
                        },
                        "noShowBehavior": {
                          "type": "string",
                          "enum": [
                            "flag_for_review",
                            "block_until_resolved",
                            "zero_paid_requires_comment",
                            "allow_manager_resolution"
                          ]
                        },
                        "notScheduledBehavior": {
                          "type": "string",
                          "enum": [
                            "flag_for_review",
                            "block_until_resolved",
                            "zero_paid_requires_comment",
                            "allow_manager_resolution"
                          ]
                        },
                        "overtimeBehavior": {
                          "type": "string",
                          "enum": [
                            "require_tag_and_comment",
                            "require_review",
                            "allow_with_comment"
                          ]
                        }
                      }
                    },
                    "commentsAndAudit": {
                      "type": "object",
                      "required": [
                        "changeReasonRequired",
                        "adjustmentCommentRequiredWhenPaidDiffers",
                        "refreshReasonRequired"
                      ],
                      "properties": {
                        "changeReasonRequired": {
                          "type": "boolean"
                        },
                        "adjustmentCommentRequiredWhenPaidDiffers": {
                          "type": "boolean"
                        },
                        "refreshReasonRequired": {
                          "type": "boolean"
                        }
                      }
                    },
                    "approval": {
                      "type": "object",
                      "required": [
                        "normalApprovalRequiresReady",
                        "overrideAllowed",
                        "overrideReasonRequired"
                      ],
                      "properties": {
                        "normalApprovalRequiresReady": {
                          "type": "boolean"
                        },
                        "overrideAllowed": {
                          "type": "boolean"
                        },
                        "overrideReasonRequired": {
                          "type": "boolean"
                        }
                      }
                    },
                    "reopen": {
                      "type": "object",
                      "required": [
                        "reopenReasonRequired"
                      ],
                      "properties": {
                        "reopenReasonRequired": {
                          "type": "boolean"
                        }
                      }
                    },
                    "refresh": {
                      "type": "object",
                      "required": [
                        "preserveManualAdjustedPaid",
                        "skipApprovedAndExported"
                      ],
                      "properties": {
                        "preserveManualAdjustedPaid": {
                          "type": "boolean"
                        },
                        "skipApprovedAndExported": {
                          "type": "boolean"
                        }
                      }
                    },
                    "publicHolidays": {
                      "type": "object",
                      "required": [
                        "enabled",
                        "timezone",
                        "legalEmployerId",
                        "calendarOverrides"
                      ],
                      "properties": {
                        "enabled": {
                          "type": "boolean"
                        },
                        "timezone": {
                          "type": "string",
                          "enum": [
                            "Europe/Dublin"
                          ]
                        },
                        "legalEmployerId": {
                          "type": "string"
                        },
                        "calendarOverrides": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "date",
                              "name",
                              "enabled"
                            ],
                            "properties": {
                              "date": {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                              },
                              "name": {
                                "type": "string"
                              },
                              "enabled": {
                                "type": "boolean"
                              }
                            },
                            "additionalProperties": false
                          }
                        }
                      },
                      "additionalProperties": false
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TimesheetSettingsController.getSettings"
      }
    },
    "/timesheet-adjustments/weeks": {
      "get": {
        "x-controller-name": "TimesheetReviewController",
        "x-operation-name": "getWeeklyReview",
        "tags": [
          "TimesheetReviewController"
        ],
        "responses": {
          "200": {
            "description": "Timesheet weekly review batch",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimesheetWeeklyReviewResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "locationId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "weekStart",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "departmentId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "roleId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "activityId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workerId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customStatus",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exception",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "approvalState",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateFrom",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateTo",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "TimesheetReviewController.getWeeklyReview"
      }
    },
    "/ukg/fetchScheduleByHotelId/{hotelId}": {
      "get": {
        "x-controller-name": "UKGController",
        "x-operation-name": "fetchScheduleByHotelId",
        "tags": [
          "UKGController"
        ],
        "responses": {
          "200": {
            "description": "Get Authentication Token For UKG",
            "content": {}
          }
        },
        "parameters": [
          {
            "name": "hotelId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UKGController.fetchScheduleByHotelId"
      }
    },
    "/unSetDND/{room_id}/{type}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "unSetDND",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Unset Room DND",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "room_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "type",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.unSetDND"
      }
    },
    "/unSetOOO/{room_id}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "unSetOOO",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Unset Room OOO",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "room_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.unSetOOO"
      }
    },
    "/unSetRS/{room_id}/{type}": {
      "get": {
        "x-controller-name": "RoomsController",
        "x-operation-name": "unSetRS",
        "tags": [
          "RoomsController"
        ],
        "responses": {
          "200": {
            "description": "Unset Room RS",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "room_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "type",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RoomsController.unSetRS"
      }
    },
    "/updateChecklist": {
      "post": {
        "x-controller-name": "ChecklistController",
        "x-operation-name": "updateChecklist",
        "tags": [
          "ChecklistController"
        ],
        "responses": {
          "200": {
            "description": "Project model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Checklist"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "role": {
                    "type": "string"
                  },
                  "shiftType": {
                    "type": "string"
                  },
                  "resetTime": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "ChecklistController.updateChecklist"
      }
    },
    "/updateChecklistItemPositions": {
      "post": {
        "x-controller-name": "ChecklistItemsController",
        "x-operation-name": "updateChecklistItemPositions",
        "tags": [
          "ChecklistItemsController"
        ],
        "responses": {
          "200": {
            "description": "ChecklistItems model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChecklistItems"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "checklistItems": {
                    "type": "array",
                    "items": {
                      "properties": {
                        "key": {
                          "type": "string"
                        },
                        "index": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "ChecklistItemsController.updateChecklistItemPositions"
      }
    },
    "/updateChecklistItemStatus/{id}": {
      "patch": {
        "x-controller-name": "ChecklistItemsController",
        "x-operation-name": "updateChecklistItemStatus",
        "tags": [
          "ChecklistItemsController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "ChecklistItem status will be updated"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "assigned_to",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ChecklistItemsController.updateChecklistItemStatus"
      }
    },
    "/updateChecklistItems": {
      "post": {
        "x-controller-name": "ChecklistItemsController",
        "x-operation-name": "updateChecklistItems",
        "tags": [
          "ChecklistItemsController"
        ],
        "responses": {
          "200": {
            "description": "ChecklistItems model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChecklistItems"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ChecklistItemsController.updateChecklistItems"
      }
    },
    "/updateChecklistSections/{checklistId}": {
      "patch": {
        "x-controller-name": "ChecklistController",
        "x-operation-name": "updateChecklistSections",
        "tags": [
          "ChecklistController"
        ],
        "responses": {
          "204": {
            "description": "Checklist sections updated"
          }
        },
        "parameters": [
          {
            "name": "checklistId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ChecklistController.updateChecklistSections"
      }
    },
    "/updateCommonArea": {
      "post": {
        "x-controller-name": "LocationController",
        "x-operation-name": "updateCommonArea",
        "tags": [
          "LocationController"
        ],
        "responses": {
          "200": {
            "description": "Item model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Item"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "LocationController.updateCommonArea"
      }
    },
    "/updateCommonAreas": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "updateCommonAreas",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Updates Common Areas",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Location"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "HotelController.updateCommonAreas"
      }
    },
    "/updateCredentialLocation": {
      "post": {
        "x-controller-name": "SchedulingCredentialController",
        "x-operation-name": "updateCredentialLocation",
        "tags": [
          "SchedulingCredentialController"
        ],
        "responses": {
          "200": {
            "description": "Add the location name as per the scheduling_type(e.g. UKG) of credentialLocation in the hotel",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialLocation"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "credential_id": {
                    "type": "string"
                  },
                  "hotel_id": {
                    "type": "string"
                  },
                  "location_name": {
                    "type": "string"
                  },
                  "scheduling_type": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "SchedulingCredentialController.updateCredentialLocation"
      }
    },
    "/updateDeliveryTime": {
      "put": {
        "x-controller-name": "DeliveryServiceController",
        "x-operation-name": "updateDeliveryTime",
        "tags": [
          "DeliveryServiceController"
        ],
        "responses": {
          "200": {
            "description": "Updates the time for a specific delivery",
            "content": {
              "application/json": {}
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "DeliveryServiceController.updateDeliveryTime"
      }
    },
    "/updateDepartment/{id}": {
      "put": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "updateDepartment",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Department PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoleAndDepartmentController.updateDepartment"
      }
    },
    "/updateGroup/{id}": {
      "put": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "updateGroup",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "DepartmentGroup PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoleAndDepartmentController.updateGroup"
      }
    },
    "/updateHotelLayout": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "updateHotelLayout",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Hotel model instance"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "HotelController.updateHotelLayout"
      }
    },
    "/updateHotelSections": {
      "post": {
        "x-controller-name": "SectionController",
        "x-operation-name": "updateHotelSections",
        "tags": [
          "SectionController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Item model instance"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "SectionController.updateHotelSections"
      }
    },
    "/updateItems": {
      "post": {
        "x-controller-name": "ItemController",
        "x-operation-name": "updateItems",
        "tags": [
          "ItemController"
        ],
        "responses": {
          "200": {
            "description": "Item model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Item"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "index": {
                    "type": "number"
                  },
                  "is_countable": {
                    "type": "boolean"
                  },
                  "request_category_id": {
                    "type": "string"
                  },
                  "back_office_due_time": {
                    "type": "string"
                  },
                  "guest_due_time": {
                    "type": "string"
                  },
                  "role_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "ItemController.updateItems"
      }
    },
    "/updateLanguage": {
      "patch": {
        "x-controller-name": "UsersController",
        "x-operation-name": "updateUserLanguage",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Update user language preference",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "language": {
                    "type": "string"
                  }
                },
                "required": [
                  "language"
                ]
              }
            }
          }
        },
        "operationId": "UsersController.updateUserLanguage"
      }
    },
    "/updateLocations": {
      "post": {
        "x-controller-name": "UsersController",
        "x-operation-name": "updateLocations",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Creates Link Betweeen User and Hotel",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "email": {
                      "type": "string"
                    },
                    "password": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "UsersController.updateLocations"
      }
    },
    "/updateMorningMeeting": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "updateMorningMeeting",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Hotel model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hotel"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "HotelController.updateMorningMeeting"
      }
    },
    "/updateNotes/{id}": {
      "put": {
        "x-controller-name": "NotesController",
        "x-operation-name": "updateNotes",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notes PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "NotesController.updateNotes"
      }
    },
    "/updateProject": {
      "post": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "updateProject",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "200": {
            "description": "Project model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "startDate": {
                    "type": "string"
                  },
                  "endDate": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "ProjectController.updateProject"
      }
    },
    "/updateProjectStatus/{id}": {
      "patch": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "updateProjectStatus",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Project status will be updated"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "ProjectController.updateProjectStatus"
      }
    },
    "/updateRequestCategory": {
      "post": {
        "x-controller-name": "RequestcategoryController",
        "x-operation-name": "create",
        "tags": [
          "RequestcategoryController"
        ],
        "responses": {
          "200": {
            "description": "RequestCategory model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequestCategory"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "index": {
                    "type": "number"
                  },
                  "is_countable": {
                    "type": "boolean"
                  },
                  "request_category_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "RequestcategoryController.create"
      }
    },
    "/updateRequestCategoryIndex": {
      "post": {
        "x-controller-name": "RequestcategoryController",
        "x-operation-name": "updateRequestCategoryIndex",
        "tags": [
          "RequestcategoryController"
        ],
        "responses": {
          "200": {
            "description": "Item model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequestCategory"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "properties": {
                    "requestCategories": {
                      "type": "array",
                      "items": {
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "index": {
                            "type": "number"
                          },
                          "items": {
                            "type": "array",
                            "items": {
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "index": {
                                  "type": "number"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "RequestcategoryController.updateRequestCategoryIndex"
      }
    },
    "/updateRole": {
      "post": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "updateRole",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Role model instance"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RoleAndDepartmentController.updateRole"
      }
    },
    "/updateRolePermission/{hotelPermissionId}": {
      "put": {
        "x-controller-name": "RoleAndDepartmentController",
        "x-operation-name": "updateRolePermission",
        "tags": [
          "RoleAndDepartmentController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Role PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "hotelPermissionId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoleAndDepartmentController.updateRolePermission"
      }
    },
    "/updateRoomNote/{id}": {
      "patch": {
        "x-controller-name": "RoomNoteController",
        "x-operation-name": "updateRoomNote",
        "tags": [
          "RoomNoteController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "responses": {
                    "200": {
                      "description": "Room model instance",
                      "content": {
                        "application/json": {
                          "schema": {}
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string"
                  },
                  "taskId": {
                    "type": "string"
                  },
                  "projectId": {
                    "type": "string"
                  },
                  "checklistProgressId": {
                    "type": "string"
                  },
                  "checklistItemId": {
                    "type": "string"
                  },
                  "isPinned": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RoomNoteController.updateRoomNote"
      }
    },
    "/updateSchedulingCredential": {
      "post": {
        "x-controller-name": "SchedulingCredentialController",
        "x-operation-name": "updateSchedulingCredential",
        "tags": [
          "SchedulingCredentialController"
        ],
        "responses": {
          "200": {
            "description": "SchedulingCredential model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulingCredentials"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "username": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string"
                  },
                  "api_key": {
                    "type": "string"
                  },
                  "company_id": {
                    "type": "string"
                  },
                  "scheduling_type": {
                    "type": "string"
                  },
                  "shared_users": {
                    "type": "array",
                    "items": {}
                  }
                }
              }
            }
          }
        },
        "operationId": "SchedulingCredentialController.updateSchedulingCredential"
      }
    },
    "/updateSopDocument": {
      "post": {
        "x-controller-name": "SopController",
        "x-operation-name": "updateSopDocument",
        "tags": [
          "SopController"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "shiftType": {
                      "type": "string"
                    },
                    "hotelId": {
                      "type": "string"
                    },
                    "role": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "description": "Upload SOP Document of Hotel"
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true
        },
        "operationId": "SopController.updateSopDocument"
      }
    },
    "/updateStatus/{id}": {
      "patch": {
        "x-controller-name": "TaskController",
        "x-operation-name": "updateStatus",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "The file content",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Task status will be updated"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "TaskController.updateStatus"
      }
    },
    "/updateStatusCSV": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "updateStatusCSV",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Update Hotel Status By CSV"
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true
        },
        "operationId": "HotelController.updateStatusCSV"
      }
    },
    "/updateTask": {
      "post": {
        "x-controller-name": "TaskController",
        "x-operation-name": "updateTaskNew",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "Task create/update response",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Task"
                      }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "tasks": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Task"
                          }
                        },
                        "roomStatusTriggerRuleId": {
                          "type": "string"
                        },
                        "createdRule": {
                          "$ref": "#/components/schemas/TaskRoomStatusRule"
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "requests": {
                    "type": "array",
                    "items": {
                      "properties": {
                        "item_id": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "occupants": {
                    "type": "array",
                    "items": {
                      "properties": {
                        "room_id": {
                          "type": "string"
                        },
                        "guest_id": {
                          "type": "string"
                        },
                        "guest_name": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "locations": {
                    "type": "array",
                    "items": {}
                  },
                  "assignees": {
                    "type": "array",
                    "items": {}
                  },
                  "description": {
                    "type": "string"
                  },
                  "startDate": {
                    "type": "string"
                  },
                  "startTime": {
                    "type": "string"
                  },
                  "dueDate": {
                    "type": "string"
                  },
                  "dueTime": {
                    "type": "string"
                  },
                  "frequency": {
                    "type": "string"
                  },
                  "role": {
                    "type": "string"
                  },
                  "updateType": {
                    "type": "string"
                  },
                  "frequencyObject": {
                    "type": "object",
                    "properties": {
                      "isRepeat": {
                        "type": "boolean"
                      },
                      "frequencyType": {
                        "type": "string"
                      },
                      "recurringdays": {
                        "type": "array",
                        "items": {}
                      },
                      "recurringEndType": {
                        "type": "string"
                      },
                      "recurringEnd": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string"
                          },
                          "value": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  "roomStatusTrigger": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean"
                      },
                      "statuses": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "clientRequestId": {
                        "type": "string"
                      }
                    }
                  },
                  "type": {
                    "type": "string"
                  },
                  "projectId": {
                    "type": "string",
                    "required": [
                      "false"
                    ]
                  },
                  "note_with_image_id": {
                    "type": "string"
                  },
                  "logItemId": {
                    "type": "string",
                    "nullable": true
                  },
                  "checklistItems": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "index": {
                          "type": "number"
                        },
                        "responseType": {
                          "type": "string"
                        },
                        "responseRequired": {
                          "type": "boolean"
                        },
                        "responseOptions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              },
                              "index": {
                                "type": "number"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "deletedChecklistItemIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "TaskController.updateTaskNew"
      }
    },
    "/updateTaskChecklistItemStatus/{id}": {
      "patch": {
        "x-controller-name": "TaskController",
        "x-operation-name": "updateTaskChecklistItemStatus",
        "tags": [
          "TaskController"
        ],
        "responses": {
          "200": {
            "description": "Task checklist item status update response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "status"
                ],
                "properties": {
                  "status": {
                    "type": "string"
                  },
                  "response": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string"
                      },
                      "value": {},
                      "optionLabels": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "TaskController.updateTaskChecklistItemStatus"
      }
    },
    "/updateUserData/{userId}": {
      "patch": {
        "x-controller-name": "UsersController",
        "x-operation-name": "updateUserData",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "User will be updated"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UsersController.updateUserData"
      }
    },
    "/updateUserFields": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "disablePMS",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Update PMS By Hotel Id.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hotel"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "HotelController.disablePMS"
      }
    },
    "/updateUserScheduleValues/{userid}": {
      "put": {
        "x-controller-name": "SchedulingCredentialController",
        "x-operation-name": "updateCredentialsForUser",
        "tags": [
          "SchedulingCredentialController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Used to set UKG ID to user table"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userid",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SchedulingCredentialController.updateCredentialsForUser"
      }
    },
    "/uploadFloorLayout": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "uploadFloorLayout",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Update Hotel Floor Layout By CSV"
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true
        },
        "operationId": "HotelController.uploadFloorLayout"
      }
    },
    "/uploadHotelImage": {
      "post": {
        "x-controller-name": "HotelController",
        "x-operation-name": "uploadHotelImage",
        "tags": [
          "HotelController"
        ],
        "responses": {
          "200": {
            "description": "Task model instance"
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true
        },
        "operationId": "HotelController.uploadHotelImage"
      }
    },
    "/uploadImageInNotes": {
      "post": {
        "x-controller-name": "NotesController",
        "x-operation-name": "uploadImageInNotes",
        "tags": [
          "NotesController"
        ],
        "responses": {
          "200": {
            "description": "Used for inserting images in notes."
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true
        },
        "operationId": "NotesController.uploadImageInNotes"
      }
    },
    "/uploadManualShift": {
      "post": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "uploadManualShift",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {},
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true
        },
        "operationId": "WorkshiftController.uploadManualShift"
      }
    },
    "/uploadUserImage": {
      "post": {
        "x-controller-name": "UsersController",
        "x-operation-name": "uploadUserImage",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Task model instance"
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true
        },
        "operationId": "UsersController.uploadUserImage"
      }
    },
    "/userFormData": {
      "get": {
        "x-controller-name": "UsersController",
        "x-operation-name": "userFormData",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Array of User model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Users"
                  }
                }
              }
            }
          }
        },
        "operationId": "UsersController.userFormData"
      }
    },
    "/userListFilters/{userType}": {
      "get": {
        "x-controller-name": "UsersController",
        "x-operation-name": "getuserListFilters",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Array of User model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Users"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "userType",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UsersController.getuserListFilters"
      }
    },
    "/userRoleHotelMigrate": {
      "get": {
        "x-controller-name": "UsersController",
        "x-operation-name": "userRoleHotelMigrate",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Array of User model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Users"
                  }
                }
              }
            }
          }
        },
        "operationId": "UsersController.userRoleHotelMigrate"
      }
    },
    "/users/cleaning": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "userDataForCleaningReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "User Data for Cleaning Reports",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserHotel"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.userDataForCleaningReport"
      }
    },
    "/users/productivity": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "userDataForProductivityReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "User Data for Productivity Reports",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserHotel"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.userDataForProductivityReport"
      }
    },
    "/users/rating": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "userDataForCleaningRatingReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "User Data for Cleaning Rating Reports",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserHotel"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.userDataForCleaningRatingReport"
      }
    },
    "/users/request/completion": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "userDataForRequestCompletionReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "User Data for Average Request Completion Time Report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserHotel"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.userDataForRequestCompletionReport"
      }
    },
    "/users/request": {
      "post": {
        "x-controller-name": "ReportsController",
        "x-operation-name": "userDataForRequestReport",
        "tags": [
          "ReportsController"
        ],
        "responses": {
          "200": {
            "description": "User Data for Request Reports",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserHotel"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ReportsController.userDataForRequestReport"
      }
    },
    "/users/{id}/hotels": {
      "post": {
        "x-controller-name": "UsersHotelController",
        "x-operation-name": "create",
        "tags": [
          "UsersHotelController"
        ],
        "responses": {
          "200": {
            "description": "create a Hotel model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hotel"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewHotelInUsers"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UsersHotelController.create"
      },
      "patch": {
        "x-controller-name": "UsersHotelController",
        "x-operation-name": "patch",
        "tags": [
          "UsersHotelController"
        ],
        "responses": {
          "200": {
            "description": "Users.Hotel PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "hotels.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Hotel>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HotelPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UsersHotelController.patch"
      },
      "get": {
        "x-controller-name": "UsersHotelController",
        "x-operation-name": "find",
        "tags": [
          "UsersHotelController"
        ],
        "responses": {
          "200": {
            "description": "Array of Users has many Hotel through UserHotel",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Hotel"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "UsersHotelController.find"
      },
      "delete": {
        "x-controller-name": "UsersHotelController",
        "x-operation-name": "delete",
        "tags": [
          "UsersHotelController"
        ],
        "responses": {
          "200": {
            "description": "Users.Hotel DELETE success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "hotels.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Hotel>"
                }
              }
            }
          }
        ],
        "operationId": "UsersHotelController.delete"
      }
    },
    "/users/{id}": {
      "get": {
        "x-controller-name": "UsersController",
        "x-operation-name": "getUserDetails",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Array of User model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Users"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UsersController.getUserDetails"
      }
    },
    "/users": {
      "post": {
        "x-controller-name": "UsersController",
        "x-operation-name": "getAllUsers",
        "tags": [
          "UsersController"
        ],
        "responses": {
          "200": {
            "description": "Logout User",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "locations": {
                      "type": "array"
                    },
                    "departments": {
                      "type": "array"
                    },
                    "roles": {
                      "type": "array"
                    },
                    "userTypes": {
                      "type": "array"
                    },
                    "userStatus": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 2
        },
        "operationId": "UsersController.getAllUsers"
      }
    },
    "/verifyShiftCSV": {
      "post": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "verifyShiftCSV",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "Verify CSV To Check if it is valid."
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "description": "Request body for multipart/form-data based file upload",
          "required": true
        },
        "operationId": "WorkshiftController.verifyShiftCSV"
      }
    },
    "/version": {
      "get": {
        "x-controller-name": "VersionController",
        "x-operation-name": "version",
        "tags": [
          "VersionController"
        ],
        "responses": {
          "200": {
            "description": "Application version and build info",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string"
                    },
                    "commit": {
                      "type": "string"
                    },
                    "environment": {
                      "type": "string"
                    },
                    "buildTime": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "VersionController.version"
      }
    },
    "/workshifts/{workshiftId}/clock-in": {
      "post": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "clockIn",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Clock in successful"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workshiftId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "clock_in_out_qr_value": {
                    "type": "string"
                  },
                  "clock_in_out_short_code": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": false,
          "x-parameter-index": 1
        },
        "operationId": "WorkshiftController.clockIn"
      }
    },
    "/workshifts/{workshiftId}/clock-out": {
      "post": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "clockOut",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Clock out successful"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workshiftId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "clock_in_out_qr_value": {
                    "type": "string"
                  },
                  "clock_in_out_short_code": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": false,
          "x-parameter-index": 1
        },
        "operationId": "WorkshiftController.clockOut"
      }
    },
    "/workshifts/{workshiftId}/lunch-end": {
      "post": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "lunchEnd",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Lunch end successful"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workshiftId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WorkshiftController.lunchEnd"
      }
    },
    "/workshifts/{workshiftId}/lunch-start": {
      "post": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "lunchStart",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Lunch start successful"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workshiftId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WorkshiftController.lunchStart"
      }
    },
    "/workshifts/{id}": {
      "put": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "replaceById",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Workshift PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Workshift"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "WorkshiftController.replaceById"
      },
      "patch": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "updateById",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Workshift PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Workshift"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "WorkshiftController.updateById"
      },
      "get": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "findById",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Workshift model instance"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/workshifts.Filter"
                }
              }
            }
          }
        ],
        "operationId": "WorkshiftController.findById"
      },
      "delete": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "deleteById",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Workshift DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "WorkshiftController.deleteById"
      }
    },
    "/workshifts": {
      "patch": {
        "x-controller-name": "WorkshiftController",
        "x-operation-name": "updateAll",
        "tags": [
          "WorkshiftController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Workshift PATCH success count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "workshifts.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Workshift>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Workshift"
              }
            }
          }
        },
        "operationId": "WorkshiftController.updateAll"
      }
    }
  },
  "servers": [
    {
      "url": "https://api-19623-75a36882-cqeryvxn.onporter.run"
    }
  ],
  "components": {
    "schemas": {
      "Hotel": {
        "title": "Hotel",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "group": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "parser": {
            "type": "string"
          },
          "timezone": {
            "type": "number"
          },
          "timezone_area": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "csv_update": {
            "type": "string",
            "format": "date-time"
          },
          "homebase_id": {
            "type": "string"
          },
          "ukg_location_name": {
            "type": "string"
          },
          "ukg_api_key": {
            "type": "string"
          },
          "ukg_username": {
            "type": "string"
          },
          "ukg_password": {
            "type": "string"
          },
          "ukg_company_id": {
            "type": "string"
          },
          "schedulingSystem": {
            "type": "string"
          },
          "clock_in_requirement_enabled": {
            "type": "boolean"
          },
          "clock_in_required_for_managers": {
            "type": "boolean"
          },
          "clock_in_required_for_staff": {
            "type": "boolean"
          },
          "clock_in_clock_out_mode": {
            "type": "string",
            "enum": [
              "manual",
              "qr_code"
            ],
            "description": "Clock in/out mode for the hotel"
          },
          "clock_in_clock_out_qr_token": {
            "type": "string"
          },
          "clock_in_clock_out_short_code": {
            "type": "string"
          },
          "clock_out_proof_required": {
            "type": "boolean"
          },
          "quick_clean_prompt_enabled": {
            "type": "boolean"
          },
          "shift_end_clock_out_prompt_enabled": {
            "type": "boolean"
          },
          "allocation_method": {
            "type": "string"
          },
          "auto_sort_allocations": {
            "type": "boolean"
          },
          "auto_inspect_after_cleaning": {
            "type": "boolean"
          },
          "floors_count": {
            "type": "number"
          },
          "cleaning_credit_per_RA": {
            "type": "number"
          },
          "is_turndown_enabled": {
            "type": "boolean"
          },
          "is_dnd_photo_required": {
            "type": "boolean"
          },
          "is_checkout_photo_required": {
            "type": "boolean"
          },
          "is_stayover_photo_required": {
            "type": "boolean"
          },
          "action_tracking_name": {
            "type": "string"
          },
          "is_queue_room_prioritized": {
            "type": "boolean"
          },
          "startFromOne": {
            "type": "boolean"
          },
          "linen_change_duration": {
            "type": "number"
          },
          "turndown_credit_per_RA": {
            "type": "number"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "is_role_selection_allowed": {
            "type": "boolean"
          },
          "default_shift_duration": {
            "type": "number"
          },
          "default_shift_week_duration": {
            "type": "number"
          },
          "is_linen_enabled": {
            "type": "boolean"
          },
          "is_linen_enabled_on_departure": {
            "type": "boolean"
          },
          "reset_time": {
            "type": "string"
          },
          "token_expiry_enabled": {
            "type": "boolean"
          },
          "lost_found_email_enabled": {
            "type": "boolean"
          },
          "phase2_leave_enabled": {
            "type": "boolean",
            "readOnly": true
          },
          "closeout_recipient_emails": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "token_expiry_time": {
            "type": "number"
          },
          "cancel_cleaning_time": {
            "type": "number"
          },
          "start_day_of_week": {
            "type": "string",
            "enum": [
              "monday",
              "sunday"
            ],
            "description": "Start day of the week for scheduling purposes"
          },
          "operaLogin": {
            "type": "string"
          },
          "operaPassword": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "default_currency": {
            "type": "string"
          },
          "mgmt_company": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "NewHotelInUsers": {
        "title": "NewHotelInUsers",
        "type": "object",
        "description": "(tsType: Omit<Hotel, 'id'>, schemaOptions: { title: 'NewHotelInUsers', exclude: [ 'id' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "group": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "parser": {
            "type": "string"
          },
          "timezone": {
            "type": "number"
          },
          "timezone_area": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "csv_update": {
            "type": "string",
            "format": "date-time"
          },
          "homebase_id": {
            "type": "string"
          },
          "ukg_location_name": {
            "type": "string"
          },
          "ukg_api_key": {
            "type": "string"
          },
          "ukg_username": {
            "type": "string"
          },
          "ukg_password": {
            "type": "string"
          },
          "ukg_company_id": {
            "type": "string"
          },
          "schedulingSystem": {
            "type": "string"
          },
          "clock_in_requirement_enabled": {
            "type": "boolean"
          },
          "clock_in_required_for_managers": {
            "type": "boolean"
          },
          "clock_in_required_for_staff": {
            "type": "boolean"
          },
          "clock_in_clock_out_mode": {
            "type": "string",
            "enum": [
              "manual",
              "qr_code"
            ],
            "description": "Clock in/out mode for the hotel"
          },
          "clock_in_clock_out_qr_token": {
            "type": "string"
          },
          "clock_in_clock_out_short_code": {
            "type": "string"
          },
          "clock_out_proof_required": {
            "type": "boolean"
          },
          "quick_clean_prompt_enabled": {
            "type": "boolean"
          },
          "shift_end_clock_out_prompt_enabled": {
            "type": "boolean"
          },
          "allocation_method": {
            "type": "string"
          },
          "auto_sort_allocations": {
            "type": "boolean"
          },
          "auto_inspect_after_cleaning": {
            "type": "boolean"
          },
          "floors_count": {
            "type": "number"
          },
          "cleaning_credit_per_RA": {
            "type": "number"
          },
          "is_turndown_enabled": {
            "type": "boolean"
          },
          "is_dnd_photo_required": {
            "type": "boolean"
          },
          "is_checkout_photo_required": {
            "type": "boolean"
          },
          "is_stayover_photo_required": {
            "type": "boolean"
          },
          "action_tracking_name": {
            "type": "string"
          },
          "is_queue_room_prioritized": {
            "type": "boolean"
          },
          "startFromOne": {
            "type": "boolean"
          },
          "linen_change_duration": {
            "type": "number"
          },
          "turndown_credit_per_RA": {
            "type": "number"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "is_role_selection_allowed": {
            "type": "boolean"
          },
          "default_shift_duration": {
            "type": "number"
          },
          "default_shift_week_duration": {
            "type": "number"
          },
          "is_linen_enabled": {
            "type": "boolean"
          },
          "is_linen_enabled_on_departure": {
            "type": "boolean"
          },
          "reset_time": {
            "type": "string"
          },
          "token_expiry_enabled": {
            "type": "boolean"
          },
          "lost_found_email_enabled": {
            "type": "boolean"
          },
          "phase2_leave_enabled": {
            "type": "boolean",
            "readOnly": true
          },
          "closeout_recipient_emails": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "token_expiry_time": {
            "type": "number"
          },
          "cancel_cleaning_time": {
            "type": "number"
          },
          "start_day_of_week": {
            "type": "string",
            "enum": [
              "monday",
              "sunday"
            ],
            "description": "Start day of the week for scheduling purposes"
          },
          "operaLogin": {
            "type": "string"
          },
          "operaPassword": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "default_currency": {
            "type": "string"
          },
          "mgmt_company": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Hotel, 'id'>"
      },
      "HotelPartial": {
        "title": "HotelPartial",
        "type": "object",
        "description": "(tsType: Partial<Hotel>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "group": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "parser": {
            "type": "string"
          },
          "timezone": {
            "type": "number"
          },
          "timezone_area": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "csv_update": {
            "type": "string",
            "format": "date-time"
          },
          "homebase_id": {
            "type": "string"
          },
          "ukg_location_name": {
            "type": "string"
          },
          "ukg_api_key": {
            "type": "string"
          },
          "ukg_username": {
            "type": "string"
          },
          "ukg_password": {
            "type": "string"
          },
          "ukg_company_id": {
            "type": "string"
          },
          "schedulingSystem": {
            "type": "string"
          },
          "clock_in_requirement_enabled": {
            "type": "boolean"
          },
          "clock_in_required_for_managers": {
            "type": "boolean"
          },
          "clock_in_required_for_staff": {
            "type": "boolean"
          },
          "clock_in_clock_out_mode": {
            "type": "string",
            "enum": [
              "manual",
              "qr_code"
            ],
            "description": "Clock in/out mode for the hotel"
          },
          "clock_in_clock_out_qr_token": {
            "type": "string"
          },
          "clock_in_clock_out_short_code": {
            "type": "string"
          },
          "clock_out_proof_required": {
            "type": "boolean"
          },
          "quick_clean_prompt_enabled": {
            "type": "boolean"
          },
          "shift_end_clock_out_prompt_enabled": {
            "type": "boolean"
          },
          "allocation_method": {
            "type": "string"
          },
          "auto_sort_allocations": {
            "type": "boolean"
          },
          "auto_inspect_after_cleaning": {
            "type": "boolean"
          },
          "floors_count": {
            "type": "number"
          },
          "cleaning_credit_per_RA": {
            "type": "number"
          },
          "is_turndown_enabled": {
            "type": "boolean"
          },
          "is_dnd_photo_required": {
            "type": "boolean"
          },
          "is_checkout_photo_required": {
            "type": "boolean"
          },
          "is_stayover_photo_required": {
            "type": "boolean"
          },
          "action_tracking_name": {
            "type": "string"
          },
          "is_queue_room_prioritized": {
            "type": "boolean"
          },
          "startFromOne": {
            "type": "boolean"
          },
          "linen_change_duration": {
            "type": "number"
          },
          "turndown_credit_per_RA": {
            "type": "number"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "is_role_selection_allowed": {
            "type": "boolean"
          },
          "default_shift_duration": {
            "type": "number"
          },
          "default_shift_week_duration": {
            "type": "number"
          },
          "is_linen_enabled": {
            "type": "boolean"
          },
          "is_linen_enabled_on_departure": {
            "type": "boolean"
          },
          "reset_time": {
            "type": "string"
          },
          "token_expiry_enabled": {
            "type": "boolean"
          },
          "lost_found_email_enabled": {
            "type": "boolean"
          },
          "phase2_leave_enabled": {
            "type": "boolean",
            "readOnly": true
          },
          "closeout_recipient_emails": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "token_expiry_time": {
            "type": "number"
          },
          "cancel_cleaning_time": {
            "type": "number"
          },
          "start_day_of_week": {
            "type": "string",
            "enum": [
              "monday",
              "sunday"
            ],
            "description": "Start day of the week for scheduling purposes"
          },
          "operaLogin": {
            "type": "string"
          },
          "operaPassword": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "default_currency": {
            "type": "string"
          },
          "mgmt_company": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Hotel>"
      },
      "Task": {
        "title": "Task",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "frequency": {
            "type": "string"
          },
          "start_time": {
            "type": "string",
            "format": "date-time"
          },
          "end_time": {
            "type": "string",
            "format": "date-time"
          },
          "due_time": {
            "type": "string",
            "format": "date-time"
          },
          "dept_id": {
            "type": "string"
          },
          "role_id": {
            "type": "string"
          },
          "completed_duration": {
            "type": "number"
          },
          "completed_date": {
            "type": "string",
            "format": "date-time"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "location_type": {
            "type": "string"
          },
          "picked_by": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "is_active": {
            "type": "boolean"
          },
          "note_with_image_id": {
            "type": "string"
          },
          "room_status_trigger_rule_id": {
            "type": "string"
          },
          "room_status_trigger_status": {
            "type": "string"
          },
          "room_status_triggered_by_status_id": {
            "type": "string"
          },
          "task_origin": {
            "type": "string"
          },
          "asset_id": {
            "type": "string"
          },
          "asset_service_requirement_id": {
            "type": "string"
          },
          "asset_register_id": {
            "type": "string"
          },
          "asset_name": {
            "type": "string"
          },
          "asset_asset_id": {
            "type": "string"
          },
          "maintenance_plan_name": {
            "type": "string"
          },
          "task_title": {
            "type": "string"
          },
          "frequency_object": {
            "type": "object"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "request_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "assigned_to": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "created_by": {
            "type": "string"
          },
          "room_id": {
            "type": "string"
          },
          "location_id": {
            "type": "string"
          },
          "project_id": {
            "type": "string"
          },
          "log_item_id": {
            "type": "string"
          },
          "assigned_by": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "completed_by": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "TaskWithRelations": {
        "title": "TaskWithRelations",
        "type": "object",
        "description": "(tsType: TaskWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "frequency": {
            "type": "string"
          },
          "start_time": {
            "type": "string",
            "format": "date-time"
          },
          "end_time": {
            "type": "string",
            "format": "date-time"
          },
          "due_time": {
            "type": "string",
            "format": "date-time"
          },
          "dept_id": {
            "type": "string"
          },
          "role_id": {
            "type": "string"
          },
          "completed_duration": {
            "type": "number"
          },
          "completed_date": {
            "type": "string",
            "format": "date-time"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "location_type": {
            "type": "string"
          },
          "picked_by": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "is_active": {
            "type": "boolean"
          },
          "note_with_image_id": {
            "type": "string"
          },
          "room_status_trigger_rule_id": {
            "type": "string"
          },
          "room_status_trigger_status": {
            "type": "string"
          },
          "room_status_triggered_by_status_id": {
            "type": "string"
          },
          "task_origin": {
            "type": "string"
          },
          "asset_id": {
            "type": "string"
          },
          "asset_service_requirement_id": {
            "type": "string"
          },
          "asset_register_id": {
            "type": "string"
          },
          "asset_name": {
            "type": "string"
          },
          "asset_asset_id": {
            "type": "string"
          },
          "maintenance_plan_name": {
            "type": "string"
          },
          "task_title": {
            "type": "string"
          },
          "frequency_object": {
            "type": "object"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "request_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "assigned_to": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "created_by": {
            "type": "string"
          },
          "room_id": {
            "type": "string"
          },
          "location_id": {
            "type": "string"
          },
          "project_id": {
            "type": "string"
          },
          "log_item_id": {
            "type": "string"
          },
          "assigned_by": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "completed_by": {
            "type": "string"
          },
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestWithRelations"
            }
          },
          "assignees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UsersWithRelations"
            }
          },
          "creator": {
            "$ref": "#/components/schemas/UsersWithRelations"
          },
          "recurreds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecurredWithRelations"
            }
          },
          "room": {
            "$ref": "#/components/schemas/RoomWithRelations"
          },
          "location": {
            "$ref": "#/components/schemas/LocationWithRelations"
          },
          "project": {
            "$ref": "#/components/schemas/ProjectWithRelations"
          },
          "logItem": {
            "$ref": "#/components/schemas/LogItemWithRelations"
          },
          "roomNotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoomNoteWithRelations"
            }
          },
          "assigner": {
            "$ref": "#/components/schemas/UsersWithRelations"
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          },
          "CompletedBy": {
            "$ref": "#/components/schemas/UsersWithRelations"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "TaskWithRelations"
      },
      "Server": {},
      "TaskRoomStatusRule": {
        "title": "TaskRoomStatusRule",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "status_values": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "task_template": {
            "type": "object"
          },
          "scope_room_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "client_request_id": {
            "type": "string"
          },
          "is_active": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "deactivated_at": {
            "type": "string",
            "format": "date-time"
          },
          "deactivated_by": {
            "type": "string"
          }
        },
        "required": [
          "hotel_id",
          "created_by",
          "status_values",
          "task_template"
        ],
        "additionalProperties": false
      },
      "SchedulingCredentials": {
        "title": "SchedulingCredentials",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "credential_name": {
            "type": "string"
          },
          "scheduling_type": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "api_key": {
            "type": "string"
          },
          "company_id": {
            "type": "string"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "is_deleted": {
            "type": "boolean"
          }
        },
        "required": [
          "credential_name",
          "scheduling_type",
          "api_key",
          "modified_date"
        ],
        "additionalProperties": false
      },
      "SchedulingCredentialsWithRelations": {
        "title": "SchedulingCredentialsWithRelations",
        "type": "object",
        "description": "(tsType: SchedulingCredentialsWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "credential_name": {
            "type": "string"
          },
          "scheduling_type": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "api_key": {
            "type": "string"
          },
          "company_id": {
            "type": "string"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "is_deleted": {
            "type": "boolean"
          }
        },
        "required": [
          "credential_name",
          "scheduling_type",
          "api_key",
          "modified_date"
        ],
        "additionalProperties": false,
        "x-typescript-type": "SchedulingCredentialsWithRelations"
      },
      "CredentialLocation": {
        "title": "CredentialLocation",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "location_name": {
            "type": "string"
          },
          "credential_type": {
            "type": "string"
          },
          "credential_id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          }
        },
        "required": [
          "location_name",
          "credential_type"
        ],
        "additionalProperties": false
      },
      "HotelWithRelations": {
        "title": "HotelWithRelations",
        "type": "object",
        "description": "(tsType: HotelWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "group": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "parser": {
            "type": "string"
          },
          "timezone": {
            "type": "number"
          },
          "timezone_area": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "csv_update": {
            "type": "string",
            "format": "date-time"
          },
          "homebase_id": {
            "type": "string"
          },
          "ukg_location_name": {
            "type": "string"
          },
          "ukg_api_key": {
            "type": "string"
          },
          "ukg_username": {
            "type": "string"
          },
          "ukg_password": {
            "type": "string"
          },
          "ukg_company_id": {
            "type": "string"
          },
          "schedulingSystem": {
            "type": "string"
          },
          "clock_in_requirement_enabled": {
            "type": "boolean"
          },
          "clock_in_required_for_managers": {
            "type": "boolean"
          },
          "clock_in_required_for_staff": {
            "type": "boolean"
          },
          "clock_in_clock_out_mode": {
            "type": "string",
            "enum": [
              "manual",
              "qr_code"
            ],
            "description": "Clock in/out mode for the hotel"
          },
          "clock_in_clock_out_qr_token": {
            "type": "string"
          },
          "clock_in_clock_out_short_code": {
            "type": "string"
          },
          "clock_out_proof_required": {
            "type": "boolean"
          },
          "quick_clean_prompt_enabled": {
            "type": "boolean"
          },
          "shift_end_clock_out_prompt_enabled": {
            "type": "boolean"
          },
          "allocation_method": {
            "type": "string"
          },
          "auto_sort_allocations": {
            "type": "boolean"
          },
          "auto_inspect_after_cleaning": {
            "type": "boolean"
          },
          "floors_count": {
            "type": "number"
          },
          "cleaning_credit_per_RA": {
            "type": "number"
          },
          "is_turndown_enabled": {
            "type": "boolean"
          },
          "is_dnd_photo_required": {
            "type": "boolean"
          },
          "is_checkout_photo_required": {
            "type": "boolean"
          },
          "is_stayover_photo_required": {
            "type": "boolean"
          },
          "action_tracking_name": {
            "type": "string"
          },
          "is_queue_room_prioritized": {
            "type": "boolean"
          },
          "startFromOne": {
            "type": "boolean"
          },
          "linen_change_duration": {
            "type": "number"
          },
          "turndown_credit_per_RA": {
            "type": "number"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "is_role_selection_allowed": {
            "type": "boolean"
          },
          "default_shift_duration": {
            "type": "number"
          },
          "default_shift_week_duration": {
            "type": "number"
          },
          "is_linen_enabled": {
            "type": "boolean"
          },
          "is_linen_enabled_on_departure": {
            "type": "boolean"
          },
          "reset_time": {
            "type": "string"
          },
          "token_expiry_enabled": {
            "type": "boolean"
          },
          "lost_found_email_enabled": {
            "type": "boolean"
          },
          "phase2_leave_enabled": {
            "type": "boolean",
            "readOnly": true
          },
          "closeout_recipient_emails": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "token_expiry_time": {
            "type": "number"
          },
          "cancel_cleaning_time": {
            "type": "number"
          },
          "start_day_of_week": {
            "type": "string",
            "enum": [
              "monday",
              "sunday"
            ],
            "description": "Start day of the week for scheduling purposes"
          },
          "operaLogin": {
            "type": "string"
          },
          "operaPassword": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "default_currency": {
            "type": "string"
          },
          "mgmt_company": {
            "type": "string"
          },
          "floors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FloorWithRelations"
            }
          },
          "rooms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoomWithRelations"
            }
          },
          "tasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskWithRelations"
            }
          },
          "hotel_image": {
            "$ref": "#/components/schemas/FileWithRelations"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "HotelWithRelations"
      },
      "CredentialLocationWithRelations": {
        "title": "CredentialLocationWithRelations",
        "type": "object",
        "description": "(tsType: CredentialLocationWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "location_name": {
            "type": "string"
          },
          "credential_type": {
            "type": "string"
          },
          "credential_id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "credential": {
            "$ref": "#/components/schemas/SchedulingCredentialsWithRelations"
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          }
        },
        "required": [
          "location_name",
          "credential_type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "CredentialLocationWithRelations"
      },
      "Users": {
        "title": "Users",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "realm": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "emailVerified": {
            "type": "boolean"
          },
          "verificationToken": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "show_morning_meeting": {
            "type": "boolean"
          },
          "show_csv_upload": {
            "type": "boolean"
          },
          "role": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "user_type": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "firebase_token": {
            "type": "string"
          },
          "role_id": {
            "type": "string"
          },
          "forgot_otp": {
            "type": "string"
          },
          "hotel": {
            "type": "string"
          },
          "forgot_otp_expiration": {
            "type": "number"
          },
          "auth_token": {
            "type": "string"
          },
          "refresh_token": {
            "type": "string"
          },
          "homebase_id": {
            "type": "number"
          },
          "ukg_id": {
            "type": "number"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "image": {
            "type": "string"
          },
          "sub_company_id": {
            "type": "object"
          },
          "compensation_type_id": {
            "type": "object"
          }
        },
        "required": [
          "email"
        ],
        "additionalProperties": true
      },
      "RoomWithRelations": {
        "title": "RoomWithRelations",
        "type": "object",
        "description": "(tsType: RoomWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "room_number": {
            "type": "number"
          },
          "room_name": {
            "type": "string"
          },
          "is_double": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "desc": {
            "type": "string"
          },
          "cost": {
            "type": "number"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "is_cleaning": {
            "type": "boolean"
          },
          "turndown_in_progress": {
            "type": "boolean"
          },
          "cleaning_start_time": {
            "type": "string",
            "format": "date-time"
          },
          "turndown_start_time": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "cron_job_id": {
            "type": "string"
          },
          "cleaning_delay": {
            "type": "number"
          },
          "cleaning_delay_job": {
            "type": "string"
          },
          "cleaning_time": {
            "type": "string"
          },
          "last_cleaning_reminder_notification_sent_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_cleaning_reminder_notification_key": {
            "type": "string"
          },
          "turndown_time": {
            "type": "string"
          },
          "stayover_time": {
            "type": "number"
          },
          "checkout_time": {
            "type": "number"
          },
          "hotel_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "floor_id": {
            "type": "string"
          },
          "section_id": {
            "type": "string"
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          },
          "room_status": {
            "$ref": "#/components/schemas/RoomStatusWithRelations"
          },
          "roomStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoomStatusWithRelations"
            }
          },
          "floor": {
            "$ref": "#/components/schemas/FloorWithRelations"
          },
          "section": {
            "$ref": "#/components/schemas/SectionWithRelations"
          }
        },
        "required": [
          "room_number",
          "type",
          "cost"
        ],
        "additionalProperties": false,
        "x-typescript-type": "RoomWithRelations"
      },
      "RoomPartial": {
        "title": "RoomPartial",
        "type": "object",
        "description": "(tsType: Partial<Room>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "room_number": {
            "type": "number"
          },
          "room_name": {
            "type": "string"
          },
          "is_double": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "desc": {
            "type": "string"
          },
          "cost": {
            "type": "number"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "is_cleaning": {
            "type": "boolean"
          },
          "turndown_in_progress": {
            "type": "boolean"
          },
          "cleaning_start_time": {
            "type": "string",
            "format": "date-time"
          },
          "turndown_start_time": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "cron_job_id": {
            "type": "string"
          },
          "cleaning_delay": {
            "type": "number"
          },
          "cleaning_delay_job": {
            "type": "string"
          },
          "cleaning_time": {
            "type": "string"
          },
          "last_cleaning_reminder_notification_sent_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_cleaning_reminder_notification_key": {
            "type": "string"
          },
          "turndown_time": {
            "type": "string"
          },
          "stayover_time": {
            "type": "number"
          },
          "checkout_time": {
            "type": "number"
          },
          "hotel_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "floor_id": {
            "type": "string"
          },
          "section_id": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Room>"
      },
      "Room": {
        "title": "Room",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "room_number": {
            "type": "number"
          },
          "room_name": {
            "type": "string"
          },
          "is_double": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "desc": {
            "type": "string"
          },
          "cost": {
            "type": "number"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "is_cleaning": {
            "type": "boolean"
          },
          "turndown_in_progress": {
            "type": "boolean"
          },
          "cleaning_start_time": {
            "type": "string",
            "format": "date-time"
          },
          "turndown_start_time": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "cron_job_id": {
            "type": "string"
          },
          "cleaning_delay": {
            "type": "number"
          },
          "cleaning_delay_job": {
            "type": "string"
          },
          "cleaning_time": {
            "type": "string"
          },
          "last_cleaning_reminder_notification_sent_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_cleaning_reminder_notification_key": {
            "type": "string"
          },
          "turndown_time": {
            "type": "string"
          },
          "stayover_time": {
            "type": "number"
          },
          "checkout_time": {
            "type": "number"
          },
          "hotel_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "floor_id": {
            "type": "string"
          },
          "section_id": {
            "type": "string"
          }
        },
        "required": [
          "room_number",
          "type",
          "cost"
        ],
        "additionalProperties": false
      },
      "RoleWithRelations": {
        "title": "RoleWithRelations",
        "type": "object",
        "description": "(tsType: RoleWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "group_id": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "index": {
            "type": "number"
          },
          "is_deletedable": {
            "type": "boolean"
          },
          "color": {
            "type": "string"
          },
          "department_id": {
            "type": "string"
          },
          "requestCategories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestCategoryWithRelations"
            }
          },
          "department": {
            "$ref": "#/components/schemas/DepartmentWithRelations"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UsersWithRelations"
            }
          },
          "rolePermissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RolePermissionsWithRelations"
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "RoleWithRelations"
      },
      "RolePartial": {
        "title": "RolePartial",
        "type": "object",
        "description": "(tsType: Partial<Role>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "group_id": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "index": {
            "type": "number"
          },
          "is_deletedable": {
            "type": "boolean"
          },
          "color": {
            "type": "string"
          },
          "department_id": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Role>"
      },
      "Role": {
        "title": "Role",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "group_id": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "index": {
            "type": "number"
          },
          "is_deletedable": {
            "type": "boolean"
          },
          "color": {
            "type": "string"
          },
          "department_id": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RequestCategory": {
        "title": "RequestCategory",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "index": {
            "type": "number"
          },
          "role_id": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "hotel_id": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Project": {
        "title": "Project",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "start_date": {
            "type": "string"
          },
          "end_date": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "completed_date": {
            "type": "string",
            "format": "date-time"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "hotel_id": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "BasePermission": {
        "title": "BasePermission",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "module_name": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "title",
          "description",
          "module_name"
        ],
        "additionalProperties": false
      },
      "NewBasePermission": {
        "title": "NewBasePermission",
        "type": "object",
        "description": "(tsType: Omit<BasePermission, 'id'>, schemaOptions: { title: 'NewBasePermission', exclude: [ 'id' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "module_name": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "title",
          "description",
          "module_name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<BasePermission, 'id'>"
      },
      "RolePermissionsWithRelations": {
        "title": "RolePermissionsWithRelations",
        "type": "object",
        "description": "(tsType: RolePermissionsWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "base_permission_id": {
            "type": "string"
          },
          "role_id": {
            "type": "string"
          },
          "access_level": {
            "type": "number"
          },
          "show_access_selector": {
            "type": "boolean"
          },
          "is_checked": {
            "type": "boolean"
          },
          "is_changeable": {
            "type": "boolean"
          },
          "is_disabled": {
            "type": "boolean"
          },
          "template_id": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "base_permission_id",
          "access_level"
        ],
        "additionalProperties": false,
        "x-typescript-type": "RolePermissionsWithRelations"
      },
      "BasePermissionWithRelations": {
        "title": "BasePermissionWithRelations",
        "type": "object",
        "description": "(tsType: BasePermissionWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "module_name": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "rolePermissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RolePermissionsWithRelations"
            }
          }
        },
        "required": [
          "name",
          "title",
          "description",
          "module_name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "BasePermissionWithRelations"
      },
      "BasePermissionPartial": {
        "title": "BasePermissionPartial",
        "type": "object",
        "description": "(tsType: Partial<BasePermission>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "module_name": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<BasePermission>"
      },
      "Item": {
        "title": "Item",
        "type": "object",
        "properties": {
          "hotel_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "guest_due_time": {
            "type": "string"
          },
          "back_office_due_time": {
            "type": "string"
          },
          "usage_frequency": {
            "type": "number"
          },
          "is_countable": {
            "type": "boolean"
          },
          "index": {
            "type": "number"
          },
          "role_id": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "request_category_id": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Location": {
        "title": "Location",
        "type": "object",
        "properties": {
          "area_id": {
            "type": "string"
          },
          "area_name": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "index": {
            "type": "number"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Department": {
        "title": "Department",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "app_level": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "is_deleteable": {
            "type": "boolean"
          },
          "parent_id": {
            "type": "string"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "hotel_id": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NewDepartment": {
        "title": "NewDepartment",
        "type": "object",
        "description": "(tsType: Omit<Department, 'id'>, schemaOptions: { title: 'NewDepartment', exclude: [ 'id' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "app_level": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "is_deleteable": {
            "type": "boolean"
          },
          "parent_id": {
            "type": "string"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "hotel_id": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Department, 'id'>"
      },
      "DepartmentWithRelations": {
        "title": "DepartmentWithRelations",
        "type": "object",
        "description": "(tsType: DepartmentWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "app_level": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "is_deleteable": {
            "type": "boolean"
          },
          "parent_id": {
            "type": "string"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "hotel_id": {
            "type": "string"
          },
          "Hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          },
          "departmentGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DepartmentGroupWithRelations"
            }
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleWithRelations"
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "DepartmentWithRelations"
      },
      "DepartmentPartial": {
        "title": "DepartmentPartial",
        "type": "object",
        "description": "(tsType: Partial<Department>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "app_level": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "is_deleteable": {
            "type": "boolean"
          },
          "parent_id": {
            "type": "string"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "hotel_id": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Department>"
      },
      "UsersWithRelations": {
        "title": "UsersWithRelations",
        "type": "object",
        "description": "(tsType: UsersWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "realm": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "emailVerified": {
            "type": "boolean"
          },
          "verificationToken": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "show_morning_meeting": {
            "type": "boolean"
          },
          "show_csv_upload": {
            "type": "boolean"
          },
          "role": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "user_type": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "firebase_token": {
            "type": "string"
          },
          "role_id": {
            "type": "string"
          },
          "forgot_otp": {
            "type": "string"
          },
          "hotel": {
            "type": "string"
          },
          "forgot_otp_expiration": {
            "type": "number"
          },
          "auth_token": {
            "type": "string"
          },
          "refresh_token": {
            "type": "string"
          },
          "homebase_id": {
            "type": "number"
          },
          "ukg_id": {
            "type": "number"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "image": {
            "type": "string"
          },
          "sub_company_id": {
            "type": "object"
          },
          "compensation_type_id": {
            "type": "object"
          },
          "userCredentials": {
            "$ref": "#/components/schemas/UserCredentialsWithRelations"
          },
          "userRole": {
            "$ref": "#/components/schemas/RoleWithRelations"
          },
          "hotels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HotelWithRelations"
            }
          },
          "userHotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          },
          "Roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleWithRelations"
            }
          },
          "tasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskWithRelations"
            }
          },
          "user_image": {
            "$ref": "#/components/schemas/FileWithRelations"
          },
          "subCompany": {
            "$ref": "#/components/schemas/SubCompanyWithRelations"
          },
          "compensationType": {
            "$ref": "#/components/schemas/CompensationTypeWithRelations"
          }
        },
        "required": [
          "email"
        ],
        "additionalProperties": true,
        "x-typescript-type": "UsersWithRelations"
      },
      "DeliveryDataWithRelations": {
        "title": "DeliveryDataWithRelations",
        "type": "object",
        "description": "(tsType: DeliveryDataWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "scheduled_time": {
            "type": "string"
          },
          "is_delivery": {
            "type": "boolean"
          },
          "updated_time": {
            "type": "string"
          },
          "completed_time": {
            "type": "string"
          },
          "delivery_date": {
            "type": "string"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "user_id": {
            "type": "string"
          },
          "delivery_schedule_id": {
            "type": "string"
          },
          "delivery_company": {
            "$ref": "#/components/schemas/UsersWithRelations"
          },
          "delivery_schedule": {
            "$ref": "#/components/schemas/DeliveryScheduleWithRelations"
          }
        },
        "required": [
          "hotel_id",
          "scheduled_time",
          "delivery_date",
          "created_date",
          "modified_date"
        ],
        "additionalProperties": false,
        "x-typescript-type": "DeliveryDataWithRelations"
      },
      "DeliveryScheduleWithRelations": {
        "title": "DeliveryScheduleWithRelations",
        "type": "object",
        "description": "(tsType: DeliveryScheduleWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "repeat_interval": {
            "type": "string"
          },
          "delivery_time": {
            "type": "string"
          },
          "delivery_day_of_week": {
            "type": "string"
          },
          "delivery_day_of_month": {
            "type": "number"
          },
          "delivery_week_of_month": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "is_delivery": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "delivery_service_id": {
            "type": "string"
          },
          "deliveryData": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeliveryDataWithRelations"
            }
          },
          "delivery_service": {
            "$ref": "#/components/schemas/DeliveryServiceWithRelations"
          }
        },
        "required": [
          "repeat_interval",
          "delivery_time",
          "created_date",
          "modified_date"
        ],
        "additionalProperties": false,
        "x-typescript-type": "DeliveryScheduleWithRelations"
      },
      "DeliveryServiceWithRelations": {
        "title": "DeliveryServiceWithRelations",
        "type": "object",
        "description": "(tsType: DeliveryServiceWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "is_delivery_enabled": {
            "type": "boolean"
          },
          "is_pickup_enabled": {
            "type": "boolean"
          },
          "send_delivery_notification": {
            "type": "boolean"
          },
          "send_pickup_notification": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "user_id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "deliverySchedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeliveryScheduleWithRelations"
            }
          },
          "delivery_company": {
            "$ref": "#/components/schemas/UsersWithRelations"
          },
          "delivery_hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          }
        },
        "required": [
          "is_delivery_enabled",
          "is_pickup_enabled",
          "send_delivery_notification",
          "send_pickup_notification",
          "created_date",
          "modified_date"
        ],
        "additionalProperties": false,
        "x-typescript-type": "DeliveryServiceWithRelations"
      },
      "DeliveryServicePartial": {
        "title": "DeliveryServicePartial",
        "type": "object",
        "description": "(tsType: Partial<DeliveryService>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "is_delivery_enabled": {
            "type": "boolean"
          },
          "is_pickup_enabled": {
            "type": "boolean"
          },
          "send_delivery_notification": {
            "type": "boolean"
          },
          "send_pickup_notification": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "user_id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<DeliveryService>"
      },
      "DeliveryService": {
        "title": "DeliveryService",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "is_delivery_enabled": {
            "type": "boolean"
          },
          "is_pickup_enabled": {
            "type": "boolean"
          },
          "send_delivery_notification": {
            "type": "boolean"
          },
          "send_pickup_notification": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "user_id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          }
        },
        "required": [
          "is_delivery_enabled",
          "is_pickup_enabled",
          "send_delivery_notification",
          "send_pickup_notification",
          "created_date",
          "modified_date"
        ],
        "additionalProperties": false
      },
      "Workshift": {
        "title": "Workshift",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "shift_type": {
            "type": "string"
          },
          "type_id": {
            "type": "string"
          },
          "shift_order": {
            "type": "number"
          },
          "homebase_id": {
            "type": "number"
          },
          "start_time": {
            "type": "string",
            "format": "date-time"
          },
          "end_time": {
            "type": "string",
            "format": "date-time"
          },
          "clock_in_time": {
            "type": "string",
            "format": "date-time"
          },
          "clock_out_time": {
            "type": "string",
            "format": "date-time"
          },
          "lunch_start_time": {
            "type": "string",
            "format": "date-time"
          },
          "lunch_end_time": {
            "type": "string",
            "format": "date-time"
          },
          "last_lunch_notification_sent_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_shift_end_clock_out_reminder_scheduled_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_shift_end_clock_out_reminder_scheduled_key": {
            "type": "string"
          },
          "last_shift_end_clock_out_reminder_claimed_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_shift_end_clock_out_reminder_claimed_key": {
            "type": "string"
          },
          "last_shift_end_clock_out_reminder_sent_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_shift_end_clock_out_reminder_sent_key": {
            "type": "string"
          },
          "last_shift_end_clock_out_reminder_failed_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_shift_end_clock_out_reminder_failure_reason": {
            "type": "string"
          },
          "credits_left": {
            "type": "number"
          },
          "add_via": {
            "type": "string"
          },
          "draft": {
            "type": "boolean"
          },
          "schedule_revision": {
            "type": "number"
          },
          "leave_admission_revision": {
            "type": "number"
          },
          "leave_pending_mutation": {
            "type": "object"
          },
          "leave_repair_fence": {
            "type": "object"
          },
          "leave_target_admission_barrier": {
            "type": "object"
          },
          "draft_of": {
            "type": "string"
          },
          "ukg_udid": {
            "type": "string"
          },
          "rooms": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "turndown_rooms": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "user": {
            "type": "string"
          },
          "workshift_role": {
            "type": "string"
          },
          "hotel": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UserCredentialsWithRelations": {
        "title": "UserCredentialsWithRelations",
        "type": "object",
        "description": "(tsType: UserCredentialsWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "required": [
          "password",
          "userId"
        ],
        "additionalProperties": true,
        "x-typescript-type": "UserCredentialsWithRelations"
      },
      "GuestWithRelations": {
        "title": "GuestWithRelations",
        "type": "object",
        "description": "(tsType: GuestWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "sectond_last_name": {
            "type": "string"
          },
          "check_in": {
            "type": "string"
          },
          "check_out": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "status": {
            "type": "boolean"
          },
          "vip_type": {
            "type": "string"
          },
          "is_group": {
            "type": "boolean"
          },
          "notes": {
            "type": "string"
          },
          "cleaning_pref_time": {
            "type": "string"
          },
          "turndown_pref_time": {
            "type": "string"
          },
          "pref_code": {
            "type": "string"
          },
          "special_code": {
            "type": "string"
          },
          "adults_count": {
            "type": "number"
          },
          "children_count": {
            "type": "number"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "guest_pms_id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "eta": {
            "type": "string"
          }
        },
        "required": [
          "guest_pms_id"
        ],
        "additionalProperties": false,
        "x-typescript-type": "GuestWithRelations"
      },
      "RoomStatusWithRelations": {
        "title": "RoomStatusWithRelations",
        "type": "object",
        "description": "(tsType: RoomStatusWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "reservation_status": {
            "type": "string"
          },
          "linen_status": {
            "type": "string"
          },
          "room": {
            "type": "string"
          },
          "time": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "turndown_status": {
            "type": "string"
          },
          "is_current": {
            "type": "boolean"
          },
          "user": {
            "type": "string"
          },
          "is_queue_room": {
            "type": "boolean"
          },
          "queue_timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "action_tracking_completed_at": {
            "type": "string",
            "format": "date-time"
          },
          "action_tracking_completed_by": {
            "type": "string"
          },
          "action_tracking_completed_by_name": {
            "type": "string"
          },
          "guest_id": {
            "type": "string"
          },
          "guest": {
            "$ref": "#/components/schemas/GuestWithRelations"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "RoomStatusWithRelations"
      },
      "SectionWithRelations": {
        "title": "SectionWithRelations",
        "type": "object",
        "description": "(tsType: SectionWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "hotel_id": {
            "type": "string"
          },
          "index": {
            "type": "number"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "rooms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoomWithRelations"
            }
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "SectionWithRelations"
      },
      "FloorWithRelations": {
        "title": "FloorWithRelations",
        "type": "object",
        "description": "(tsType: FloorWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "floor_number": {
            "type": "number"
          },
          "floor_name": {
            "type": "string"
          },
          "count_of_rooms": {
            "type": "number"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "hotel_id": {
            "type": "string"
          },
          "rooms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoomWithRelations"
            }
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          }
        },
        "required": [
          "floor_number",
          "floor_name",
          "count_of_rooms"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FloorWithRelations"
      },
      "RequestCategoryWithRelations": {
        "title": "RequestCategoryWithRelations",
        "type": "object",
        "description": "(tsType: RequestCategoryWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "index": {
            "type": "number"
          },
          "role_id": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "hotel_id": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemWithRelations"
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "RequestCategoryWithRelations"
      },
      "DepartmentGroupWithRelations": {
        "title": "DepartmentGroupWithRelations",
        "type": "object",
        "description": "(tsType: DepartmentGroupWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "department_id": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "sub_groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DepartmentGroupWithRelations"
            }
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleWithRelations"
            }
          }
        },
        "required": [
          "name",
          "department_id",
          "hotel_id",
          "created_date"
        ],
        "additionalProperties": false,
        "x-typescript-type": "DepartmentGroupWithRelations"
      },
      "FileWithRelations": {
        "title": "FileWithRelations",
        "type": "object",
        "description": "(tsType: FileWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "server_path": {
            "type": "string"
          },
          "path_small": {
            "type": "string"
          },
          "original_name": {
            "type": "string"
          },
          "size": {
            "type": "string"
          },
          "path": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "FileWithRelations"
      },
      "SubCompanyWithRelations": {
        "title": "SubCompanyWithRelations",
        "type": "object",
        "description": "(tsType: SubCompanyWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "SubCompanyWithRelations"
      },
      "CompensationTypeWithRelations": {
        "title": "CompensationTypeWithRelations",
        "type": "object",
        "description": "(tsType: CompensationTypeWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "CompensationTypeWithRelations"
      },
      "ItemWithRelations": {
        "title": "ItemWithRelations",
        "type": "object",
        "description": "(tsType: ItemWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "hotel_id": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "guest_due_time": {
            "type": "string"
          },
          "back_office_due_time": {
            "type": "string"
          },
          "usage_frequency": {
            "type": "number"
          },
          "is_countable": {
            "type": "boolean"
          },
          "index": {
            "type": "number"
          },
          "role_id": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "request_category_id": {
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/RoleWithRelations"
          },
          "requestCategory": {
            "$ref": "#/components/schemas/RequestCategoryWithRelations"
          },
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestWithRelations"
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "ItemWithRelations"
      },
      "RequestWithRelations": {
        "title": "RequestWithRelations",
        "type": "object",
        "description": "(tsType: RequestWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "qty": {
            "type": "number"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "item_id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "item": {
            "$ref": "#/components/schemas/ItemWithRelations"
          },
          "hotel": {
            "$ref": "#/components/schemas/ItemWithRelations"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "RequestWithRelations"
      },
      "RecurredWithRelations": {
        "title": "RecurredWithRelations",
        "type": "object",
        "description": "(tsType: RecurredWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "task_id": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "recurred_id": {
            "type": "string"
          },
          "recurred": {
            "$ref": "#/components/schemas/TaskWithRelations"
          }
        },
        "required": [
          "task_id"
        ],
        "additionalProperties": false,
        "x-typescript-type": "RecurredWithRelations"
      },
      "LocationWithRelations": {
        "title": "LocationWithRelations",
        "type": "object",
        "description": "(tsType: LocationWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "area_id": {
            "type": "string"
          },
          "area_name": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "index": {
            "type": "number"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "LocationWithRelations"
      },
      "RoomNoteWithRelations": {
        "title": "RoomNoteWithRelations",
        "type": "object",
        "description": "(tsType: RoomNoteWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "is_pinned": {
            "type": "boolean"
          },
          "room": {
            "type": "string"
          },
          "time": {
            "type": "string",
            "format": "date-time"
          },
          "text": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "checklist_progress_id": {
            "type": "string"
          },
          "checklist_item_id": {
            "type": "string"
          },
          "read_by": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "task_id": {
            "type": "string"
          },
          "project_id": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "user": {
            "type": "string"
          },
          "task": {
            "$ref": "#/components/schemas/TaskWithRelations"
          },
          "project": {
            "$ref": "#/components/schemas/ProjectWithRelations"
          },
          "noteImage": {
            "$ref": "#/components/schemas/FileWithRelations"
          },
          "noteUser": {
            "$ref": "#/components/schemas/UsersWithRelations"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "RoomNoteWithRelations"
      },
      "ProjectWithRelations": {
        "title": "ProjectWithRelations",
        "type": "object",
        "description": "(tsType: ProjectWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "start_date": {
            "type": "string"
          },
          "end_date": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "completed_date": {
            "type": "string",
            "format": "date-time"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "hotel_id": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          },
          "creator": {
            "$ref": "#/components/schemas/UsersWithRelations"
          },
          "tasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskWithRelations"
            }
          },
          "roomNotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoomNoteWithRelations"
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "ProjectWithRelations"
      },
      "LogItemWithRelations": {
        "title": "LogItemWithRelations",
        "type": "object",
        "description": "(tsType: LogItemWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "guest_report",
              "lost_found",
              "internal_report",
              "departmental_handover",
              "incident_accident",
              "alleged_food_borne_illness",
              "guest_report_manager",
              "incident_accident_manager",
              "lost_found_manager",
              "alleged_food_borne_illness_manager"
            ]
          },
          "status": {
            "type": "string"
          },
          "answers": {
            "type": "object"
          },
          "title": {
            "type": "string"
          },
          "hotelId": {
            "type": "string"
          },
          "createdById": {
            "type": "string"
          },
          "assignedToId": {
            "type": "string"
          },
          "childId": {
            "type": "string"
          },
          "claimedById": {
            "type": "string"
          },
          "claimedAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "isDeleted": {
            "type": "boolean"
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UsersWithRelations"
          },
          "assignedTo": {
            "$ref": "#/components/schemas/UsersWithRelations"
          },
          "managerAnswers": {
            "$ref": "#/components/schemas/LogItemWithRelations"
          },
          "claimedBy": {
            "$ref": "#/components/schemas/UsersWithRelations"
          }
        },
        "required": [
          "type",
          "answers"
        ],
        "additionalProperties": false,
        "x-typescript-type": "LogItemWithRelations"
      },
      "ShiftTypeWithRelations": {
        "title": "ShiftTypeWithRelations",
        "type": "object",
        "description": "(tsType: ShiftTypeWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "include_in_timesheet": {
            "type": "boolean"
          },
          "include_in_statistics": {
            "type": "boolean"
          },
          "show_on_dashboard": {
            "type": "boolean"
          },
          "show_on_allocation": {
            "type": "boolean"
          },
          "include_in_upcoming_shifts": {
            "type": "boolean"
          },
          "is_default": {
            "type": "boolean"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "leave_system_key": {
            "type": "string",
            "enum": [
              "PTO",
              "UTO"
            ]
          },
          "leave_requestable": {
            "type": "boolean"
          },
          "leave_tracks_balance": {
            "type": "boolean"
          },
          "leave_payroll_category": {
            "type": "string",
            "enum": [
              "paid_leave",
              "unpaid_leave"
            ]
          },
          "leave_negative_balance_allowed": {
            "type": "boolean"
          },
          "leave_revision": {
            "type": "number"
          },
          "leave_visibility_state": {
            "type": "string"
          },
          "leave_creating_receipt_id": {
            "type": "string"
          },
          "leave_pending_mutation": {
            "type": "object"
          },
          "leave_admission_revision": {
            "type": "number"
          },
          "leave_target_admission_barrier": {
            "type": "object"
          },
          "leave_target_tombstone": {
            "type": "object"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ShiftTypeWithRelations"
      },
      "UserWithRelations": {
        "title": "UserWithRelations",
        "type": "object",
        "description": "(tsType: UserWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "realm": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "emailVerified": {
            "type": "boolean"
          },
          "verificationToken": {
            "type": "string"
          },
          "userCredentials": {
            "$ref": "#/components/schemas/UserCredentialsWithRelations"
          }
        },
        "required": [
          "email"
        ],
        "additionalProperties": true,
        "x-typescript-type": "UserWithRelations"
      },
      "CleaningResultWithRelations": {
        "title": "CleaningResultWithRelations",
        "type": "object",
        "description": "(tsType: CleaningResultWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "room": {
            "type": "string"
          },
          "inspected_by": {
            "type": "string"
          },
          "inspected_time": {
            "type": "string",
            "format": "date-time"
          },
          "cleaning_start": {
            "type": "string",
            "format": "date-time"
          },
          "cleaning_end": {
            "type": "string",
            "format": "date-time"
          },
          "cleaning_time": {
            "type": "number"
          },
          "time": {
            "type": "string",
            "format": "date-time"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "cleaning_rating": {
            "type": "string"
          },
          "cleaning_comment": {
            "type": "string"
          },
          "workshift_id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "attendant": {
            "type": "string"
          },
          "workshift": {
            "$ref": "#/components/schemas/WorkshiftWithRelations"
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          },
          "user": {
            "$ref": "#/components/schemas/UserWithRelations"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "CleaningResultWithRelations"
      },
      "TurndownResultWithRelations": {
        "title": "TurndownResultWithRelations",
        "type": "object",
        "description": "(tsType: TurndownResultWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "room": {
            "type": "string"
          },
          "inspected_by": {
            "type": "string"
          },
          "inspected_time": {
            "type": "string",
            "format": "date-time"
          },
          "turndown_start": {
            "type": "string",
            "format": "date-time"
          },
          "turndown_end": {
            "type": "string",
            "format": "date-time"
          },
          "turndown_time": {
            "type": "number"
          },
          "time": {
            "type": "string",
            "format": "date-time"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "turndown_rating": {
            "type": "string"
          },
          "turndown_comment": {
            "type": "string"
          },
          "workshift_id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "attendant": {
            "type": "string"
          },
          "workshift": {
            "$ref": "#/components/schemas/WorkshiftWithRelations"
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          },
          "user": {
            "$ref": "#/components/schemas/HotelWithRelations"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "TurndownResultWithRelations"
      },
      "NotesWithRelations": {
        "title": "NotesWithRelations",
        "type": "object",
        "description": "(tsType: NotesWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "room_id": {
            "type": "string"
          },
          "entity_id": {
            "type": "string"
          },
          "module_name": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "checklist_item_id": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "is_read": {
            "type": "boolean"
          },
          "is_pinned": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "user_id": {
            "type": "string"
          },
          "user": {
            "$ref": "#/components/schemas/UsersWithRelations"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "NotesWithRelations"
      },
      "WorkshiftWithRelations": {
        "title": "WorkshiftWithRelations",
        "type": "object",
        "description": "(tsType: WorkshiftWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "shift_type": {
            "type": "string"
          },
          "type_id": {
            "type": "string"
          },
          "shift_order": {
            "type": "number"
          },
          "homebase_id": {
            "type": "number"
          },
          "start_time": {
            "type": "string",
            "format": "date-time"
          },
          "end_time": {
            "type": "string",
            "format": "date-time"
          },
          "clock_in_time": {
            "type": "string",
            "format": "date-time"
          },
          "clock_out_time": {
            "type": "string",
            "format": "date-time"
          },
          "lunch_start_time": {
            "type": "string",
            "format": "date-time"
          },
          "lunch_end_time": {
            "type": "string",
            "format": "date-time"
          },
          "last_lunch_notification_sent_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_shift_end_clock_out_reminder_scheduled_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_shift_end_clock_out_reminder_scheduled_key": {
            "type": "string"
          },
          "last_shift_end_clock_out_reminder_claimed_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_shift_end_clock_out_reminder_claimed_key": {
            "type": "string"
          },
          "last_shift_end_clock_out_reminder_sent_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_shift_end_clock_out_reminder_sent_key": {
            "type": "string"
          },
          "last_shift_end_clock_out_reminder_failed_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_shift_end_clock_out_reminder_failure_reason": {
            "type": "string"
          },
          "credits_left": {
            "type": "number"
          },
          "add_via": {
            "type": "string"
          },
          "draft": {
            "type": "boolean"
          },
          "schedule_revision": {
            "type": "number"
          },
          "leave_admission_revision": {
            "type": "number"
          },
          "leave_pending_mutation": {
            "type": "object"
          },
          "leave_repair_fence": {
            "type": "object"
          },
          "leave_target_admission_barrier": {
            "type": "object"
          },
          "draft_of": {
            "type": "string"
          },
          "ukg_udid": {
            "type": "string"
          },
          "rooms": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "turndown_rooms": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "user": {
            "type": "string"
          },
          "workshift_role": {
            "type": "string"
          },
          "hotel": {
            "type": "string"
          },
          "workshift_type": {
            "$ref": "#/components/schemas/ShiftTypeWithRelations"
          },
          "workshift_user": {
            "$ref": "#/components/schemas/UsersWithRelations"
          },
          "role": {
            "$ref": "#/components/schemas/RoleWithRelations"
          },
          "workshift_hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          },
          "cleaningResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CleaningResultWithRelations"
            }
          },
          "turndownResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TurndownResultWithRelations"
            }
          },
          "shift_notes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotesWithRelations"
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "WorkshiftWithRelations"
      },
      "TimesheetPublicHolidaySnapshot": {
        "title": "TimesheetPublicHolidaySnapshot",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "decisionId",
          "decisionRevision",
          "holidayDate",
          "treatmentDate",
          "holidayName",
          "legalEmployerId",
          "originatingPropertyId",
          "eligibilityStatus",
          "eligibilityBasis",
          "evidence",
          "selectedBenefit",
          "benefitDate",
          "entitlementId",
          "payrollCategory",
          "referenceMinutes",
          "referenceType",
          "workedMinutesOnHoliday",
          "enhancedNonStatutory",
          "decisionActor",
          "decisionTime",
          "decisionReason"
        ],
        "properties": {
          "decisionId": {
            "type": "string"
          },
          "decisionRevision": {
            "type": "integer",
            "minimum": 0
          },
          "holidayDate": {
            "type": "string"
          },
          "treatmentDate": {
            "type": "string"
          },
          "holidayName": {
            "type": "string"
          },
          "legalEmployerId": {
            "type": "string"
          },
          "originatingPropertyId": {
            "type": "string"
          },
          "eligibilityStatus": {
            "type": "string"
          },
          "eligibilityBasis": {
            "type": "string"
          },
          "evidence": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "periodStart",
              "periodEnd",
              "actualWorkedMinutes",
              "propertyIds",
              "complete",
              "scopeComplete",
              "employmentStatus",
              "possibleStatutoryExclusion",
              "alreadyPaidDayOff",
              "contractedNormalWeeklyPaidMinutes"
            ],
            "properties": {
              "periodStart": {
                "type": "string"
              },
              "periodEnd": {
                "type": "string"
              },
              "actualWorkedMinutes": {
                "type": "number"
              },
              "propertyIds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "complete": {
                "type": "boolean"
              },
              "scopeComplete": {
                "type": "boolean"
              },
              "employmentStatus": {
                "type": "string"
              },
              "possibleStatutoryExclusion": {
                "type": "string"
              },
              "alreadyPaidDayOff": {
                "type": "boolean"
              },
              "contractedNormalWeeklyPaidMinutes": {
                "type": "number",
                "nullable": true
              }
            }
          },
          "selectedBenefit": {
            "type": "string",
            "nullable": true
          },
          "benefitDate": {
            "type": "string",
            "nullable": true
          },
          "entitlementId": {
            "type": "string",
            "nullable": true
          },
          "payrollCategory": {
            "type": "string"
          },
          "referenceMinutes": {
            "type": "number",
            "nullable": true
          },
          "referenceType": {
            "type": "string",
            "nullable": true
          },
          "workedMinutesOnHoliday": {
            "type": "number"
          },
          "enhancedNonStatutory": {
            "type": "boolean"
          },
          "decisionActor": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              }
            }
          },
          "decisionTime": {
            "type": "string"
          },
          "decisionReason": {
            "type": "string"
          }
        }
      },
      "TimesheetLeaveContext": {
        "title": "TimesheetLeaveContext",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requestId",
          "requestRevision",
          "leaveType",
          "unit",
          "startDate",
          "endDate",
          "startLocalTime",
          "endLocalTime",
          "timezoneArea",
          "propertyId"
        ],
        "properties": {
          "requestId": {
            "type": "string"
          },
          "requestRevision": {
            "type": "integer",
            "minimum": 0
          },
          "leaveType": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "unit": {
            "type": "string",
            "enum": [
              "full_day",
              "half_day"
            ]
          },
          "startDate": {
            "type": "string"
          },
          "endDate": {
            "type": "string"
          },
          "startLocalTime": {
            "type": "string",
            "nullable": true
          },
          "endLocalTime": {
            "type": "string",
            "nullable": true
          },
          "timezoneArea": {
            "type": "string"
          },
          "propertyId": {
            "type": "string"
          }
        }
      },
      "ReportEmailSchedule": {
        "title": "ReportEmailSchedule",
        "type": "object",
        "description": "(tsType: ReportEmailSchedule, schemaOptions: { includeRelations: false })",
        "properties": {
          "id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "report_type": {
            "type": "string"
          },
          "context_key": {
            "type": "string"
          },
          "report_filters": {
            "type": "object"
          },
          "rolling_period": {
            "type": "object"
          },
          "recurrence": {
            "type": "object"
          },
          "recipients": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "send_time": {
            "type": "string"
          },
          "timezone": {
            "type": "string"
          },
          "start_date": {
            "type": "string"
          },
          "end_date": {
            "type": "string"
          },
          "is_active": {
            "type": "boolean"
          },
          "created_by": {
            "type": "string"
          },
          "updated_by": {
            "type": "string"
          },
          "disabled_by": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "disabled_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_by": {
            "type": "string"
          },
          "last_sent_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_error_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_error_message": {
            "type": "string"
          },
          "last_run_key": {
            "type": "string"
          },
          "last_recipient_count": {
            "type": "number"
          },
          "resend_message_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "hotel_id",
          "report_type",
          "context_key",
          "report_filters",
          "rolling_period",
          "recurrence",
          "recipients",
          "send_time",
          "timezone",
          "start_date",
          "end_date",
          "created_by",
          "created_at",
          "updated_at"
        ],
        "additionalProperties": true,
        "x-typescript-type": "ReportEmailSchedule"
      },
      "UserHotel": {
        "title": "UserHotel",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "role_id": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Notes": {
        "title": "Notes",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "room_id": {
            "type": "string"
          },
          "entity_id": {
            "type": "string"
          },
          "module_name": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "checklist_item_id": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "is_deleted": {
            "type": "boolean"
          },
          "is_read": {
            "type": "boolean"
          },
          "is_pinned": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "user_id": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "CreateQuestionDto": {},
      "CreateLogItemBodyDto": {},
      "CreateLogItemManagerBodyDto": {},
      "UpdateLogStatusDto": {},
      "UpdateLogItemAnswersDto": {},
      "NewHotel": {
        "title": "NewHotel",
        "type": "object",
        "description": "(tsType: Omit<Hotel, 'id'>, schemaOptions: { title: 'NewHotel', exclude: [ 'id' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "group": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "parser": {
            "type": "string"
          },
          "timezone": {
            "type": "number"
          },
          "timezone_area": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "csv_update": {
            "type": "string",
            "format": "date-time"
          },
          "homebase_id": {
            "type": "string"
          },
          "ukg_location_name": {
            "type": "string"
          },
          "ukg_api_key": {
            "type": "string"
          },
          "ukg_username": {
            "type": "string"
          },
          "ukg_password": {
            "type": "string"
          },
          "ukg_company_id": {
            "type": "string"
          },
          "schedulingSystem": {
            "type": "string"
          },
          "clock_in_requirement_enabled": {
            "type": "boolean"
          },
          "clock_in_required_for_managers": {
            "type": "boolean"
          },
          "clock_in_required_for_staff": {
            "type": "boolean"
          },
          "clock_in_clock_out_mode": {
            "type": "string",
            "enum": [
              "manual",
              "qr_code"
            ],
            "description": "Clock in/out mode for the hotel"
          },
          "clock_in_clock_out_qr_token": {
            "type": "string"
          },
          "clock_in_clock_out_short_code": {
            "type": "string"
          },
          "clock_out_proof_required": {
            "type": "boolean"
          },
          "quick_clean_prompt_enabled": {
            "type": "boolean"
          },
          "shift_end_clock_out_prompt_enabled": {
            "type": "boolean"
          },
          "allocation_method": {
            "type": "string"
          },
          "auto_sort_allocations": {
            "type": "boolean"
          },
          "auto_inspect_after_cleaning": {
            "type": "boolean"
          },
          "floors_count": {
            "type": "number"
          },
          "cleaning_credit_per_RA": {
            "type": "number"
          },
          "is_turndown_enabled": {
            "type": "boolean"
          },
          "is_dnd_photo_required": {
            "type": "boolean"
          },
          "is_checkout_photo_required": {
            "type": "boolean"
          },
          "is_stayover_photo_required": {
            "type": "boolean"
          },
          "action_tracking_name": {
            "type": "string"
          },
          "is_queue_room_prioritized": {
            "type": "boolean"
          },
          "startFromOne": {
            "type": "boolean"
          },
          "linen_change_duration": {
            "type": "number"
          },
          "turndown_credit_per_RA": {
            "type": "number"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string"
          },
          "is_role_selection_allowed": {
            "type": "boolean"
          },
          "default_shift_duration": {
            "type": "number"
          },
          "default_shift_week_duration": {
            "type": "number"
          },
          "is_linen_enabled": {
            "type": "boolean"
          },
          "is_linen_enabled_on_departure": {
            "type": "boolean"
          },
          "reset_time": {
            "type": "string"
          },
          "token_expiry_enabled": {
            "type": "boolean"
          },
          "lost_found_email_enabled": {
            "type": "boolean"
          },
          "phase2_leave_enabled": {
            "type": "boolean",
            "readOnly": true
          },
          "closeout_recipient_emails": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "token_expiry_time": {
            "type": "number"
          },
          "cancel_cleaning_time": {
            "type": "number"
          },
          "start_day_of_week": {
            "type": "string",
            "enum": [
              "monday",
              "sunday"
            ],
            "description": "Start day of the week for scheduling purposes"
          },
          "operaLogin": {
            "type": "string"
          },
          "operaPassword": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "default_currency": {
            "type": "string"
          },
          "mgmt_company": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Hotel, 'id'>"
      },
      "Checklist": {
        "title": "Checklist",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "shift_type": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "resetTime": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "sections": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "created_by": {
            "type": "string"
          }
        },
        "required": [
          "role",
          "shift_type",
          "type",
          "resetTime"
        ],
        "additionalProperties": false
      },
      "ChecklistItems": {
        "title": "ChecklistItems",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "start_time": {
            "type": "string"
          },
          "index": {
            "type": "number"
          },
          "due_time": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "section_id": {
            "type": "string"
          },
          "response_type": {
            "type": "string"
          },
          "response_required": {
            "type": "boolean"
          },
          "response_options": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "checklist_id": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "loopback.Count": {
        "type": "object",
        "title": "loopback.Count",
        "x-typescript-type": "@loopback/repository#Count",
        "properties": {
          "count": {
            "type": "number"
          }
        }
      },
      "Department.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "Department.ScopeFilter"
      },
      "Department.IncludeFilter.Items": {
        "title": "Department.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "Hotel",
              "departmentGroups",
              "roles"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Department.ScopeFilter"
          }
        }
      },
      "Department.Filter": {
        "type": "object",
        "title": "Department.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "display_name": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "app_level": {
                    "type": "boolean"
                  },
                  "created_by": {
                    "type": "boolean"
                  },
                  "is_deleted": {
                    "type": "boolean"
                  },
                  "is_deleteable": {
                    "type": "boolean"
                  },
                  "parent_id": {
                    "type": "boolean"
                  },
                  "created_date": {
                    "type": "boolean"
                  },
                  "modified_date": {
                    "type": "boolean"
                  },
                  "hotel_id": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "display_name",
                    "type",
                    "app_level",
                    "created_by",
                    "is_deleted",
                    "is_deleteable",
                    "parent_id",
                    "created_date",
                    "modified_date",
                    "hotel_id"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Department.Fields"
          },
          "include": {
            "title": "Department.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Department.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Department>"
      },
      "Department.Filter1": {
        "type": "object",
        "title": "Department.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Department.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "display_name": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "app_level": {
                    "type": "boolean"
                  },
                  "created_by": {
                    "type": "boolean"
                  },
                  "is_deleted": {
                    "type": "boolean"
                  },
                  "is_deleteable": {
                    "type": "boolean"
                  },
                  "parent_id": {
                    "type": "boolean"
                  },
                  "created_date": {
                    "type": "boolean"
                  },
                  "modified_date": {
                    "type": "boolean"
                  },
                  "hotel_id": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "display_name",
                    "type",
                    "app_level",
                    "created_by",
                    "is_deleted",
                    "is_deleteable",
                    "parent_id",
                    "created_date",
                    "modified_date",
                    "hotel_id"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Department.Fields"
          },
          "include": {
            "title": "Department.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Department.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Department>"
      },
      "ChecklistItemsWithRelations": {
        "title": "ChecklistItemsWithRelations",
        "type": "object",
        "description": "(tsType: ChecklistItemsWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "start_time": {
            "type": "string"
          },
          "index": {
            "type": "number"
          },
          "due_time": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "section_id": {
            "type": "string"
          },
          "response_type": {
            "type": "string"
          },
          "response_required": {
            "type": "boolean"
          },
          "response_options": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "checklist_id": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "checklist": {
            "$ref": "#/components/schemas/ChecklistWithRelations"
          },
          "creator": {
            "$ref": "#/components/schemas/UsersWithRelations"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ChecklistItemsWithRelations"
      },
      "ChecklistWithRelations": {
        "title": "ChecklistWithRelations",
        "type": "object",
        "description": "(tsType: ChecklistWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "shift_type": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "resetTime": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "sections": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "is_deleted": {
            "type": "boolean"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "created_by": {
            "type": "string"
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelWithRelations"
          },
          "checklistItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChecklistItemsWithRelations"
            }
          },
          "creator": {
            "$ref": "#/components/schemas/UsersWithRelations"
          }
        },
        "required": [
          "role",
          "shift_type",
          "type",
          "resetTime"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ChecklistWithRelations"
      },
      "ScheduleOpenShiftResponse": {
        "title": "ScheduleOpenShiftResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "releaseId",
          "releaseRevision",
          "originalEmployeeId",
          "leaveRequestId"
        ],
        "properties": {
          "releaseId": {
            "type": "string"
          },
          "releaseRevision": {
            "type": "integer"
          },
          "originalEmployeeId": {
            "type": "string"
          },
          "leaveRequestId": {
            "type": "string"
          }
        }
      },
      "ScheduleWorkshiftResponse": {
        "title": "ScheduleWorkshiftResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "user_id",
          "name",
          "initials",
          "image",
          "startTime",
          "endTime",
          "type",
          "color",
          "draft",
          "shift_type",
          "type_id",
          "workshift_type",
          "clockInAt",
          "breaks",
          "clockOutAt",
          "currentActivity",
          "lastCompletedActivity",
          "checklistCompletion",
          "scheduleRevision"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "initials": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "startTime": {
            "type": "string"
          },
          "endTime": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "draft": {
            "type": "boolean"
          },
          "draft_of": {
            "type": "string"
          },
          "shift_type": {
            "type": "string"
          },
          "type_id": {
            "type": "string"
          },
          "department": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "shift_notes": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "text"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "text": {
                  "type": "string"
                }
              }
            }
          },
          "workshift_type": {
            "type": "object",
            "nullable": true,
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "is_deleted",
              "show_on_dashboard",
              "is_default"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "is_deleted": {
                "type": "boolean"
              },
              "show_on_dashboard": {
                "type": "boolean"
              },
              "is_default": {
                "type": "boolean"
              }
            }
          },
          "clockInAt": {
            "type": "string",
            "nullable": true
          },
          "breaks": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "startAt",
                "endAt"
              ],
              "properties": {
                "startAt": {
                  "type": "string"
                },
                "endAt": {
                  "type": "string",
                  "nullable": true
                }
              }
            }
          },
          "clockOutAt": {
            "type": "string",
            "nullable": true
          },
          "currentActivity": {
            "type": "object",
            "nullable": true,
            "additionalProperties": false,
            "required": [
              "type",
              "label",
              "startedAt",
              "status"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "room",
                  "task"
                ]
              },
              "label": {
                "type": "string"
              },
              "startedAt": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "in_progress"
                ]
              },
              "elapsedSeconds": {
                "type": "number"
              },
              "roomId": {
                "type": "string",
                "nullable": true
              },
              "taskId": {
                "type": "string",
                "nullable": true
              }
            }
          },
          "lastCompletedActivity": {
            "type": "object",
            "nullable": true,
            "additionalProperties": false,
            "required": [
              "type",
              "label",
              "completedAt"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "room",
                  "task"
                ]
              },
              "label": {
                "type": "string"
              },
              "completedAt": {
                "type": "string"
              },
              "roomId": {
                "type": "string",
                "nullable": true
              },
              "taskId": {
                "type": "string",
                "nullable": true
              }
            }
          },
          "checklistCompletion": {
            "type": "number",
            "nullable": true
          },
          "scheduleRevision": {
            "type": "integer",
            "minimum": 0
          },
          "coverageState": {
            "type": "string",
            "enum": [
              "assigned",
              "open_for_cover"
            ]
          },
          "openShift": {
            "$ref": "#/components/schemas/ScheduleOpenShiftResponse"
          }
        }
      },
      "ScheduleUnavailabilityResponse": {
        "title": "ScheduleUnavailabilityResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "hotelId",
          "employeeId",
          "localDate",
          "fullDay",
          "startLocalTime",
          "endLocalTime",
          "timezoneArea",
          "leaveRequestId",
          "leaveRequestRevision",
          "leaveTypeId"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "hotelId": {
            "type": "string"
          },
          "employeeId": {
            "type": "string"
          },
          "localDate": {
            "type": "string",
            "format": "date"
          },
          "fullDay": {
            "type": "boolean"
          },
          "startLocalTime": {
            "type": "string",
            "nullable": true
          },
          "endLocalTime": {
            "type": "string",
            "nullable": true
          },
          "timezoneArea": {
            "type": "string"
          },
          "leaveRequestId": {
            "type": "string"
          },
          "leaveRequestRevision": {
            "type": "integer"
          },
          "leaveTypeId": {
            "type": "string"
          }
        }
      },
      "ScheduleDateRangeResponse": {
        "title": "ScheduleDateRangeResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "workshifts",
          "rangeHours",
          "unavailabilities"
        ],
        "properties": {
          "workshifts": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ScheduleWorkshiftResponse"
                }
              }
            }
          },
          "rangeHours": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          },
          "unavailabilities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleUnavailabilityResponse"
            }
          }
        }
      },
      "hotels.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "hotels.ScopeFilter"
      },
      "hotels.IncludeFilter.Items": {
        "title": "hotels.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "floors",
              "rooms",
              "tasks",
              "hotel_image"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/hotels.ScopeFilter"
          }
        }
      },
      "hotels.Filter": {
        "type": "object",
        "title": "hotels.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "hotels.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "group": {
                    "type": "boolean"
                  },
                  "address": {
                    "type": "boolean"
                  },
                  "email": {
                    "type": "boolean"
                  },
                  "parser": {
                    "type": "boolean"
                  },
                  "timezone": {
                    "type": "boolean"
                  },
                  "timezone_area": {
                    "type": "boolean"
                  },
                  "phone": {
                    "type": "boolean"
                  },
                  "csv_update": {
                    "type": "boolean"
                  },
                  "homebase_id": {
                    "type": "boolean"
                  },
                  "ukg_location_name": {
                    "type": "boolean"
                  },
                  "ukg_api_key": {
                    "type": "boolean"
                  },
                  "ukg_username": {
                    "type": "boolean"
                  },
                  "ukg_password": {
                    "type": "boolean"
                  },
                  "ukg_company_id": {
                    "type": "boolean"
                  },
                  "schedulingSystem": {
                    "type": "boolean"
                  },
                  "clock_in_requirement_enabled": {
                    "type": "boolean"
                  },
                  "clock_in_required_for_managers": {
                    "type": "boolean"
                  },
                  "clock_in_required_for_staff": {
                    "type": "boolean"
                  },
                  "clock_in_clock_out_mode": {
                    "type": "boolean"
                  },
                  "clock_in_clock_out_qr_token": {
                    "type": "boolean"
                  },
                  "clock_in_clock_out_short_code": {
                    "type": "boolean"
                  },
                  "clock_out_proof_required": {
                    "type": "boolean"
                  },
                  "quick_clean_prompt_enabled": {
                    "type": "boolean"
                  },
                  "shift_end_clock_out_prompt_enabled": {
                    "type": "boolean"
                  },
                  "allocation_method": {
                    "type": "boolean"
                  },
                  "auto_sort_allocations": {
                    "type": "boolean"
                  },
                  "auto_inspect_after_cleaning": {
                    "type": "boolean"
                  },
                  "floors_count": {
                    "type": "boolean"
                  },
                  "cleaning_credit_per_RA": {
                    "type": "boolean"
                  },
                  "is_turndown_enabled": {
                    "type": "boolean"
                  },
                  "is_dnd_photo_required": {
                    "type": "boolean"
                  },
                  "is_checkout_photo_required": {
                    "type": "boolean"
                  },
                  "is_stayover_photo_required": {
                    "type": "boolean"
                  },
                  "action_tracking_name": {
                    "type": "boolean"
                  },
                  "is_queue_room_prioritized": {
                    "type": "boolean"
                  },
                  "startFromOne": {
                    "type": "boolean"
                  },
                  "linen_change_duration": {
                    "type": "boolean"
                  },
                  "turndown_credit_per_RA": {
                    "type": "boolean"
                  },
                  "created_at": {
                    "type": "boolean"
                  },
                  "updated_at": {
                    "type": "boolean"
                  },
                  "deleted_at": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "is_role_selection_allowed": {
                    "type": "boolean"
                  },
                  "default_shift_duration": {
                    "type": "boolean"
                  },
                  "default_shift_week_duration": {
                    "type": "boolean"
                  },
                  "is_linen_enabled": {
                    "type": "boolean"
                  },
                  "is_linen_enabled_on_departure": {
                    "type": "boolean"
                  },
                  "reset_time": {
                    "type": "boolean"
                  },
                  "token_expiry_enabled": {
                    "type": "boolean"
                  },
                  "lost_found_email_enabled": {
                    "type": "boolean"
                  },
                  "phase2_leave_enabled": {
                    "type": "boolean"
                  },
                  "phase2_leave_capability_revision": {
                    "type": "boolean"
                  },
                  "phase2_leave_capability_changes": {
                    "type": "boolean"
                  },
                  "closeout_recipient_emails": {
                    "type": "boolean"
                  },
                  "token_expiry_time": {
                    "type": "boolean"
                  },
                  "cancel_cleaning_time": {
                    "type": "boolean"
                  },
                  "start_day_of_week": {
                    "type": "boolean"
                  },
                  "operaLogin": {
                    "type": "boolean"
                  },
                  "operaPassword": {
                    "type": "boolean"
                  },
                  "image": {
                    "type": "boolean"
                  },
                  "city": {
                    "type": "boolean"
                  },
                  "state": {
                    "type": "boolean"
                  },
                  "zip": {
                    "type": "boolean"
                  },
                  "country": {
                    "type": "boolean"
                  },
                  "default_currency": {
                    "type": "boolean"
                  },
                  "mgmt_company": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "group",
                    "address",
                    "email",
                    "parser",
                    "timezone",
                    "timezone_area",
                    "phone",
                    "csv_update",
                    "homebase_id",
                    "ukg_location_name",
                    "ukg_api_key",
                    "ukg_username",
                    "ukg_password",
                    "ukg_company_id",
                    "schedulingSystem",
                    "clock_in_requirement_enabled",
                    "clock_in_required_for_managers",
                    "clock_in_required_for_staff",
                    "clock_in_clock_out_mode",
                    "clock_in_clock_out_qr_token",
                    "clock_in_clock_out_short_code",
                    "clock_out_proof_required",
                    "quick_clean_prompt_enabled",
                    "shift_end_clock_out_prompt_enabled",
                    "allocation_method",
                    "auto_sort_allocations",
                    "auto_inspect_after_cleaning",
                    "floors_count",
                    "cleaning_credit_per_RA",
                    "is_turndown_enabled",
                    "is_dnd_photo_required",
                    "is_checkout_photo_required",
                    "is_stayover_photo_required",
                    "action_tracking_name",
                    "is_queue_room_prioritized",
                    "startFromOne",
                    "linen_change_duration",
                    "turndown_credit_per_RA",
                    "created_at",
                    "updated_at",
                    "deleted_at",
                    "status",
                    "is_role_selection_allowed",
                    "default_shift_duration",
                    "default_shift_week_duration",
                    "is_linen_enabled",
                    "is_linen_enabled_on_departure",
                    "reset_time",
                    "token_expiry_enabled",
                    "lost_found_email_enabled",
                    "phase2_leave_enabled",
                    "phase2_leave_capability_revision",
                    "phase2_leave_capability_changes",
                    "closeout_recipient_emails",
                    "token_expiry_time",
                    "cancel_cleaning_time",
                    "start_day_of_week",
                    "operaLogin",
                    "operaPassword",
                    "image",
                    "city",
                    "state",
                    "zip",
                    "country",
                    "default_currency",
                    "mgmt_company"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "hotels.Fields"
          },
          "include": {
            "title": "hotels.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/hotels.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Hotel>"
      },
      "HrDocumentVersion": {
        "title": "HrDocumentVersion",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "document_id",
          "version_number",
          "status",
          "acknowledgement_required",
          "original_file_name",
          "mime_type",
          "size_bytes",
          "uploaded_by",
          "uploaded_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "document_id": {
            "type": "string"
          },
          "version_number": {
            "type": "integer"
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "published",
              "superseded"
            ]
          },
          "acknowledgement_required": {
            "type": "boolean"
          },
          "original_file_name": {
            "type": "string"
          },
          "mime_type": {
            "type": "string"
          },
          "size_bytes": {
            "type": "integer",
            "minimum": 0
          },
          "uploaded_by": {
            "type": "string"
          },
          "uploaded_at": {
            "type": "string",
            "format": "date-time"
          },
          "published_by": {
            "type": "string"
          },
          "published_at": {
            "type": "string",
            "format": "date-time"
          },
          "superseded_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "EmployeeHrDocumentSummary": {
        "title": "EmployeeHrDocumentSummary",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "assignment_id",
          "document_id",
          "document_name",
          "version",
          "status",
          "assigned_at"
        ],
        "properties": {
          "assignment_id": {
            "type": "string"
          },
          "document_id": {
            "type": "string"
          },
          "document_name": {
            "type": "string"
          },
          "folder": {
            "type": "string"
          },
          "version": {
            "$ref": "#/components/schemas/HrDocumentVersion"
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "completed"
            ]
          },
          "assigned_at": {
            "type": "string",
            "format": "date-time"
          },
          "completed_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "EmployeeHrDocumentAcknowledgementResult": {
        "title": "EmployeeHrDocumentAcknowledgementResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "assignment",
          "acknowledgement"
        ],
        "properties": {
          "assignment": {
            "$ref": "#/components/schemas/EmployeeHrDocumentSummary"
          },
          "acknowledgement": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "state",
              "acknowledged_at"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "state": {
                "type": "string",
                "enum": [
                  "acknowledged"
                ]
              },
              "acknowledged_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      },
      "AcknowledgeHrDocumentBody": {
        "title": "AcknowledgeHrDocumentBody",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "client_mutation_id"
        ],
        "properties": {
          "client_mutation_id": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "HrDocumentDownloadUrlResult": {
        "title": "HrDocumentDownloadUrlResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "url",
          "expires_at"
        ],
        "properties": {
          "url": {
            "type": "string",
            "format": "uri"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "EmployeeHrDocumentDetail": {
        "title": "EmployeeHrDocumentDetail",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "assignment"
        ],
        "properties": {
          "assignment": {
            "$ref": "#/components/schemas/EmployeeHrDocumentSummary"
          },
          "acknowledgement": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "state",
              "acknowledged_at"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "state": {
                "type": "string",
                "enum": [
                  "acknowledged"
                ]
              },
              "acknowledged_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      },
      "EmployeeHrDocumentListResult": {
        "title": "EmployeeHrDocumentListResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items",
          "total",
          "skip",
          "limit"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmployeeHrDocumentSummary"
            }
          },
          "total": {
            "type": "integer",
            "minimum": 0
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        }
      },
      "HrDocument": {
        "title": "HrDocument",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "hotel_id",
          "name",
          "status",
          "has_published_version",
          "created_by",
          "created_at",
          "modified_by",
          "modified_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "hotel_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "folder": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "published",
              "archived"
            ]
          },
          "current_version_id": {
            "type": "string"
          },
          "has_published_version": {
            "type": "boolean"
          },
          "created_by": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "modified_by": {
            "type": "string"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time"
          },
          "archived_by": {
            "type": "string"
          },
          "archived_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ArchiveHrDocumentBody": {
        "title": "ArchiveHrDocumentBody",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "client_mutation_id"
        ],
        "properties": {
          "client_mutation_id": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "AssignmentSummary": {
        "title": "AssignmentSummary",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "assigned_count",
          "open_count",
          "completed_count",
          "created_count",
          "skipped_existing_count",
          "skipped_inactive_count"
        ],
        "properties": {
          "assigned_count": {
            "type": "integer",
            "minimum": 0
          },
          "open_count": {
            "type": "integer",
            "minimum": 0
          },
          "completed_count": {
            "type": "integer",
            "minimum": 0
          },
          "created_count": {
            "type": "integer",
            "minimum": 0
          },
          "skipped_existing_count": {
            "type": "integer",
            "minimum": 0
          },
          "skipped_inactive_count": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "AssignHrDocumentResult": {
        "title": "AssignHrDocumentResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "version_id",
          "assignment_summary"
        ],
        "properties": {
          "version_id": {
            "type": "string"
          },
          "assignment_summary": {
            "$ref": "#/components/schemas/AssignmentSummary"
          }
        }
      },
      "AssignHrDocumentBody": {
        "title": "AssignHrDocumentBody",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "client_mutation_id",
          "audience"
        ],
        "properties": {
          "client_mutation_id": {
            "type": "string",
            "format": "uuid"
          },
          "audience": {
            "title": "AudienceSelector",
            "oneOf": [
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "all"
                    ]
                  }
                }
              },
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "type",
                  "department_id"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "department"
                    ]
                  },
                  "department_id": {
                    "type": "string"
                  }
                }
              },
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "type",
                  "role_id"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "role"
                    ]
                  },
                  "role_id": {
                    "type": "string"
                  }
                }
              },
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "type",
                  "employee_ids"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "employees"
                    ]
                  },
                  "employee_ids": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            ]
          }
        }
      },
      "HrDocumentAssignmentItem": {
        "title": "HrDocumentAssignmentItem",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "document_id",
          "version_id",
          "employee",
          "source_type",
          "acknowledgement_required",
          "status",
          "assigned_by",
          "assigned_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "document_id": {
            "type": "string"
          },
          "version_id": {
            "type": "string"
          },
          "employee": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "email": {
                "type": "string"
              }
            }
          },
          "source_type": {
            "type": "string",
            "enum": [
              "all",
              "department",
              "role",
              "employee",
              "replacement"
            ]
          },
          "source_id": {
            "type": "string"
          },
          "acknowledgement_required": {
            "type": "boolean"
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "completed"
            ]
          },
          "assigned_by": {
            "type": "string"
          },
          "assigned_at": {
            "type": "string",
            "format": "date-time"
          },
          "completed_at": {
            "type": "string",
            "format": "date-time"
          },
          "acknowledgement": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "state",
              "acknowledged_at"
            ],
            "properties": {
              "state": {
                "type": "string",
                "enum": [
                  "acknowledged"
                ]
              },
              "acknowledged_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      },
      "HrDocumentAssignmentListResult": {
        "title": "HrDocumentAssignmentListResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items",
          "total",
          "skip",
          "limit"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HrDocumentAssignmentItem"
            }
          },
          "total": {
            "type": "integer",
            "minimum": 0
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        }
      },
      "HrDocumentReminderResult": {
        "title": "HrDocumentReminderResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "version_id",
          "created_count",
          "skipped_count"
        ],
        "properties": {
          "version_id": {
            "type": "string"
          },
          "created_count": {
            "type": "integer",
            "minimum": 0
          },
          "skipped_count": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "HrDocumentReminderBody": {
        "title": "HrDocumentReminderBody",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "client_mutation_id",
          "version_id"
        ],
        "properties": {
          "client_mutation_id": {
            "type": "string",
            "format": "uuid"
          },
          "version_id": {
            "type": "string"
          },
          "employee_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PublishHrDocumentResult": {
        "title": "PublishHrDocumentResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "document",
          "version",
          "assignment_summary"
        ],
        "properties": {
          "document": {
            "$ref": "#/components/schemas/HrDocument"
          },
          "version": {
            "$ref": "#/components/schemas/HrDocumentVersion"
          },
          "assignment_summary": {
            "$ref": "#/components/schemas/AssignmentSummary"
          }
        }
      },
      "PublishHrDocumentBody": {
        "title": "PublishHrDocumentBody",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "client_mutation_id"
        ],
        "properties": {
          "client_mutation_id": {
            "type": "string",
            "format": "uuid"
          },
          "audience": {
            "title": "AudienceSelector",
            "oneOf": [
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "all"
                    ]
                  }
                }
              },
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "type",
                  "department_id"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "department"
                    ]
                  },
                  "department_id": {
                    "type": "string"
                  }
                }
              },
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "type",
                  "role_id"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "role"
                    ]
                  },
                  "role_id": {
                    "type": "string"
                  }
                }
              },
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "type",
                  "employee_ids"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "employees"
                    ]
                  },
                  "employee_ids": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            ]
          }
        }
      },
      "DeleteHrDocumentResult": {
        "title": "DeleteHrDocumentResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "UploadHrDocumentVersionBody": {
        "title": "UploadHrDocumentVersionBody",
        "type": "object",
        "description": "Both multipart properties are required exactly once and are enforced by the upload handler.",
        "properties": {
          "file": {
            "type": "string",
            "format": "binary",
            "description": "Required exactly once: the HR document file to upload."
          },
          "acknowledgement_required": {
            "type": "string",
            "enum": [
              "true",
              "false"
            ],
            "description": "Required exactly once: text must be exactly true or false."
          }
        }
      },
      "HrDocumentAuditEvent": {
        "title": "HrDocumentAuditEvent",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "event",
          "actor_user_id",
          "occurred_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "document_id": {
            "type": "string"
          },
          "version_id": {
            "type": "string"
          },
          "assignment_id": {
            "type": "string"
          },
          "event": {
            "type": "string",
            "enum": [
              "document_created",
              "version_uploaded",
              "version_published",
              "recipients_assigned",
              "document_archived",
              "reminder_requested",
              "document_acknowledged",
              "mutation_failed"
            ]
          },
          "actor_user_id": {
            "type": "string"
          },
          "occurred_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "HrDocumentDetail": {
        "title": "HrDocumentDetail",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "document",
          "versions",
          "assignment_summary",
          "audit_events"
        ],
        "properties": {
          "document": {
            "$ref": "#/components/schemas/HrDocument"
          },
          "versions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HrDocumentVersion"
            }
          },
          "assignment_summary": {
            "$ref": "#/components/schemas/AssignmentSummary"
          },
          "audit_events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HrDocumentAuditEvent"
            },
            "maxItems": 100
          }
        }
      },
      "CreateHrDocumentBody": {
        "title": "CreateHrDocumentBody",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotel_id",
          "name"
        ],
        "properties": {
          "hotel_id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "folder": {
            "type": "string"
          }
        }
      },
      "HrDocumentSummary": {
        "title": "HrDocumentSummary",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "document",
          "assignment_summary"
        ],
        "properties": {
          "document": {
            "$ref": "#/components/schemas/HrDocument"
          },
          "current_version": {
            "$ref": "#/components/schemas/HrDocumentVersion"
          },
          "assignment_summary": {
            "$ref": "#/components/schemas/AssignmentSummary"
          }
        }
      },
      "HrDocumentListResult": {
        "title": "HrDocumentListResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items",
          "total",
          "skip",
          "limit"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HrDocumentSummary"
            }
          },
          "total": {
            "type": "integer",
            "minimum": 0
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        }
      },
      "LeaveCapabilityChange": {
        "title": "LeaveCapabilityChange",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "revision",
          "previousEnabled",
          "enabled",
          "changedAt",
          "actorUserId",
          "reason",
          "clientMutationId",
          "readinessFingerprint"
        ],
        "properties": {
          "revision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "previousEnabled": {
            "type": "boolean"
          },
          "enabled": {
            "type": "boolean"
          },
          "changedAt": {
            "type": "string",
            "format": "date-time"
          },
          "actorUserId": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          },
          "readinessFingerprint": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "UpdateLeaveCapabilityResponse": {
        "title": "UpdateLeaveCapabilityResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "replayed",
          "capability",
          "change"
        ],
        "properties": {
          "replayed": {
            "type": "boolean"
          },
          "capability": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "enabled",
              "revision",
              "changedAt"
            ],
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "revision": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "changedAt": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "change": {
            "$ref": "#/components/schemas/LeaveCapabilityChange"
          }
        }
      },
      "LeaveCapabilityError": {
        "title": "LeaveCapabilityError",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "statusCode",
              "name",
              "message",
              "details"
            ],
            "properties": {
              "statusCode": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "code",
                  "retriable",
                  "context"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "retriable": {
                    "type": "boolean"
                  },
                  "context": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "hotelId": {
                        "type": "string"
                      },
                      "currentEnabled": {
                        "type": "boolean"
                      },
                      "currentRevision": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      },
                      "currentReadinessFingerprint": {
                        "type": "string"
                      },
                      "blockerCodes": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "UpdateLeaveCapabilityRequest": {
        "title": "UpdateLeaveCapabilityRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "enabled",
          "expectedEnabled",
          "expectedRevision",
          "clientMutationId",
          "reason"
        ],
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "expectedEnabled": {
            "type": "boolean"
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "readinessFingerprint": {
            "type": "string"
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          },
          "reason": {
            "type": "string",
            "minLength": 10,
            "maxLength": 500
          },
          "onboardingConfirmed": {
            "type": "boolean",
            "description": "Required and must be true when enabled is true."
          }
        }
      },
      "LeaveCapabilityCheck": {
        "title": "LeaveCapabilityCheck",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "message",
          "context"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "context": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "string",
                  "nullable": true
                }
              ]
            }
          }
        }
      },
      "LeaveCapabilityReadinessResponse": {
        "title": "LeaveCapabilityReadinessResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotel",
          "capability",
          "readiness",
          "recentChanges"
        ],
        "properties": {
          "hotel": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "timezoneArea"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "timezoneArea": {
                "type": "string",
                "nullable": true
              }
            }
          },
          "capability": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "enabled",
              "revision"
            ],
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "revision": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              }
            }
          },
          "readiness": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "ready",
              "fingerprint",
              "evaluatedAt",
              "blockers",
              "advisories"
            ],
            "properties": {
              "ready": {
                "type": "boolean"
              },
              "fingerprint": {
                "type": "string"
              },
              "evaluatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "blockers": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LeaveCapabilityCheck"
                }
              },
              "advisories": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LeaveCapabilityCheck"
                }
              }
            }
          },
          "recentChanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LeaveCapabilityChange"
            }
          }
        }
      },
      "LeaveBalancePeriodResponse": {
        "title": "LeaveBalancePeriodResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "periodId",
          "periodStart",
          "periodEnd",
          "allowanceUnits",
          "manualAdjustmentUnits",
          "approvedUpcomingUnits",
          "takenUnits",
          "availableUnits"
        ],
        "properties": {
          "periodId": {
            "type": "string"
          },
          "periodStart": {
            "type": "string",
            "format": "date"
          },
          "periodEnd": {
            "type": "string",
            "format": "date"
          },
          "allowanceUnits": {
            "type": "integer"
          },
          "manualAdjustmentUnits": {
            "type": "integer"
          },
          "approvedUpcomingUnits": {
            "type": "integer"
          },
          "takenUnits": {
            "type": "integer"
          },
          "availableUnits": {
            "type": "integer"
          }
        }
      },
      "LeaveBalanceSummaryResponse": {
        "title": "LeaveBalanceSummaryResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "tracksBalance",
          "accountId",
          "employeeId",
          "leaveTypeId",
          "revision",
          "periods"
        ],
        "properties": {
          "tracksBalance": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "accountId": {
            "type": "string"
          },
          "employeeId": {
            "type": "string"
          },
          "leaveTypeId": {
            "type": "string"
          },
          "revision": {
            "type": "integer",
            "minimum": 0
          },
          "periods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LeaveBalancePeriodResponse"
            }
          }
        }
      },
      "LeaveCapability": {
        "title": "LeaveCapability",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "enabled"
        ],
        "properties": {
          "enabled": {
            "type": "boolean"
          }
        }
      },
      "LeaveBalanceFoundationCommandResult": {
        "title": "LeaveBalanceFoundationCommandResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "item",
          "replayed",
          "capability"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/LeaveBalanceSummaryResponse"
          },
          "replayed": {
            "type": "boolean"
          },
          "capability": {
            "$ref": "#/components/schemas/LeaveCapability"
          }
        }
      },
      "AdjustLeaveBalanceRequest": {
        "title": "AdjustLeaveBalanceRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "periodId",
          "expectedAccountRevision",
          "units",
          "reason",
          "clientMutationId"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "periodId": {
            "type": "string"
          },
          "expectedAccountRevision": {
            "type": "integer",
            "minimum": 0
          },
          "units": {
            "type": "integer"
          },
          "reason": {
            "type": "string",
            "minLength": 1
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "ManagerLeaveBalanceEntryResponse": {
        "title": "ManagerLeaveBalanceEntryResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "accountId",
          "periodId",
          "requestId",
          "requestRevision",
          "entryType",
          "signedUnits",
          "beforeAccountRevision",
          "afterAccountRevision",
          "occurredAt",
          "actorUserId",
          "adjustmentReason"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          },
          "periodId": {
            "type": "string"
          },
          "requestId": {
            "type": "string",
            "nullable": true
          },
          "requestRevision": {
            "type": "integer",
            "nullable": true
          },
          "entryType": {
            "type": "string",
            "enum": [
              "period_opened",
              "allowance_changed",
              "manual_adjustment",
              "leave_approved",
              "leave_taken",
              "leave_cancelled",
              "leave_reversed",
              "leave_corrected"
            ]
          },
          "signedUnits": {
            "type": "integer"
          },
          "beforeAccountRevision": {
            "type": "integer",
            "minimum": 0
          },
          "afterAccountRevision": {
            "type": "integer",
            "minimum": 0
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          },
          "actorUserId": {
            "type": "string",
            "nullable": true
          },
          "adjustmentReason": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ManagerLeaveBalanceLedgerResponse": {
        "title": "ManagerLeaveBalanceLedgerResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items",
          "total",
          "skip",
          "limit",
          "capability"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ManagerLeaveBalanceEntryResponse"
            }
          },
          "total": {
            "type": "integer",
            "minimum": 0
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1
          },
          "capability": {
            "$ref": "#/components/schemas/LeaveCapability"
          }
        }
      },
      "OpenLeaveBalancePeriodRequest": {
        "title": "OpenLeaveBalancePeriodRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "employeeId",
          "leaveTypeId",
          "periodStart",
          "periodEnd",
          "allowanceUnits",
          "expectedAccountRevision",
          "reason",
          "clientMutationId"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "employeeId": {
            "type": "string"
          },
          "leaveTypeId": {
            "type": "string"
          },
          "periodStart": {
            "type": "string",
            "format": "date"
          },
          "periodEnd": {
            "type": "string",
            "format": "date"
          },
          "allowanceUnits": {
            "type": "integer",
            "minimum": 0
          },
          "expectedAccountRevision": {
            "type": "integer",
            "minimum": 0
          },
          "reason": {
            "type": "string",
            "minLength": 1
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "LeaveUsageSummaryResponse": {
        "title": "LeaveUsageSummaryResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "tracksBalance",
          "leaveType",
          "approvedUpcomingUnits",
          "takenUnits"
        ],
        "properties": {
          "tracksBalance": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "leaveType": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "approvedUpcomingUnits": {
            "type": "integer"
          },
          "takenUnits": {
            "type": "integer"
          }
        }
      },
      "LeaveBalanceListResponse": {
        "title": "LeaveBalanceListResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items",
          "total",
          "skip",
          "limit",
          "capability"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LeaveBalanceSummaryResponse"
                },
                {
                  "$ref": "#/components/schemas/LeaveUsageSummaryResponse"
                }
              ]
            }
          },
          "total": {
            "type": "integer",
            "minimum": 0
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1
          },
          "capability": {
            "$ref": "#/components/schemas/LeaveCapability"
          }
        }
      },
      "WorkContractPeriodResponse": {
        "title": "WorkContractPeriodResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "periodId",
          "effectiveFrom",
          "effectiveTo",
          "normalWeeklyPaidMinutes",
          "contractWorkingDays"
        ],
        "properties": {
          "periodId": {
            "type": "string"
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date"
          },
          "effectiveTo": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "normalWeeklyPaidMinutes": {
            "type": "integer",
            "minimum": 1
          },
          "contractWorkingDays": {
            "type": "array",
            "minItems": 1,
            "uniqueItems": true,
            "items": {
              "type": "integer",
              "minimum": 1,
              "maximum": 7
            }
          }
        }
      },
      "WorkContractTimelineResponse": {
        "title": "WorkContractTimelineResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "employeeId",
          "revision",
          "periods"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "employeeId": {
            "type": "string"
          },
          "revision": {
            "type": "integer",
            "minimum": 0
          },
          "periods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkContractPeriodResponse"
            }
          }
        }
      },
      "WorkContractFoundationCommandResult": {
        "title": "WorkContractFoundationCommandResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "item",
          "replayed",
          "capability"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/WorkContractTimelineResponse"
          },
          "replayed": {
            "type": "boolean"
          },
          "capability": {
            "$ref": "#/components/schemas/LeaveCapability"
          }
        }
      },
      "PutWorkContractTimelineRequest": {
        "title": "PutWorkContractTimelineRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "expectedRevision",
          "periods",
          "clientMutationId"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0
          },
          "periods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkContractPeriodResponse"
            }
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "LeaveFoundationCommandStatus": {
        "title": "LeaveFoundationCommandStatus",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "commandId",
          "hotelId",
          "operation",
          "state",
          "materialized",
          "reconcileStatus",
          "repairGeneration",
          "locksHeld",
          "steps"
        ],
        "oneOf": [
          {
            "required": [
              "cleanupStatus",
              "cleanupAttemptCount",
              "cleanupDueAt",
              "cleanupStepKey"
            ],
            "properties": {
              "state": {
                "type": "string",
                "enum": [
                  "claimed"
                ]
              }
            }
          },
          {
            "properties": {
              "state": {
                "type": "string",
                "enum": [
                  "committed",
                  "failed"
                ]
              }
            }
          }
        ],
        "properties": {
          "commandId": {
            "type": "string"
          },
          "hotelId": {
            "type": "string"
          },
          "operation": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "enum": [
              "claimed",
              "committed",
              "failed"
            ]
          },
          "materialized": {
            "type": "boolean"
          },
          "reconcileStatus": {
            "type": "string",
            "enum": [
              "pending",
              "retry_wait",
              "repair_required",
              "repairing",
              "complete"
            ]
          },
          "repairGeneration": {
            "type": "integer",
            "minimum": 0
          },
          "locksHeld": {
            "type": "integer",
            "minimum": 0
          },
          "cleanupStatus": {
            "type": "string",
            "enum": [
              "pending",
              "retry_wait",
              "repair_required",
              "repairing",
              "complete"
            ]
          },
          "cleanupAttemptCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 8
          },
          "cleanupDueAt": {
            "type": "string",
            "format": "date-time"
          },
          "cleanupLastErrorCode": {
            "type": "string"
          },
          "cleanupLastErrorAt": {
            "type": "string",
            "format": "date-time"
          },
          "cleanupRepairRequiredAt": {
            "type": "string",
            "format": "date-time"
          },
          "cleanupStepKey": {
            "type": "string"
          },
          "cleanupAlertKey": {
            "type": "string"
          },
          "steps": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "stepKey",
                "targetType",
                "targetId",
                "status",
                "attemptCount"
              ],
              "properties": {
                "stepKey": {
                  "type": "string"
                },
                "targetType": {
                  "type": "string"
                },
                "targetId": {
                  "type": "string"
                },
                "targetRevision": {
                  "type": "integer"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "retry_wait",
                    "repair_required",
                    "repairing",
                    "complete"
                  ]
                },
                "attemptCount": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 8
                },
                "lastErrorCode": {
                  "type": "string"
                },
                "lastErrorAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "nextAttemptAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "repairRequiredAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "repairAlertKey": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "ResumeLeaveFoundationRepairRequest": {
        "title": "ResumeLeaveFoundationRepairRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "expectedRepairGeneration"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "expectedRepairGeneration": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "SelfLeaveBalanceEntryResponse": {
        "title": "SelfLeaveBalanceEntryResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "accountId",
          "periodId",
          "requestId",
          "requestRevision",
          "entryType",
          "signedUnits",
          "beforeAccountRevision",
          "afterAccountRevision",
          "occurredAt"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          },
          "periodId": {
            "type": "string"
          },
          "requestId": {
            "type": "string",
            "nullable": true
          },
          "requestRevision": {
            "type": "integer",
            "nullable": true
          },
          "entryType": {
            "type": "string",
            "enum": [
              "period_opened",
              "allowance_changed",
              "manual_adjustment",
              "leave_approved",
              "leave_taken",
              "leave_cancelled",
              "leave_reversed",
              "leave_corrected"
            ]
          },
          "signedUnits": {
            "type": "integer"
          },
          "beforeAccountRevision": {
            "type": "integer",
            "minimum": 0
          },
          "afterAccountRevision": {
            "type": "integer",
            "minimum": 0
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "SelfLeaveBalanceLedgerResponse": {
        "title": "SelfLeaveBalanceLedgerResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items",
          "total",
          "skip",
          "limit",
          "capability"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SelfLeaveBalanceEntryResponse"
            }
          },
          "total": {
            "type": "integer",
            "minimum": 0
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1
          },
          "capability": {
            "$ref": "#/components/schemas/LeaveCapability"
          }
        }
      },
      "SelfLeaveBalanceSummaryResponse": {
        "title": "SelfLeaveBalanceSummaryResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "tracksBalance",
          "accountId",
          "leaveTypeId",
          "revision",
          "periods"
        ],
        "properties": {
          "tracksBalance": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "accountId": {
            "type": "string"
          },
          "leaveTypeId": {
            "type": "string"
          },
          "revision": {
            "type": "integer",
            "minimum": 0
          },
          "periods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LeaveBalancePeriodResponse"
            }
          }
        }
      },
      "SelfLeaveBalanceListResponse": {
        "title": "SelfLeaveBalanceListResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items",
          "total",
          "skip",
          "limit",
          "capability"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/SelfLeaveBalanceSummaryResponse"
                },
                {
                  "$ref": "#/components/schemas/LeaveUsageSummaryResponse"
                }
              ]
            }
          },
          "total": {
            "type": "integer",
            "minimum": 0
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1
          },
          "capability": {
            "$ref": "#/components/schemas/LeaveCapability"
          }
        }
      },
      "LeaveIntegrationResponse": {
        "title": "LeaveIntegrationResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "state",
          "scheduleState",
          "timesheetState",
          "failureCode"
        ],
        "properties": {
          "state": {
            "type": "string",
            "enum": [
              "not_required",
              "integration_blocked",
              "staged",
              "applied",
              "failed",
              "source_drift"
            ]
          },
          "scheduleState": {
            "type": "string",
            "enum": [
              "not_required",
              "integration_blocked",
              "staged",
              "applied",
              "failed",
              "source_drift"
            ]
          },
          "timesheetState": {
            "type": "string",
            "enum": [
              "not_required",
              "integration_blocked",
              "staged",
              "applied",
              "failed",
              "source_drift"
            ]
          },
          "failureCode": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "LeaveBalanceImpactResponse": {
        "title": "LeaveBalanceImpactResponse",
        "type": "object",
        "nullable": true,
        "additionalProperties": false,
        "required": [
          "accountId",
          "accountRevision",
          "requestedUnits",
          "availableUnits",
          "shortfallUnits",
          "allocations"
        ],
        "properties": {
          "accountId": {
            "type": "string",
            "nullable": true
          },
          "accountRevision": {
            "type": "integer",
            "nullable": true
          },
          "requestedUnits": {
            "type": "number"
          },
          "availableUnits": {
            "type": "number",
            "nullable": true
          },
          "shortfallUnits": {
            "type": "number"
          },
          "allocations": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "periodId",
                "units"
              ],
              "properties": {
                "periodId": {
                  "type": "string"
                },
                "units": {
                  "type": "number"
                }
              }
            }
          }
        }
      },
      "SelfLeaveRequestDetailResponse": {
        "title": "SelfLeaveRequestDetailResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "revision",
          "hotelId",
          "leaveType",
          "unit",
          "startDate",
          "endDate",
          "unavailableStartLocalTime",
          "unavailableEndLocalTime",
          "timezoneArea",
          "status",
          "requestedUnits",
          "shortfallUnits",
          "approvedUnits",
          "takenUnits",
          "createdAt",
          "updatedAt",
          "decidedAt",
          "replacesRequestId",
          "replacedByRequestId",
          "integration",
          "actions",
          "requestReason",
          "cancellationReason",
          "employeeMessage",
          "balance",
          "audit"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "revision": {
            "type": "integer"
          },
          "hotelId": {
            "type": "string"
          },
          "leaveType": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "unit": {
            "type": "string",
            "enum": [
              "full_day",
              "half_day"
            ]
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          },
          "unavailableStartLocalTime": {
            "type": "string",
            "nullable": true,
            "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
          },
          "unavailableEndLocalTime": {
            "type": "string",
            "nullable": true,
            "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
          },
          "timezoneArea": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "approved",
              "cancellation_requested",
              "rejected",
              "withdrawn",
              "cancelled",
              "reversed",
              "corrected"
            ]
          },
          "requestedUnits": {
            "type": "number"
          },
          "shortfallUnits": {
            "type": "number"
          },
          "approvedUnits": {
            "type": "number"
          },
          "takenUnits": {
            "type": "number"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "decidedAt": {
            "type": "string",
            "nullable": true
          },
          "replacesRequestId": {
            "type": "string",
            "nullable": true
          },
          "replacedByRequestId": {
            "type": "string",
            "nullable": true
          },
          "integration": {
            "$ref": "#/components/schemas/LeaveIntegrationResponse"
          },
          "actions": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "canWithdraw",
              "canRequestCancellation"
            ],
            "properties": {
              "canWithdraw": {
                "type": "boolean"
              },
              "canRequestCancellation": {
                "type": "boolean"
              }
            }
          },
          "requestReason": {
            "type": "string",
            "nullable": true
          },
          "cancellationReason": {
            "type": "string",
            "nullable": true
          },
          "employeeMessage": {
            "type": "string",
            "nullable": true
          },
          "balance": {
            "$ref": "#/components/schemas/LeaveBalanceImpactResponse"
          },
          "audit": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "eventName",
                "requestRevision",
                "occurredAt",
                "visibility",
                "reason"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "eventName": {
                  "type": "string"
                },
                "requestRevision": {
                  "type": "integer"
                },
                "occurredAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "visibility": {
                  "type": "string",
                  "enum": [
                    "employee",
                    "manager_private",
                    "system"
                  ]
                },
                "reason": {
                  "type": "string",
                  "nullable": true
                }
              }
            }
          }
        }
      },
      "SelfLeaveCommandResult": {
        "title": "SelfLeaveCommandResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "item",
          "balance",
          "integration",
          "replayed",
          "capability"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/SelfLeaveRequestDetailResponse"
          },
          "balance": {
            "$ref": "#/components/schemas/LeaveBalanceImpactResponse"
          },
          "integration": {
            "$ref": "#/components/schemas/LeaveIntegrationResponse"
          },
          "replayed": {
            "type": "boolean"
          },
          "capability": {
            "$ref": "#/components/schemas/LeaveCapability"
          }
        }
      },
      "Phase2LoopBackError": {
        "title": "Phase2LoopBackError",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "statusCode",
              "name",
              "message",
              "details"
            ],
            "properties": {
              "statusCode": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "details": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "code",
                  "retriable",
                  "context"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "enum": [
                      "LEAVE_CAPABILITY_DISABLED",
                      "LEAVE_INTEGRATION_NOT_READY",
                      "LEAVE_INVALID_REQUEST",
                      "LEAVE_FORBIDDEN",
                      "LEAVE_HOTEL_SCOPE_FORBIDDEN",
                      "LEAVE_TYPE_INACTIVE",
                      "LEAVE_DATE_UNAVAILABLE",
                      "LEAVE_INSUFFICIENT_BALANCE",
                      "LEAVE_REVISION_CONFLICT",
                      "LEAVE_IDEMPOTENCY_KEY_REUSED",
                      "LEAVE_INVALID_TRANSITION",
                      "LEAVE_TARGET_BUSY",
                      "LEAVE_REFERENCE_MISSING",
                      "LEAVE_PROJECTION_RETRY",
                      "CROSS_PROPERTY_LEAVE_AUTHORITY_REQUIRED",
                      "SCHEDULE_EMPLOYEE_UNAVAILABLE",
                      "SCHEDULE_RELEASE_CONFLICT",
                      "TIMESHEET_REOPEN_REQUIRED",
                      "EXPORT_NOT_FINALIZED",
                      "GROUP_UNAUTHORIZED",
                      "GROUP_CONFIGURATION_MISMATCH",
                      "GROUP_PARTIAL_APPROVAL",
                      "GROUP_UNFINALIZED_SOURCE",
                      "GROUP_DUPLICATE_SOURCE",
                      "GROUP_OVERLAPPING_INTERVAL",
                      "GROUP_INCOMPLETE_MANIFEST"
                    ]
                  },
                  "retriable": {
                    "type": "boolean"
                  },
                  "context": {
                    "type": "object",
                    "additionalProperties": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "number"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      },
      "RequestLeaveCancellationRequest": {
        "title": "RequestLeaveCancellationRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "expectedRevision",
          "clientMutationId",
          "reason"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          },
          "reason": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "WithdrawLeaveRequest": {
        "title": "WithdrawLeaveRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "expectedRevision",
          "clientMutationId"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "CreateLeaveRequest": {
        "title": "CreateLeaveRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "leaveTypeId",
          "unit",
          "startDate",
          "endDate",
          "clientMutationId"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "leaveTypeId": {
            "type": "string"
          },
          "unit": {
            "type": "string",
            "enum": [
              "full_day",
              "half_day"
            ]
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          },
          "unavailableStartLocalTime": {
            "type": "string",
            "nullable": true,
            "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
          },
          "unavailableEndLocalTime": {
            "type": "string",
            "nullable": true,
            "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
          },
          "reason": {
            "type": "string"
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "SelfLeaveRequestListResponse": {
        "title": "SelfLeaveRequestListResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items",
          "total",
          "skip",
          "limit",
          "capability"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SelfLeaveRequestDetailResponse"
            }
          },
          "total": {
            "type": "integer",
            "minimum": 0
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1
          },
          "capability": {
            "$ref": "#/components/schemas/LeaveCapability"
          }
        }
      },
      "LeaveTypeResponse": {
        "title": "LeaveTypeResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "hotelId",
          "name",
          "color",
          "includeInTimesheet",
          "includeInStatistics",
          "includeInUpcomingShifts",
          "showOnDashboard",
          "showOnAllocation",
          "requestable",
          "tracksBalance",
          "payrollCategory",
          "negativeBalanceAllowed",
          "systemKey",
          "revision"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "hotelId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "includeInTimesheet": {
            "type": "boolean"
          },
          "includeInStatistics": {
            "type": "boolean"
          },
          "includeInUpcomingShifts": {
            "type": "boolean"
          },
          "showOnDashboard": {
            "type": "boolean"
          },
          "showOnAllocation": {
            "type": "boolean"
          },
          "requestable": {
            "type": "boolean"
          },
          "tracksBalance": {
            "type": "boolean"
          },
          "payrollCategory": {
            "type": "string",
            "enum": [
              "paid_leave",
              "unpaid_leave"
            ],
            "nullable": true
          },
          "negativeBalanceAllowed": {
            "type": "boolean"
          },
          "systemKey": {
            "type": "string",
            "enum": [
              "PTO",
              "UTO"
            ],
            "nullable": true
          },
          "revision": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "LeaveTypeListResponse": {
        "title": "LeaveTypeListResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items",
          "total",
          "skip",
          "limit",
          "capability"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LeaveTypeResponse"
            }
          },
          "total": {
            "type": "integer",
            "minimum": 0
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1
          },
          "capability": {
            "$ref": "#/components/schemas/LeaveCapability"
          }
        }
      },
      "LeaveApprovalPreviewResponse": {
        "title": "LeaveApprovalPreviewResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "previewToken",
          "expiresAt",
          "requestRevision",
          "affectedWorkshifts",
          "balance",
          "blockers"
        ],
        "properties": {
          "previewToken": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "requestRevision": {
            "type": "integer"
          },
          "affectedWorkshifts": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "hotelId",
                "scheduleRevision",
                "releaseRevision"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "hotelId": {
                  "type": "string"
                },
                "scheduleRevision": {
                  "type": "integer"
                },
                "releaseRevision": {
                  "type": "integer",
                  "nullable": true
                }
              }
            }
          },
          "balance": {
            "$ref": "#/components/schemas/LeaveBalanceImpactResponse"
          },
          "blockers": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "code",
                "date",
                "retriable"
              ],
              "properties": {
                "code": {
                  "type": "string"
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "retriable": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      },
      "LeaveApprovalPreviewRequest": {
        "title": "LeaveApprovalPreviewRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "expectedRevision"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "ManagerLeaveRequestDetailResponse": {
        "title": "ManagerLeaveRequestDetailResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "revision",
          "hotelId",
          "leaveType",
          "unit",
          "startDate",
          "endDate",
          "unavailableStartLocalTime",
          "unavailableEndLocalTime",
          "timezoneArea",
          "status",
          "requestedUnits",
          "shortfallUnits",
          "approvedUnits",
          "takenUnits",
          "createdAt",
          "updatedAt",
          "decidedAt",
          "replacesRequestId",
          "replacedByRequestId",
          "integration",
          "employee",
          "actions",
          "requestReason",
          "cancellationReason",
          "employeeMessage",
          "privateManagerComment",
          "balance",
          "audit"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "revision": {
            "type": "integer"
          },
          "hotelId": {
            "type": "string"
          },
          "leaveType": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "unit": {
            "type": "string",
            "enum": [
              "full_day",
              "half_day"
            ]
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          },
          "unavailableStartLocalTime": {
            "type": "string",
            "nullable": true,
            "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
          },
          "unavailableEndLocalTime": {
            "type": "string",
            "nullable": true,
            "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
          },
          "timezoneArea": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "approved",
              "cancellation_requested",
              "rejected",
              "withdrawn",
              "cancelled",
              "reversed",
              "corrected"
            ]
          },
          "requestedUnits": {
            "type": "number"
          },
          "shortfallUnits": {
            "type": "number"
          },
          "approvedUnits": {
            "type": "number"
          },
          "takenUnits": {
            "type": "number"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "decidedAt": {
            "type": "string",
            "nullable": true
          },
          "replacesRequestId": {
            "type": "string",
            "nullable": true
          },
          "replacedByRequestId": {
            "type": "string",
            "nullable": true
          },
          "integration": {
            "$ref": "#/components/schemas/LeaveIntegrationResponse"
          },
          "employee": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "actions": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "canApprove",
              "canReject",
              "canCancel",
              "canConfirmCancellation",
              "canReverse",
              "canCorrect",
              "canAdjustBalance",
              "canConfigureLeaveType",
              "canEditContract",
              "canViewRequestAudit",
              "canViewBalanceLedger"
            ],
            "properties": {
              "canApprove": {
                "type": "boolean"
              },
              "canReject": {
                "type": "boolean"
              },
              "canCancel": {
                "type": "boolean"
              },
              "canConfirmCancellation": {
                "type": "boolean"
              },
              "canReverse": {
                "type": "boolean"
              },
              "canCorrect": {
                "type": "boolean"
              },
              "canAdjustBalance": {
                "type": "boolean"
              },
              "canConfigureLeaveType": {
                "type": "boolean"
              },
              "canEditContract": {
                "type": "boolean"
              },
              "canViewRequestAudit": {
                "type": "boolean"
              },
              "canViewBalanceLedger": {
                "type": "boolean"
              }
            }
          },
          "requestReason": {
            "type": "string",
            "nullable": true
          },
          "cancellationReason": {
            "type": "string",
            "nullable": true
          },
          "employeeMessage": {
            "type": "string",
            "nullable": true
          },
          "privateManagerComment": {
            "type": "string",
            "nullable": true
          },
          "balance": {
            "$ref": "#/components/schemas/LeaveBalanceImpactResponse"
          },
          "audit": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "eventName",
                "requestRevision",
                "actor",
                "occurredAt",
                "visibility",
                "reason"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "eventName": {
                  "type": "string"
                },
                "requestRevision": {
                  "type": "integer"
                },
                "actor": {
                  "type": "object",
                  "nullable": true,
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "name"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    }
                  }
                },
                "occurredAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "visibility": {
                  "type": "string",
                  "enum": [
                    "employee",
                    "manager_private",
                    "system"
                  ]
                },
                "reason": {
                  "type": "string",
                  "nullable": true
                }
              }
            }
          }
        }
      },
      "ManagerLeaveCommandResult": {
        "title": "ManagerLeaveCommandResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "item",
          "balance",
          "integration",
          "replayed",
          "capability"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/ManagerLeaveRequestDetailResponse"
          },
          "balance": {
            "$ref": "#/components/schemas/LeaveBalanceImpactResponse"
          },
          "integration": {
            "$ref": "#/components/schemas/LeaveIntegrationResponse"
          },
          "replayed": {
            "type": "boolean"
          },
          "capability": {
            "$ref": "#/components/schemas/LeaveCapability"
          }
        }
      },
      "ApproveLeaveRequest": {
        "title": "ApproveLeaveRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "expectedRevision",
          "clientMutationId",
          "previewToken"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          },
          "previewToken": {
            "type": "string",
            "minLength": 1
          },
          "employeeMessage": {
            "type": "string",
            "nullable": true
          },
          "privateManagerComment": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CancelLeaveRequest": {
        "title": "CancelLeaveRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "expectedRevision",
          "clientMutationId"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          },
          "employeeMessage": {
            "type": "string",
            "nullable": true
          },
          "privateManagerComment": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CorrectLeaveRequest": {
        "title": "CorrectLeaveRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "expectedRevision",
          "clientMutationId",
          "reason",
          "replacement"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          },
          "reason": {
            "type": "string",
            "minLength": 1
          },
          "replacement": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "leaveTypeId",
              "unit",
              "startDate",
              "endDate"
            ],
            "properties": {
              "leaveTypeId": {
                "type": "string"
              },
              "unit": {
                "type": "string",
                "enum": [
                  "full_day",
                  "half_day"
                ]
              },
              "startDate": {
                "type": "string",
                "format": "date"
              },
              "endDate": {
                "type": "string",
                "format": "date"
              },
              "unavailableStartLocalTime": {
                "type": "string",
                "nullable": true
              },
              "unavailableEndLocalTime": {
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "RejectLeaveRequest": {
        "title": "RejectLeaveRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "expectedRevision",
          "clientMutationId"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          },
          "employeeMessage": {
            "type": "string",
            "nullable": true
          },
          "privateManagerComment": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ReverseLeaveRequest": {
        "title": "ReverseLeaveRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "expectedRevision",
          "clientMutationId",
          "reason"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          },
          "reason": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "ManagerLeaveRequestSummaryResponse": {
        "title": "ManagerLeaveRequestSummaryResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "revision",
          "hotelId",
          "leaveType",
          "unit",
          "startDate",
          "endDate",
          "unavailableStartLocalTime",
          "unavailableEndLocalTime",
          "timezoneArea",
          "status",
          "requestedUnits",
          "shortfallUnits",
          "approvedUnits",
          "takenUnits",
          "createdAt",
          "updatedAt",
          "decidedAt",
          "replacesRequestId",
          "replacedByRequestId",
          "integration",
          "employee",
          "actions"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "revision": {
            "type": "integer"
          },
          "hotelId": {
            "type": "string"
          },
          "leaveType": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "unit": {
            "type": "string",
            "enum": [
              "full_day",
              "half_day"
            ]
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          },
          "unavailableStartLocalTime": {
            "type": "string",
            "nullable": true,
            "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
          },
          "unavailableEndLocalTime": {
            "type": "string",
            "nullable": true,
            "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
          },
          "timezoneArea": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "approved",
              "cancellation_requested",
              "rejected",
              "withdrawn",
              "cancelled",
              "reversed",
              "corrected"
            ]
          },
          "requestedUnits": {
            "type": "number"
          },
          "shortfallUnits": {
            "type": "number"
          },
          "approvedUnits": {
            "type": "number"
          },
          "takenUnits": {
            "type": "number"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "decidedAt": {
            "type": "string",
            "nullable": true
          },
          "replacesRequestId": {
            "type": "string",
            "nullable": true
          },
          "replacedByRequestId": {
            "type": "string",
            "nullable": true
          },
          "integration": {
            "$ref": "#/components/schemas/LeaveIntegrationResponse"
          },
          "employee": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "actions": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "canApprove",
              "canReject",
              "canCancel",
              "canConfirmCancellation",
              "canReverse",
              "canCorrect",
              "canAdjustBalance",
              "canConfigureLeaveType",
              "canEditContract",
              "canViewRequestAudit",
              "canViewBalanceLedger"
            ],
            "properties": {
              "canApprove": {
                "type": "boolean"
              },
              "canReject": {
                "type": "boolean"
              },
              "canCancel": {
                "type": "boolean"
              },
              "canConfirmCancellation": {
                "type": "boolean"
              },
              "canReverse": {
                "type": "boolean"
              },
              "canCorrect": {
                "type": "boolean"
              },
              "canAdjustBalance": {
                "type": "boolean"
              },
              "canConfigureLeaveType": {
                "type": "boolean"
              },
              "canEditContract": {
                "type": "boolean"
              },
              "canViewRequestAudit": {
                "type": "boolean"
              },
              "canViewBalanceLedger": {
                "type": "boolean"
              }
            }
          }
        }
      },
      "ManagerLeaveRequestListResponse": {
        "title": "ManagerLeaveRequestListResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items",
          "total",
          "skip",
          "limit",
          "capability"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ManagerLeaveRequestSummaryResponse"
            }
          },
          "total": {
            "type": "integer",
            "minimum": 0
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1
          },
          "capability": {
            "$ref": "#/components/schemas/LeaveCapability"
          }
        }
      },
      "ScheduleReleaseDetailResponse": {
        "title": "ScheduleReleaseDetailResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "revision",
          "hotelId",
          "workshiftId",
          "date",
          "startAt",
          "endAt",
          "department",
          "role",
          "coverageState"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "revision": {
            "type": "integer",
            "minimum": 0
          },
          "hotelId": {
            "type": "string"
          },
          "workshiftId": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "startAt": {
            "type": "string",
            "format": "date-time"
          },
          "endAt": {
            "type": "string",
            "format": "date-time"
          },
          "department": {
            "nullable": true,
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "role": {
            "nullable": true,
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "coverageState": {
            "type": "string",
            "enum": [
              "open_for_cover",
              "claimed",
              "leave_cancelled_open"
            ]
          }
        }
      },
      "LeaveTypeFoundationCommandResult": {
        "title": "LeaveTypeFoundationCommandResult",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "item",
          "replayed",
          "capability"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/LeaveTypeResponse"
          },
          "replayed": {
            "type": "boolean"
          },
          "capability": {
            "$ref": "#/components/schemas/LeaveCapability"
          }
        }
      },
      "ScheduleShiftTypeFields": {
        "title": "ScheduleShiftTypeFields",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "color",
          "includeInTimesheet",
          "includeInStatistics",
          "includeInUpcomingShifts",
          "showOnDashboard",
          "showOnAllocation"
        ],
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1
          },
          "color": {
            "type": "string",
            "minLength": 1
          },
          "includeInTimesheet": {
            "type": "boolean"
          },
          "includeInStatistics": {
            "type": "boolean"
          },
          "includeInUpcomingShifts": {
            "type": "boolean"
          },
          "showOnDashboard": {
            "type": "boolean"
          },
          "showOnAllocation": {
            "type": "boolean"
          }
        }
      },
      "LeavePolicyFields": {
        "title": "LeavePolicyFields",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requestable",
          "tracksBalance",
          "payrollCategory",
          "negativeBalanceAllowed",
          "systemKey"
        ],
        "properties": {
          "requestable": {
            "type": "boolean"
          },
          "tracksBalance": {
            "type": "boolean"
          },
          "payrollCategory": {
            "type": "string",
            "enum": [
              "paid_leave",
              "unpaid_leave"
            ]
          },
          "negativeBalanceAllowed": {
            "type": "boolean"
          },
          "systemKey": {
            "type": "string",
            "enum": [
              "PTO",
              "UTO"
            ],
            "nullable": true
          }
        }
      },
      "UpdateLeaveTypeRequest": {
        "title": "UpdateLeaveTypeRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "expectedRevision",
          "schedule",
          "leave",
          "clientMutationId"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0
          },
          "schedule": {
            "$ref": "#/components/schemas/ScheduleShiftTypeFields"
          },
          "leave": {
            "$ref": "#/components/schemas/LeavePolicyFields"
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "CreateLeaveTypeRequest": {
        "title": "CreateLeaveTypeRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "schedule",
          "leave",
          "clientMutationId"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "schedule": {
            "$ref": "#/components/schemas/ScheduleShiftTypeFields"
          },
          "leave": {
            "$ref": "#/components/schemas/LeavePolicyFields"
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "Notes.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "Notes.ScopeFilter"
      },
      "Notes.IncludeFilter.Items": {
        "title": "Notes.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "user"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Notes.ScopeFilter"
          }
        }
      },
      "Notes.Filter": {
        "type": "object",
        "title": "Notes.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Notes.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "text": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "room_id": {
                    "type": "boolean"
                  },
                  "entity_id": {
                    "type": "boolean"
                  },
                  "module_name": {
                    "type": "boolean"
                  },
                  "hotel_id": {
                    "type": "boolean"
                  },
                  "checklist_item_id": {
                    "type": "boolean"
                  },
                  "image": {
                    "type": "boolean"
                  },
                  "is_deleted": {
                    "type": "boolean"
                  },
                  "is_read": {
                    "type": "boolean"
                  },
                  "is_pinned": {
                    "type": "boolean"
                  },
                  "created_date": {
                    "type": "boolean"
                  },
                  "modified_date": {
                    "type": "boolean"
                  },
                  "user_id": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "text",
                    "type",
                    "room_id",
                    "entity_id",
                    "module_name",
                    "hotel_id",
                    "checklist_item_id",
                    "image",
                    "is_deleted",
                    "is_read",
                    "is_pinned",
                    "created_date",
                    "modified_date",
                    "user_id"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Notes.Fields"
          },
          "include": {
            "title": "Notes.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Notes.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Notes>"
      },
      "BasePermission.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "BasePermission.ScopeFilter"
      },
      "BasePermission.IncludeFilter.Items": {
        "title": "BasePermission.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "rolePermissions"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/BasePermission.ScopeFilter"
          }
        }
      },
      "BasePermission.Filter": {
        "type": "object",
        "title": "BasePermission.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "module_name": {
                    "type": "boolean"
                  },
                  "is_deleted": {
                    "type": "boolean"
                  },
                  "created_date": {
                    "type": "boolean"
                  },
                  "modified_date": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "title",
                    "description",
                    "module_name",
                    "is_deleted",
                    "created_date",
                    "modified_date"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "BasePermission.Fields"
          },
          "include": {
            "title": "BasePermission.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/BasePermission.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<BasePermission>"
      },
      "PingResponse": {
        "type": "object",
        "title": "PingResponse",
        "properties": {
          "greeting": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "headers": {
            "type": "object",
            "properties": {
              "Content-Type": {
                "type": "string"
              }
            },
            "additionalProperties": true
          }
        }
      },
      "Role.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "Role.ScopeFilter"
      },
      "Role.IncludeFilter.Items": {
        "title": "Role.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "requestCategories",
              "department",
              "users",
              "rolePermissions"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Role.ScopeFilter"
          }
        }
      },
      "Role.Filter": {
        "type": "object",
        "title": "Role.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "display_name": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "hotel_id": {
                    "type": "boolean"
                  },
                  "group_id": {
                    "type": "boolean"
                  },
                  "is_deleted": {
                    "type": "boolean"
                  },
                  "created_date": {
                    "type": "boolean"
                  },
                  "modified_date": {
                    "type": "boolean"
                  },
                  "index": {
                    "type": "boolean"
                  },
                  "is_deletedable": {
                    "type": "boolean"
                  },
                  "color": {
                    "type": "boolean"
                  },
                  "department_id": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "display_name",
                    "type",
                    "hotel_id",
                    "group_id",
                    "is_deleted",
                    "created_date",
                    "modified_date",
                    "index",
                    "is_deletedable",
                    "color",
                    "department_id"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Role.Fields"
          },
          "include": {
            "title": "Role.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Role.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Role>"
      },
      "Role.Filter1": {
        "type": "object",
        "title": "Role.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Role.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "display_name": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "hotel_id": {
                    "type": "boolean"
                  },
                  "group_id": {
                    "type": "boolean"
                  },
                  "is_deleted": {
                    "type": "boolean"
                  },
                  "created_date": {
                    "type": "boolean"
                  },
                  "modified_date": {
                    "type": "boolean"
                  },
                  "index": {
                    "type": "boolean"
                  },
                  "is_deletedable": {
                    "type": "boolean"
                  },
                  "color": {
                    "type": "boolean"
                  },
                  "department_id": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "display_name",
                    "type",
                    "hotel_id",
                    "group_id",
                    "is_deleted",
                    "created_date",
                    "modified_date",
                    "index",
                    "is_deletedable",
                    "color",
                    "department_id"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Role.Fields"
          },
          "include": {
            "title": "Role.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Role.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Role>"
      },
      "rooms.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "rooms.ScopeFilter"
      },
      "rooms.IncludeFilter.Items": {
        "title": "rooms.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "hotel",
              "room_status",
              "roomStatuses",
              "floor",
              "section"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/rooms.ScopeFilter"
          }
        }
      },
      "rooms.Filter": {
        "type": "object",
        "title": "rooms.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "room_number": {
                    "type": "boolean"
                  },
                  "room_name": {
                    "type": "boolean"
                  },
                  "is_double": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "desc": {
                    "type": "boolean"
                  },
                  "cost": {
                    "type": "boolean"
                  },
                  "created_at": {
                    "type": "boolean"
                  },
                  "is_cleaning": {
                    "type": "boolean"
                  },
                  "turndown_in_progress": {
                    "type": "boolean"
                  },
                  "cleaning_start_time": {
                    "type": "boolean"
                  },
                  "turndown_start_time": {
                    "type": "boolean"
                  },
                  "updated_at": {
                    "type": "boolean"
                  },
                  "deleted_at": {
                    "type": "boolean"
                  },
                  "cron_job_id": {
                    "type": "boolean"
                  },
                  "cleaning_delay": {
                    "type": "boolean"
                  },
                  "cleaning_delay_job": {
                    "type": "boolean"
                  },
                  "cleaning_time": {
                    "type": "boolean"
                  },
                  "last_cleaning_reminder_notification_sent_at": {
                    "type": "boolean"
                  },
                  "last_cleaning_reminder_notification_key": {
                    "type": "boolean"
                  },
                  "turndown_time": {
                    "type": "boolean"
                  },
                  "stayover_time": {
                    "type": "boolean"
                  },
                  "checkout_time": {
                    "type": "boolean"
                  },
                  "hotel_id": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "floor_id": {
                    "type": "boolean"
                  },
                  "section_id": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "room_number",
                    "room_name",
                    "is_double",
                    "type",
                    "desc",
                    "cost",
                    "created_at",
                    "is_cleaning",
                    "turndown_in_progress",
                    "cleaning_start_time",
                    "turndown_start_time",
                    "updated_at",
                    "deleted_at",
                    "cron_job_id",
                    "cleaning_delay",
                    "cleaning_delay_job",
                    "cleaning_time",
                    "last_cleaning_reminder_notification_sent_at",
                    "last_cleaning_reminder_notification_key",
                    "turndown_time",
                    "stayover_time",
                    "checkout_time",
                    "hotel_id",
                    "status",
                    "floor_id",
                    "section_id"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "rooms.Fields"
          },
          "include": {
            "title": "rooms.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/rooms.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Room>"
      },
      "rooms.Filter1": {
        "type": "object",
        "title": "rooms.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "rooms.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "room_number": {
                    "type": "boolean"
                  },
                  "room_name": {
                    "type": "boolean"
                  },
                  "is_double": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "desc": {
                    "type": "boolean"
                  },
                  "cost": {
                    "type": "boolean"
                  },
                  "created_at": {
                    "type": "boolean"
                  },
                  "is_cleaning": {
                    "type": "boolean"
                  },
                  "turndown_in_progress": {
                    "type": "boolean"
                  },
                  "cleaning_start_time": {
                    "type": "boolean"
                  },
                  "turndown_start_time": {
                    "type": "boolean"
                  },
                  "updated_at": {
                    "type": "boolean"
                  },
                  "deleted_at": {
                    "type": "boolean"
                  },
                  "cron_job_id": {
                    "type": "boolean"
                  },
                  "cleaning_delay": {
                    "type": "boolean"
                  },
                  "cleaning_delay_job": {
                    "type": "boolean"
                  },
                  "cleaning_time": {
                    "type": "boolean"
                  },
                  "last_cleaning_reminder_notification_sent_at": {
                    "type": "boolean"
                  },
                  "last_cleaning_reminder_notification_key": {
                    "type": "boolean"
                  },
                  "turndown_time": {
                    "type": "boolean"
                  },
                  "stayover_time": {
                    "type": "boolean"
                  },
                  "checkout_time": {
                    "type": "boolean"
                  },
                  "hotel_id": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "floor_id": {
                    "type": "boolean"
                  },
                  "section_id": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "room_number",
                    "room_name",
                    "is_double",
                    "type",
                    "desc",
                    "cost",
                    "created_at",
                    "is_cleaning",
                    "turndown_in_progress",
                    "cleaning_start_time",
                    "turndown_start_time",
                    "updated_at",
                    "deleted_at",
                    "cron_job_id",
                    "cleaning_delay",
                    "cleaning_delay_job",
                    "cleaning_time",
                    "last_cleaning_reminder_notification_sent_at",
                    "last_cleaning_reminder_notification_key",
                    "turndown_time",
                    "stayover_time",
                    "checkout_time",
                    "hotel_id",
                    "status",
                    "floor_id",
                    "section_id"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "rooms.Fields"
          },
          "include": {
            "title": "rooms.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/rooms.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Room>"
      },
      "ClaimOpenShiftResponse": {
        "title": "ClaimOpenShiftResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "workshift",
          "release",
          "replayed"
        ],
        "properties": {
          "workshift": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "user",
              "scheduleRevision",
              "coverageState"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "user": {
                "type": "string",
                "nullable": true
              },
              "scheduleRevision": {
                "type": "integer",
                "minimum": 0
              },
              "coverageState": {
                "type": "string",
                "enum": [
                  "assigned",
                  "open_for_cover"
                ]
              },
              "openShift": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "releaseId",
                  "releaseRevision",
                  "originalEmployeeId",
                  "leaveRequestId"
                ],
                "properties": {
                  "releaseId": {
                    "type": "string"
                  },
                  "releaseRevision": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "originalEmployeeId": {
                    "type": "string"
                  },
                  "leaveRequestId": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "release": {
            "$ref": "#/components/schemas/ScheduleReleaseDetailResponse"
          },
          "replayed": {
            "type": "boolean"
          }
        }
      },
      "ClaimOpenShiftRequest": {
        "title": "ClaimOpenShiftRequest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "employeeId",
          "releaseId",
          "expectedReleaseRevision",
          "expectedScheduleRevision",
          "clientMutationId"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "employeeId": {
            "type": "string"
          },
          "releaseId": {
            "type": "string"
          },
          "expectedReleaseRevision": {
            "type": "integer",
            "minimum": 0
          },
          "expectedScheduleRevision": {
            "type": "integer",
            "minimum": 0
          },
          "clientMutationId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "TimesheetReviewTotals": {
        "title": "TimesheetReviewTotals",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "scheduledMinutes",
          "actualMinutes",
          "adjustmentMinutes",
          "paidMinutes",
          "unpaidBreakMinutes",
          "overtimeMinutes"
        ],
        "properties": {
          "scheduledMinutes": {
            "type": "integer"
          },
          "actualMinutes": {
            "type": "integer"
          },
          "adjustmentMinutes": {
            "type": "integer"
          },
          "paidMinutes": {
            "type": "integer"
          },
          "unpaidBreakMinutes": {
            "type": "integer"
          },
          "overtimeMinutes": {
            "type": "integer"
          }
        }
      },
      "TimesheetPaidComponent": {
        "title": "TimesheetPaidComponent",
        "properties": {},
        "oneOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "category",
              "provenance",
              "minutes",
              "interval",
              "propertyId",
              "sourceId",
              "sourceRevision",
              "leaveRequestId",
              "leaveTypeId",
              "leaveContext"
            ],
            "properties": {
              "category": {
                "type": "string",
                "enum": [
                  "paid_leave"
                ]
              },
              "provenance": {
                "type": "string",
                "enum": [
                  "attendance",
                  "schedule",
                  "reference_day",
                  "manager_adjustment",
                  "public_holiday_rule"
                ]
              },
              "minutes": {
                "type": "integer",
                "minimum": 0
              },
              "interval": {
                "type": "object",
                "nullable": true,
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "propertyId": {
                "type": "string"
              },
              "sourceId": {
                "type": "string"
              },
              "sourceRevision": {
                "type": "integer",
                "minimum": 0
              },
              "leaveRequestId": {
                "type": "string"
              },
              "leaveTypeId": {
                "type": "string"
              },
              "leaveContext": {
                "$ref": "#/components/schemas/TimesheetLeaveContext",
                "nullable": true
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "category",
              "provenance",
              "minutes",
              "interval",
              "propertyId",
              "sourceId",
              "sourceRevision",
              "leaveRequestId",
              "leaveTypeId",
              "leaveContext"
            ],
            "properties": {
              "category": {
                "type": "string",
                "enum": [
                  "unpaid_leave"
                ]
              },
              "provenance": {
                "type": "string",
                "enum": [
                  "attendance",
                  "schedule",
                  "reference_day",
                  "manager_adjustment",
                  "public_holiday_rule"
                ]
              },
              "minutes": {
                "type": "integer",
                "minimum": 0
              },
              "interval": {
                "type": "object",
                "nullable": true,
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "propertyId": {
                "type": "string"
              },
              "sourceId": {
                "type": "string"
              },
              "sourceRevision": {
                "type": "integer",
                "minimum": 0
              },
              "leaveRequestId": {
                "type": "string"
              },
              "leaveTypeId": {
                "type": "string"
              },
              "leaveContext": {
                "$ref": "#/components/schemas/TimesheetLeaveContext",
                "nullable": true
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "category",
              "provenance",
              "minutes",
              "interval",
              "propertyId",
              "sourceId",
              "sourceRevision"
            ],
            "properties": {
              "category": {
                "type": "string",
                "enum": [
                  "worked"
                ]
              },
              "provenance": {
                "type": "string",
                "enum": [
                  "attendance",
                  "schedule",
                  "reference_day",
                  "manager_adjustment",
                  "public_holiday_rule"
                ]
              },
              "minutes": {
                "type": "integer",
                "minimum": 0
              },
              "interval": {
                "type": "object",
                "nullable": true,
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "propertyId": {
                "type": "string"
              },
              "sourceId": {
                "type": "string"
              },
              "sourceRevision": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "category",
              "provenance",
              "minutes",
              "interval",
              "propertyId",
              "sourceId",
              "sourceRevision",
              "publicHolidayDecisionId",
              "publicHolidayDate",
              "publicHolidayCategoryCode",
              "publicHolidayBenefit"
            ],
            "properties": {
              "category": {
                "type": "string",
                "enum": [
                  "public_holiday"
                ]
              },
              "provenance": {
                "type": "string",
                "enum": [
                  "attendance",
                  "schedule",
                  "reference_day",
                  "manager_adjustment",
                  "public_holiday_rule"
                ]
              },
              "minutes": {
                "type": "integer",
                "minimum": 0
              },
              "interval": {
                "type": "object",
                "nullable": true,
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "propertyId": {
                "type": "string"
              },
              "sourceId": {
                "type": "string"
              },
              "sourceRevision": {
                "type": "integer",
                "minimum": 0
              },
              "publicHolidayDecisionId": {
                "type": "string"
              },
              "publicHolidayDate": {
                "type": "string"
              },
              "publicHolidayCategoryCode": {
                "type": "string"
              },
              "publicHolidayBenefit": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "category",
              "provenance",
              "minutes",
              "interval",
              "propertyId",
              "sourceId",
              "sourceRevision"
            ],
            "properties": {
              "category": {
                "type": "string",
                "enum": [
                  "other_approved"
                ]
              },
              "provenance": {
                "type": "string",
                "enum": [
                  "attendance",
                  "schedule",
                  "reference_day",
                  "manager_adjustment",
                  "public_holiday_rule"
                ]
              },
              "minutes": {
                "type": "integer",
                "minimum": 0
              },
              "interval": {
                "type": "object",
                "nullable": true,
                "additionalProperties": false,
                "required": [
                  "start",
                  "end"
                ],
                "properties": {
                  "start": {
                    "type": "string"
                  },
                  "end": {
                    "type": "string"
                  }
                }
              },
              "propertyId": {
                "type": "string"
              },
              "sourceId": {
                "type": "string"
              },
              "sourceRevision": {
                "type": "integer",
                "minimum": 0
              },
              "publicHolidayDecisionId": {
                "type": "string"
              },
              "publicHolidayDate": {
                "type": "string"
              },
              "publicHolidayCategoryCode": {
                "type": "string"
              },
              "publicHolidayBenefit": {
                "type": "string"
              }
            }
          }
        ]
      },
      "TimesheetApprovalUnit": {
        "title": "TimesheetApprovalUnit",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "scope",
          "targetId",
          "status",
          "approvable",
          "locked",
          "approvedAt",
          "approvedBy",
          "overrideRequired",
          "reasonRequired",
          "exportedAt"
        ],
        "properties": {
          "scope": {
            "type": "string",
            "enum": [
              "worker_week",
              "day_row"
            ]
          },
          "targetId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "approvable": {
            "type": "boolean"
          },
          "locked": {
            "type": "boolean"
          },
          "approvedAt": {
            "type": "string",
            "nullable": true
          },
          "approvedBy": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          },
          "overrideRequired": {
            "type": "boolean"
          },
          "reasonRequired": {
            "type": "boolean"
          },
          "exportedAt": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TimesheetDayRowReview": {
        "title": "TimesheetDayRowReview",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "dayRowId",
          "workerWeekId",
          "workshiftId",
          "employee",
          "date",
          "department",
          "job",
          "status",
          "approvalState",
          "locked",
          "editable",
          "approvable",
          "settings",
          "scheduled",
          "actual",
          "adjustment",
          "paid",
          "recommendation",
          "publicHoliday",
          "statusCodes",
          "customStatuses",
          "blockers",
          "exceptions",
          "notesCount",
          "lastAdjustmentId",
          "approval",
          "permissions",
          "sourceChangedAfterApproval"
        ],
        "properties": {
          "dayRowId": {
            "type": "string",
            "nullable": true
          },
          "workerWeekId": {
            "type": "string",
            "nullable": true
          },
          "workshiftId": {
            "type": "string",
            "nullable": true
          },
          "employee": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "department",
              "job"
            ],
            "properties": {
              "id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "department": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "nullable": true
                  },
                  "name": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "job": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "nullable": true
                  },
                  "name": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "nullable": true
              }
            }
          },
          "date": {
            "type": "string"
          },
          "department": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          },
          "job": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "approvalState": {
            "type": "string",
            "nullable": true
          },
          "locked": {
            "type": "boolean"
          },
          "editable": {
            "type": "boolean"
          },
          "approvable": {
            "type": "boolean"
          },
          "settings": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "settingsId",
              "settingsVersion"
            ],
            "properties": {
              "settingsId": {
                "type": "string"
              },
              "settingsVersion": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "scheduled": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "in",
              "out",
              "unpaidBreakMinutes",
              "minutes"
            ],
            "properties": {
              "in": {
                "type": "string",
                "nullable": true
              },
              "out": {
                "type": "string",
                "nullable": true
              },
              "unpaidBreakMinutes": {
                "type": "number",
                "nullable": true
              },
              "minutes": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "actual": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "in",
              "out",
              "unpaidBreakMinutes",
              "minutes"
            ],
            "properties": {
              "in": {
                "type": "string",
                "nullable": true
              },
              "out": {
                "type": "string",
                "nullable": true
              },
              "unpaidBreakMinutes": {
                "type": "number",
                "nullable": true
              },
              "minutes": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "adjustment": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "in",
              "out",
              "unpaidBreakMinutes",
              "minutes"
            ],
            "properties": {
              "in": {
                "type": "string",
                "nullable": true
              },
              "out": {
                "type": "string",
                "nullable": true
              },
              "unpaidBreakMinutes": {
                "type": "number",
                "nullable": true
              },
              "minutes": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "paid": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "in",
              "out",
              "unpaidBreakMinutes",
              "minutes",
              "totalMinutes",
              "components",
              "source",
              "reason",
              "recommendationId"
            ],
            "properties": {
              "in": {
                "type": "string",
                "nullable": true
              },
              "out": {
                "type": "string",
                "nullable": true
              },
              "unpaidBreakMinutes": {
                "type": "number",
                "nullable": true
              },
              "minutes": {
                "type": "integer",
                "minimum": 0
              },
              "totalMinutes": {
                "type": "integer",
                "minimum": 0
              },
              "components": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TimesheetPaidComponent"
                }
              },
              "source": {
                "type": "string",
                "nullable": true
              },
              "reason": {
                "type": "string",
                "nullable": true
              },
              "recommendationId": {
                "type": "string",
                "nullable": true
              }
            }
          },
          "recommendation": {
            "type": "object",
            "nullable": true,
            "additionalProperties": false,
            "properties": {
              "settingsId": {
                "type": "string"
              },
              "settingsVersion": {
                "type": "integer",
                "minimum": 0
              },
              "source": {
                "type": "string"
              },
              "reason": {
                "type": "string"
              },
              "confidence": {
                "type": "string",
                "enum": [
                  "high",
                  "medium",
                  "low"
                ]
              },
              "blocking": {
                "type": "boolean"
              },
              "requiresReview": {
                "type": "boolean"
              },
              "requiresComment": {
                "type": "boolean"
              },
              "blockers": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "appliedAt": {
                "type": "string"
              }
            }
          },
          "publicHoliday": {
            "$ref": "#/components/schemas/TimesheetPublicHolidaySnapshot",
            "nullable": true
          },
          "statusCodes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "customStatuses": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "color"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "nullable": true
                },
                "name": {
                  "type": "string"
                },
                "color": {
                  "type": "string",
                  "nullable": true
                }
              }
            }
          },
          "blockers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "exceptions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notesCount": {
            "type": "integer",
            "minimum": 0
          },
          "lastAdjustmentId": {
            "type": "string",
            "nullable": true
          },
          "approval": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "workerWeek",
              "day"
            ],
            "properties": {
              "workerWeek": {
                "$ref": "#/components/schemas/TimesheetApprovalUnit"
              },
              "day": {
                "$ref": "#/components/schemas/TimesheetApprovalUnit"
              }
            }
          },
          "permissions": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "canEdit",
              "canApprove",
              "canOverride",
              "canReopen",
              "canRefresh",
              "canExport"
            ],
            "properties": {
              "canEdit": {
                "type": "boolean"
              },
              "canApprove": {
                "type": "boolean"
              },
              "canOverride": {
                "type": "boolean"
              },
              "canReopen": {
                "type": "boolean"
              },
              "canRefresh": {
                "type": "boolean"
              },
              "canExport": {
                "type": "boolean"
              }
            }
          },
          "sourceChangedAfterApproval": {
            "type": "boolean"
          }
        }
      },
      "TimesheetActionPermissions": {
        "title": "TimesheetActionPermissions",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "canView",
          "canEdit",
          "canApprove",
          "canOverride",
          "canReopen",
          "canManageSettings",
          "canRefresh",
          "canExport",
          "canViewAudit"
        ],
        "properties": {
          "canView": {
            "type": "boolean"
          },
          "canEdit": {
            "type": "boolean"
          },
          "canApprove": {
            "type": "boolean"
          },
          "canOverride": {
            "type": "boolean"
          },
          "canReopen": {
            "type": "boolean"
          },
          "canManageSettings": {
            "type": "boolean"
          },
          "canRefresh": {
            "type": "boolean"
          },
          "canExport": {
            "type": "boolean"
          },
          "canViewAudit": {
            "type": "boolean"
          }
        }
      },
      "TimesheetDailyReviewResponse": {
        "title": "TimesheetDailyReviewResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "locationId",
          "date",
          "settings",
          "summaryCounts",
          "statusCards",
          "customStatusCounts",
          "totals",
          "rows",
          "permissions",
          "page"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "locationId": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string"
          },
          "settings": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "settingsId",
              "settingsVersion",
              "paidRecommendationDefault"
            ],
            "properties": {
              "settingsId": {
                "type": "string"
              },
              "settingsVersion": {
                "type": "integer",
                "minimum": 0
              },
              "paidRecommendationDefault": {
                "type": "string",
                "enum": [
                  "prefer_scheduled",
                  "prefer_actual",
                  "require_review_when_actual_differs"
                ]
              }
            }
          },
          "summaryCounts": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "ready",
              "needsReview",
              "blocked",
              "approved",
              "reopened",
              "exported"
            ],
            "properties": {
              "ready": {
                "type": "integer",
                "minimum": 0
              },
              "needsReview": {
                "type": "integer",
                "minimum": 0
              },
              "blocked": {
                "type": "integer",
                "minimum": 0
              },
              "approved": {
                "type": "integer",
                "minimum": 0
              },
              "reopened": {
                "type": "integer",
                "minimum": 0
              },
              "exported": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "statusCards": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "all",
              "pending",
              "approved",
              "earlyClockIn",
              "lateClockOut",
              "notScheduled",
              "noShow",
              "withNotes",
              "blocked"
            ],
            "properties": {
              "all": {
                "type": "integer",
                "minimum": 0
              },
              "pending": {
                "type": "integer",
                "minimum": 0
              },
              "approved": {
                "type": "integer",
                "minimum": 0
              },
              "earlyClockIn": {
                "type": "integer",
                "minimum": 0
              },
              "lateClockOut": {
                "type": "integer",
                "minimum": 0
              },
              "notScheduled": {
                "type": "integer",
                "minimum": 0
              },
              "noShow": {
                "type": "integer",
                "minimum": 0
              },
              "withNotes": {
                "type": "integer",
                "minimum": 0
              },
              "blocked": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "customStatusCounts": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "color",
                "count"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "nullable": true
                },
                "name": {
                  "type": "string"
                },
                "color": {
                  "type": "string",
                  "nullable": true
                },
                "count": {
                  "type": "integer",
                  "minimum": 0
                }
              }
            }
          },
          "totals": {
            "$ref": "#/components/schemas/TimesheetReviewTotals"
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimesheetDayRowReview"
            }
          },
          "permissions": {
            "$ref": "#/components/schemas/TimesheetActionPermissions"
          },
          "page": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "total",
              "page",
              "pageSize"
            ],
            "properties": {
              "total": {
                "type": "integer",
                "minimum": 0
              },
              "page": {
                "type": "integer",
                "minimum": 1
              },
              "pageSize": {
                "type": "integer",
                "minimum": 1
              }
            }
          }
        }
      },
      "TimesheetEmployeeWeekResponse": {
        "title": "TimesheetEmployeeWeekResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "locationId",
          "weekStart",
          "settings",
          "employee",
          "workerWeek",
          "summaryCounts",
          "totals",
          "rows",
          "permissions"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "locationId": {
            "type": "string",
            "nullable": true
          },
          "weekStart": {
            "type": "string"
          },
          "settings": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "settingsId",
              "settingsVersion",
              "paidRecommendationDefault"
            ],
            "properties": {
              "settingsId": {
                "type": "string"
              },
              "settingsVersion": {
                "type": "integer",
                "minimum": 0
              },
              "paidRecommendationDefault": {
                "type": "string",
                "enum": [
                  "prefer_scheduled",
                  "prefer_actual",
                  "require_review_when_actual_differs"
                ]
              }
            }
          },
          "employee": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "department",
              "job"
            ],
            "properties": {
              "id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "department": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "nullable": true
                  },
                  "name": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "job": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "nullable": true
                  },
                  "name": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "nullable": true
              }
            }
          },
          "workerWeek": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "workerWeekId",
              "status",
              "approval",
              "locked",
              "exported",
              "sourceChangedAfterApproval"
            ],
            "properties": {
              "workerWeekId": {
                "type": "string",
                "nullable": true
              },
              "status": {
                "type": "string"
              },
              "approval": {
                "$ref": "#/components/schemas/TimesheetApprovalUnit"
              },
              "locked": {
                "type": "boolean"
              },
              "exported": {
                "type": "boolean"
              },
              "sourceChangedAfterApproval": {
                "type": "boolean"
              }
            }
          },
          "summaryCounts": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "ready",
              "needsReview",
              "blocked",
              "approved",
              "reopened",
              "exported"
            ],
            "properties": {
              "ready": {
                "type": "integer",
                "minimum": 0
              },
              "needsReview": {
                "type": "integer",
                "minimum": 0
              },
              "blocked": {
                "type": "integer",
                "minimum": 0
              },
              "approved": {
                "type": "integer",
                "minimum": 0
              },
              "reopened": {
                "type": "integer",
                "minimum": 0
              },
              "exported": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "totals": {
            "$ref": "#/components/schemas/TimesheetReviewTotals"
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimesheetDayRowReview"
            }
          },
          "permissions": {
            "$ref": "#/components/schemas/TimesheetActionPermissions"
          }
        }
      },
      "GroupExportBlocker": {
        "title": "GroupExportBlocker",
        "type": "object",
        "required": [
          "code",
          "hotelId",
          "employeeId",
          "dayRowId"
        ],
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "GROUP_UNAUTHORIZED",
              "GROUP_CONFIGURATION_MISMATCH",
              "GROUP_PARTIAL_APPROVAL",
              "GROUP_UNFINALIZED_SOURCE",
              "GROUP_DUPLICATE_SOURCE",
              "GROUP_OVERLAPPING_INTERVAL",
              "GROUP_INCOMPLETE_MANIFEST"
            ]
          },
          "hotelId": {
            "type": "string",
            "nullable": true
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "dayRowId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GroupExportManifestProperty": {
        "title": "GroupExportManifestProperty",
        "type": "object",
        "required": [
          "hotelId",
          "hotelName",
          "timezoneArea",
          "propertySnapshotIds",
          "employeeWeekCount",
          "dayRowCount",
          "paidMinutes",
          "sourceRevisionHash"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "hotelName": {
            "type": "string"
          },
          "timezoneArea": {
            "type": "string"
          },
          "propertySnapshotIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "employeeWeekCount": {
            "type": "integer",
            "minimum": 0
          },
          "dayRowCount": {
            "type": "integer",
            "minimum": 0
          },
          "paidMinutes": {
            "type": "integer",
            "minimum": 0
          },
          "sourceRevisionHash": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "GroupExportValidationManifest": {
        "title": "GroupExportValidationManifest",
        "type": "object",
        "required": [
          "hash",
          "groupId",
          "groupRevision",
          "weekStart",
          "weekEnd",
          "properties"
        ],
        "properties": {
          "hash": {
            "type": "string"
          },
          "groupId": {
            "type": "string"
          },
          "groupRevision": {
            "type": "integer",
            "minimum": 0
          },
          "weekStart": {
            "type": "string",
            "format": "date"
          },
          "weekEnd": {
            "type": "string",
            "format": "date"
          },
          "properties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupExportManifestProperty"
            }
          }
        },
        "additionalProperties": false
      },
      "GroupExportTotals": {
        "title": "GroupExportTotals",
        "type": "object",
        "required": [
          "employeeWeeks",
          "dayRows",
          "paidMinutes"
        ],
        "properties": {
          "employeeWeeks": {
            "type": "integer",
            "minimum": 0
          },
          "dayRows": {
            "type": "integer",
            "minimum": 0
          },
          "paidMinutes": {
            "type": "integer",
            "minimum": 0
          }
        },
        "additionalProperties": false
      },
      "GroupExportValidationResponse": {
        "title": "GroupExportValidationResponse",
        "type": "object",
        "required": [
          "valid",
          "blockers",
          "manifest",
          "totals"
        ],
        "properties": {
          "valid": {
            "type": "boolean"
          },
          "blockers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupExportBlocker"
            }
          },
          "manifest": {
            "$ref": "#/components/schemas/GroupExportValidationManifest"
          },
          "totals": {
            "$ref": "#/components/schemas/GroupExportTotals"
          }
        },
        "additionalProperties": false
      },
      "GroupExportMetadataResponse": {
        "title": "GroupExportMetadataResponse",
        "type": "object",
        "required": [
          "id",
          "state",
          "group",
          "manifest",
          "blockers",
          "totals",
          "csvSha256",
          "downloadUrl",
          "createdAt",
          "createdBy",
          "replayed"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "enum": [
              "staged",
              "finalized",
              "failed"
            ]
          },
          "group": {
            "type": "object",
            "required": [
              "id",
              "name",
              "timezoneArea",
              "weekStartDay",
              "active",
              "revision",
              "memberships"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "timezoneArea": {
                "type": "string"
              },
              "weekStartDay": {
                "type": "integer"
              },
              "active": {
                "type": "boolean"
              },
              "revision": {
                "type": "integer"
              },
              "memberships": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "hotelId",
                    "hotelName",
                    "revision"
                  ],
                  "properties": {
                    "hotelId": {
                      "type": "string"
                    },
                    "hotelName": {
                      "type": "string"
                    },
                    "revision": {
                      "type": "integer"
                    }
                  },
                  "additionalProperties": false
                }
              }
            },
            "additionalProperties": false
          },
          "manifest": {
            "$ref": "#/components/schemas/GroupExportValidationManifest"
          },
          "blockers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupExportBlocker"
            }
          },
          "totals": {
            "$ref": "#/components/schemas/GroupExportTotals"
          },
          "csvSha256": {
            "type": "string",
            "nullable": true
          },
          "downloadUrl": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "createdBy": {
            "type": "string"
          },
          "replayed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GroupExportCapacityExceededErrorResponse": {
        "title": "GroupExportCapacityExceededErrorResponse",
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "required": [
              "statusCode",
              "name",
              "message",
              "details"
            ],
            "properties": {
              "statusCode": {
                "type": "integer",
                "enum": [
                  422
                ]
              },
              "name": {
                "type": "string",
                "enum": [
                  "UnprocessableEntityError"
                ]
              },
              "message": {
                "type": "string",
                "enum": [
                  "The payroll group export exceeds the supported capacity."
                ]
              },
              "details": {
                "type": "object",
                "required": [
                  "code",
                  "retriable",
                  "rowCount",
                  "maxBytes"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "enum": [
                      "GROUP_EXPORT_CAPACITY_EXCEEDED"
                    ]
                  },
                  "retriable": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "rowCount": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "maxBytes": {
                    "type": "integer",
                    "maximum": 15728640,
                    "enum": [
                      15728640
                    ]
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "PublicHolidayCalendarEntry": {
        "title": "PublicHolidayCalendarEntry",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "date",
          "name",
          "source"
        ],
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "name": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "enum": [
              "irish_default",
              "configured_override"
            ]
          }
        }
      },
      "PublicHolidayCalendarResponse": {
        "title": "PublicHolidayCalendarResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "timezone",
          "year",
          "holidays"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "timezone": {
            "type": "string",
            "enum": [
              "Europe/Dublin"
            ]
          },
          "year": {
            "type": "integer"
          },
          "holidays": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicHolidayCalendarEntry"
            }
          }
        }
      },
      "PublicHolidayEvidence": {
        "title": "PublicHolidayEvidence",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "periodStart",
          "periodEnd",
          "actualWorkedMinutes",
          "propertyIds",
          "complete",
          "scopeComplete",
          "employmentStatus",
          "possibleStatutoryExclusion",
          "alreadyPaidDayOff",
          "contractedNormalWeeklyPaidMinutes"
        ],
        "properties": {
          "periodStart": {
            "type": "string",
            "format": "date"
          },
          "periodEnd": {
            "type": "string",
            "format": "date"
          },
          "actualWorkedMinutes": {
            "type": "number"
          },
          "propertyIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "complete": {
            "type": "boolean"
          },
          "scopeComplete": {
            "type": "boolean"
          },
          "employmentStatus": {
            "type": "string",
            "enum": [
              "whole_time",
              "not_whole_time",
              "unknown"
            ]
          },
          "possibleStatutoryExclusion": {
            "type": "string",
            "enum": [
              "none",
              "possible",
              "unknown"
            ]
          },
          "alreadyPaidDayOff": {
            "type": "boolean"
          },
          "contractedNormalWeeklyPaidMinutes": {
            "type": "number",
            "minimum": 0,
            "nullable": true
          }
        }
      },
      "PublicHolidayDecisionResponse": {
        "title": "PublicHolidayDecisionResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "hotelId",
          "locationId",
          "employeeId",
          "holidayDate",
          "holidayName",
          "legalEmployerId",
          "originatingPropertyId",
          "eligibilityStatus",
          "eligibilityBasis",
          "needsReviewReason",
          "evidence",
          "state",
          "revision",
          "selectedBenefit",
          "benefitDate",
          "payrollCategory",
          "referenceMinutes",
          "referenceType",
          "workedMinutesOnHoliday",
          "enhancedNonStatutory",
          "entitlementId",
          "timesheetDayRowId",
          "decisionActorUserId",
          "decisionActorName",
          "decisionTime",
          "decisionReason",
          "clientMutationId",
          "createdAt",
          "updatedAt",
          "isDeleted"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "hotelId": {
            "type": "string"
          },
          "locationId": {
            "type": "string",
            "nullable": true
          },
          "employeeId": {
            "type": "string"
          },
          "holidayDate": {
            "type": "string",
            "format": "date"
          },
          "holidayName": {
            "type": "string"
          },
          "legalEmployerId": {
            "type": "string"
          },
          "originatingPropertyId": {
            "type": "string"
          },
          "eligibilityStatus": {
            "type": "string",
            "enum": [
              "eligible",
              "not_eligible",
              "needs_review"
            ]
          },
          "eligibilityBasis": {
            "type": "string"
          },
          "needsReviewReason": {
            "type": "string",
            "nullable": true
          },
          "evidence": {
            "$ref": "#/components/schemas/PublicHolidayEvidence"
          },
          "state": {
            "type": "string",
            "enum": [
              "recommended",
              "confirmed",
              "consumed"
            ]
          },
          "revision": {
            "type": "integer"
          },
          "selectedBenefit": {
            "type": "string",
            "enum": [
              "paid_day_off_on_holiday",
              "paid_day_off_within_one_month",
              "additional_annual_leave_day",
              "additional_day_pay"
            ],
            "nullable": true
          },
          "benefitDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "payrollCategory": {
            "type": "string",
            "enum": [
              "public_holiday_paid_day_off_on_holiday",
              "public_holiday_paid_day_off_within_one_month",
              "public_holiday_additional_annual_leave_day",
              "public_holiday_additional_day_pay",
              "public_holiday_worked_plus_separate_benefit",
              "public_holiday_enhanced_employer_benefit"
            ],
            "nullable": true
          },
          "referenceMinutes": {
            "type": "number",
            "nullable": true
          },
          "referenceType": {
            "type": "string",
            "enum": [
              "scheduled_net_minutes",
              "contracted_normal_weekly_paid_minutes_divided_by_five"
            ],
            "nullable": true
          },
          "workedMinutesOnHoliday": {
            "type": "number",
            "nullable": true
          },
          "enhancedNonStatutory": {
            "type": "boolean",
            "nullable": true
          },
          "entitlementId": {
            "type": "string",
            "nullable": true
          },
          "timesheetDayRowId": {
            "type": "string",
            "nullable": true
          },
          "decisionActorUserId": {
            "type": "string",
            "nullable": true
          },
          "decisionActorName": {
            "type": "string",
            "nullable": true
          },
          "decisionTime": {
            "type": "string",
            "nullable": true
          },
          "decisionReason": {
            "type": "string",
            "nullable": true
          },
          "clientMutationId": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "isDeleted": {
            "type": "boolean"
          }
        }
      },
      "PublicHolidayActivityEventResponse": {
        "title": "PublicHolidayActivityEventResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "decisionId",
          "entitlementId",
          "hotelId",
          "employeeId",
          "eventType",
          "reason",
          "actor",
          "occurredAt",
          "beforeRevision",
          "afterRevision",
          "before",
          "after",
          "clientMutationId"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "decisionId": {
            "type": "string"
          },
          "entitlementId": {
            "type": "string",
            "nullable": true
          },
          "hotelId": {
            "type": "string"
          },
          "employeeId": {
            "type": "string"
          },
          "eventType": {
            "type": "string",
            "enum": [
              "public_holiday_evaluated",
              "public_holiday_evidence_corrected",
              "public_holiday_decision_overridden",
              "public_holiday_decision_confirmed",
              "public_holiday_entitlement_consumed"
            ]
          },
          "reason": {
            "type": "string"
          },
          "actor": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string",
                "nullable": true
              }
            }
          },
          "occurredAt": {
            "type": "string"
          },
          "beforeRevision": {
            "type": "integer",
            "nullable": true
          },
          "afterRevision": {
            "type": "integer"
          },
          "before": {
            "anyOf": [
              {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
                  }
                ]
              },
              {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayEntitlementConsumptionResponse"
                  }
                ]
              }
            ]
          },
          "after": {
            "anyOf": [
              {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
                  }
                ]
              },
              {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayEntitlementConsumptionResponse"
                  }
                ]
              }
            ]
          },
          "clientMutationId": {
            "type": "string",
            "nullable": true
          }
        },
        "oneOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "decisionId",
              "entitlementId",
              "hotelId",
              "employeeId",
              "eventType",
              "reason",
              "actor",
              "occurredAt",
              "beforeRevision",
              "afterRevision",
              "before",
              "after",
              "clientMutationId"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "decisionId": {
                "type": "string"
              },
              "entitlementId": {
                "type": "string",
                "nullable": true
              },
              "hotelId": {
                "type": "string"
              },
              "employeeId": {
                "type": "string"
              },
              "eventType": {
                "type": "string",
                "enum": [
                  "public_holiday_evaluated"
                ]
              },
              "reason": {
                "type": "string"
              },
              "actor": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "occurredAt": {
                "type": "string"
              },
              "beforeRevision": {
                "type": "integer",
                "nullable": true
              },
              "afterRevision": {
                "type": "integer"
              },
              "before": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
                  }
                ]
              },
              "after": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
                  }
                ]
              },
              "clientMutationId": {
                "type": "string",
                "nullable": true
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "decisionId",
              "entitlementId",
              "hotelId",
              "employeeId",
              "eventType",
              "reason",
              "actor",
              "occurredAt",
              "beforeRevision",
              "afterRevision",
              "before",
              "after",
              "clientMutationId"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "decisionId": {
                "type": "string"
              },
              "entitlementId": {
                "type": "string",
                "nullable": true
              },
              "hotelId": {
                "type": "string"
              },
              "employeeId": {
                "type": "string"
              },
              "eventType": {
                "type": "string",
                "enum": [
                  "public_holiday_evidence_corrected"
                ]
              },
              "reason": {
                "type": "string"
              },
              "actor": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "occurredAt": {
                "type": "string"
              },
              "beforeRevision": {
                "type": "integer",
                "nullable": true
              },
              "afterRevision": {
                "type": "integer"
              },
              "before": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
                  }
                ]
              },
              "after": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
                  }
                ]
              },
              "clientMutationId": {
                "type": "string",
                "nullable": true
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "decisionId",
              "entitlementId",
              "hotelId",
              "employeeId",
              "eventType",
              "reason",
              "actor",
              "occurredAt",
              "beforeRevision",
              "afterRevision",
              "before",
              "after",
              "clientMutationId"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "decisionId": {
                "type": "string"
              },
              "entitlementId": {
                "type": "string",
                "nullable": true
              },
              "hotelId": {
                "type": "string"
              },
              "employeeId": {
                "type": "string"
              },
              "eventType": {
                "type": "string",
                "enum": [
                  "public_holiday_decision_overridden"
                ]
              },
              "reason": {
                "type": "string"
              },
              "actor": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "occurredAt": {
                "type": "string"
              },
              "beforeRevision": {
                "type": "integer",
                "nullable": true
              },
              "afterRevision": {
                "type": "integer"
              },
              "before": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
                  }
                ]
              },
              "after": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
                  }
                ]
              },
              "clientMutationId": {
                "type": "string",
                "nullable": true
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "decisionId",
              "entitlementId",
              "hotelId",
              "employeeId",
              "eventType",
              "reason",
              "actor",
              "occurredAt",
              "beforeRevision",
              "afterRevision",
              "before",
              "after",
              "clientMutationId"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "decisionId": {
                "type": "string"
              },
              "entitlementId": {
                "type": "string",
                "nullable": true
              },
              "hotelId": {
                "type": "string"
              },
              "employeeId": {
                "type": "string"
              },
              "eventType": {
                "type": "string",
                "enum": [
                  "public_holiday_decision_confirmed"
                ]
              },
              "reason": {
                "type": "string"
              },
              "actor": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "occurredAt": {
                "type": "string"
              },
              "beforeRevision": {
                "type": "integer",
                "nullable": true
              },
              "afterRevision": {
                "type": "integer"
              },
              "before": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
                  }
                ]
              },
              "after": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
                  }
                ]
              },
              "clientMutationId": {
                "type": "string",
                "nullable": true
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "decisionId",
              "entitlementId",
              "hotelId",
              "employeeId",
              "eventType",
              "reason",
              "actor",
              "occurredAt",
              "beforeRevision",
              "afterRevision",
              "before",
              "after",
              "clientMutationId"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "decisionId": {
                "type": "string"
              },
              "entitlementId": {
                "type": "string",
                "nullable": true
              },
              "hotelId": {
                "type": "string"
              },
              "employeeId": {
                "type": "string"
              },
              "eventType": {
                "type": "string",
                "enum": [
                  "public_holiday_entitlement_consumed"
                ]
              },
              "reason": {
                "type": "string"
              },
              "actor": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string",
                    "nullable": true
                  }
                }
              },
              "occurredAt": {
                "type": "string"
              },
              "beforeRevision": {
                "type": "integer",
                "nullable": true
              },
              "afterRevision": {
                "type": "integer"
              },
              "before": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayEntitlementConsumptionResponse"
                  }
                ]
              },
              "after": {
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicHolidayEntitlementConsumptionResponse"
                  }
                ]
              },
              "clientMutationId": {
                "type": "string",
                "nullable": true
              }
            }
          }
        ]
      },
      "PublicHolidayActivityResponse": {
        "title": "PublicHolidayActivityResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "decisionId",
          "events"
        ],
        "properties": {
          "decisionId": {
            "type": "string"
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicHolidayActivityEventResponse"
            }
          }
        }
      },
      "PublicHolidayEntitlementResponse": {
        "title": "PublicHolidayEntitlementResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "decisionId",
          "employeeId",
          "legalEmployerId",
          "originatingPropertyId",
          "originatingHolidayDate",
          "benefit",
          "status",
          "plannedBenefitDate",
          "consumedBenefitDate",
          "consumedTimesheetDayRowId",
          "createdAt",
          "updatedAt",
          "revision"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "decisionId": {
            "type": "string"
          },
          "employeeId": {
            "type": "string"
          },
          "legalEmployerId": {
            "type": "string"
          },
          "originatingPropertyId": {
            "type": "string"
          },
          "originatingHolidayDate": {
            "type": "string",
            "format": "date"
          },
          "benefit": {
            "type": "string",
            "enum": [
              "paid_day_off_on_holiday",
              "paid_day_off_within_one_month",
              "additional_annual_leave_day",
              "additional_day_pay"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "available",
              "consuming",
              "consumed",
              "cancelled"
            ]
          },
          "plannedBenefitDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "consumedBenefitDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "consumedTimesheetDayRowId": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "revision": {
            "type": "integer"
          }
        }
      },
      "PublicHolidayEntitlementConsumptionResponse": {
        "title": "PublicHolidayEntitlementConsumptionResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "decision",
          "entitlement"
        ],
        "properties": {
          "decision": {
            "$ref": "#/components/schemas/PublicHolidayDecisionResponse"
          },
          "entitlement": {
            "$ref": "#/components/schemas/PublicHolidayEntitlementResponse"
          }
        }
      },
      "TimesheetWorkerWeekReview": {
        "title": "TimesheetWorkerWeekReview",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "workerWeekId",
          "employee",
          "status",
          "approval",
          "locked",
          "exported",
          "sourceChangedAfterApproval",
          "notesCount",
          "summaryCounts",
          "totals",
          "days"
        ],
        "properties": {
          "workerWeekId": {
            "type": "string",
            "nullable": true
          },
          "employee": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "department",
              "job"
            ],
            "properties": {
              "id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "department": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "nullable": true
                  },
                  "name": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "job": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "nullable": true
                  },
                  "name": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "nullable": true
              }
            }
          },
          "status": {
            "type": "string"
          },
          "approval": {
            "$ref": "#/components/schemas/TimesheetApprovalUnit"
          },
          "locked": {
            "type": "boolean"
          },
          "exported": {
            "type": "boolean"
          },
          "sourceChangedAfterApproval": {
            "type": "boolean"
          },
          "notesCount": {
            "type": "integer",
            "minimum": 0
          },
          "summaryCounts": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "ready",
              "needsReview",
              "blocked",
              "approved",
              "reopened",
              "exported"
            ],
            "properties": {
              "ready": {
                "type": "integer",
                "minimum": 0
              },
              "needsReview": {
                "type": "integer",
                "minimum": 0
              },
              "blocked": {
                "type": "integer",
                "minimum": 0
              },
              "approved": {
                "type": "integer",
                "minimum": 0
              },
              "reopened": {
                "type": "integer",
                "minimum": 0
              },
              "exported": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "totals": {
            "$ref": "#/components/schemas/TimesheetReviewTotals"
          },
          "days": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimesheetDayRowReview"
            }
          }
        }
      },
      "TimesheetWeeklyReviewResponse": {
        "title": "TimesheetWeeklyReviewResponse",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hotelId",
          "locationId",
          "weekStart",
          "settings",
          "summaryCounts",
          "totals",
          "workerWeeks",
          "permissions",
          "page"
        ],
        "properties": {
          "hotelId": {
            "type": "string"
          },
          "locationId": {
            "type": "string",
            "nullable": true
          },
          "weekStart": {
            "type": "string"
          },
          "settings": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "settingsId",
              "settingsVersion",
              "paidRecommendationDefault"
            ],
            "properties": {
              "settingsId": {
                "type": "string"
              },
              "settingsVersion": {
                "type": "integer",
                "minimum": 0
              },
              "paidRecommendationDefault": {
                "type": "string",
                "enum": [
                  "prefer_scheduled",
                  "prefer_actual",
                  "require_review_when_actual_differs"
                ]
              }
            }
          },
          "summaryCounts": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "ready",
              "needsReview",
              "blocked",
              "approved",
              "reopened",
              "exported"
            ],
            "properties": {
              "ready": {
                "type": "integer",
                "minimum": 0
              },
              "needsReview": {
                "type": "integer",
                "minimum": 0
              },
              "blocked": {
                "type": "integer",
                "minimum": 0
              },
              "approved": {
                "type": "integer",
                "minimum": 0
              },
              "reopened": {
                "type": "integer",
                "minimum": 0
              },
              "exported": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "totals": {
            "$ref": "#/components/schemas/TimesheetReviewTotals"
          },
          "workerWeeks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimesheetWorkerWeekReview"
            }
          },
          "permissions": {
            "$ref": "#/components/schemas/TimesheetActionPermissions"
          },
          "page": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "total",
              "page",
              "pageSize"
            ],
            "properties": {
              "total": {
                "type": "integer",
                "minimum": 0
              },
              "page": {
                "type": "integer",
                "minimum": 1
              },
              "pageSize": {
                "type": "integer",
                "minimum": 1
              }
            }
          }
        }
      },
      "workshifts.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "workshifts.ScopeFilter"
      },
      "workshifts.IncludeFilter.Items": {
        "title": "workshifts.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "workshift_type",
              "workshift_user",
              "role",
              "workshift_hotel",
              "cleaningResults",
              "turndownResults",
              "shift_notes"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/workshifts.ScopeFilter"
          }
        }
      },
      "workshifts.Filter": {
        "type": "object",
        "title": "workshifts.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "shift_type": {
                    "type": "boolean"
                  },
                  "type_id": {
                    "type": "boolean"
                  },
                  "shift_order": {
                    "type": "boolean"
                  },
                  "homebase_id": {
                    "type": "boolean"
                  },
                  "start_time": {
                    "type": "boolean"
                  },
                  "end_time": {
                    "type": "boolean"
                  },
                  "clock_in_time": {
                    "type": "boolean"
                  },
                  "clock_out_time": {
                    "type": "boolean"
                  },
                  "lunch_start_time": {
                    "type": "boolean"
                  },
                  "lunch_end_time": {
                    "type": "boolean"
                  },
                  "last_lunch_notification_sent_at": {
                    "type": "boolean"
                  },
                  "last_shift_end_clock_out_reminder_scheduled_at": {
                    "type": "boolean"
                  },
                  "last_shift_end_clock_out_reminder_scheduled_key": {
                    "type": "boolean"
                  },
                  "last_shift_end_clock_out_reminder_claimed_at": {
                    "type": "boolean"
                  },
                  "last_shift_end_clock_out_reminder_claimed_key": {
                    "type": "boolean"
                  },
                  "last_shift_end_clock_out_reminder_sent_at": {
                    "type": "boolean"
                  },
                  "last_shift_end_clock_out_reminder_sent_key": {
                    "type": "boolean"
                  },
                  "last_shift_end_clock_out_reminder_failed_at": {
                    "type": "boolean"
                  },
                  "last_shift_end_clock_out_reminder_failure_reason": {
                    "type": "boolean"
                  },
                  "credits_left": {
                    "type": "boolean"
                  },
                  "add_via": {
                    "type": "boolean"
                  },
                  "draft": {
                    "type": "boolean"
                  },
                  "schedule_revision": {
                    "type": "boolean"
                  },
                  "leave_admission_revision": {
                    "type": "boolean"
                  },
                  "leave_pending_mutation": {
                    "type": "boolean"
                  },
                  "leave_repair_fence": {
                    "type": "boolean"
                  },
                  "leave_target_admission_barrier": {
                    "type": "boolean"
                  },
                  "draft_of": {
                    "type": "boolean"
                  },
                  "ukg_udid": {
                    "type": "boolean"
                  },
                  "rooms": {
                    "type": "boolean"
                  },
                  "turndown_rooms": {
                    "type": "boolean"
                  },
                  "user": {
                    "type": "boolean"
                  },
                  "workshift_role": {
                    "type": "boolean"
                  },
                  "hotel": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "shift_type",
                    "type_id",
                    "shift_order",
                    "homebase_id",
                    "start_time",
                    "end_time",
                    "clock_in_time",
                    "clock_out_time",
                    "lunch_start_time",
                    "lunch_end_time",
                    "last_lunch_notification_sent_at",
                    "last_shift_end_clock_out_reminder_scheduled_at",
                    "last_shift_end_clock_out_reminder_scheduled_key",
                    "last_shift_end_clock_out_reminder_claimed_at",
                    "last_shift_end_clock_out_reminder_claimed_key",
                    "last_shift_end_clock_out_reminder_sent_at",
                    "last_shift_end_clock_out_reminder_sent_key",
                    "last_shift_end_clock_out_reminder_failed_at",
                    "last_shift_end_clock_out_reminder_failure_reason",
                    "credits_left",
                    "add_via",
                    "draft",
                    "schedule_revision",
                    "leave_admission_revision",
                    "leave_pending_mutation",
                    "leave_repair_fence",
                    "leave_target_admission_barrier",
                    "draft_of",
                    "ukg_udid",
                    "rooms",
                    "turndown_rooms",
                    "user",
                    "workshift_role",
                    "hotel"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "workshifts.Fields"
          },
          "include": {
            "title": "workshifts.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/workshifts.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Workshift>"
      }
    },
    "securitySchemes": {
      "jwt": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "jwt": []
    }
  ]
}