{
  "openapi": "3.0.0",
  "info": {
    "title": "sigas-api",
    "version": "0.0.1",
    "description": "SIGAS-API",
    "contact": {
      "name": "Rennan Maia",
      "email": "rennanmaia@gmail.com"
    }
  },
  "paths": {
    "/admin/deliveries/{id}/retry": {
      "post": {
        "x-controller-name": "NotificationAdminController",
        "x-operation-name": "retryDelivery",
        "tags": [
          "NotificationAdminController"
        ],
        "responses": {
          "200": {
            "description": "Retried delivery instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationDelivery"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotificationAdminController.retryDelivery"
      }
    },
    "/admin/deliveries": {
      "get": {
        "x-controller-name": "NotificationAdminController",
        "x-operation-name": "listDeliveries",
        "tags": [
          "NotificationAdminController"
        ],
        "responses": {
          "200": {
            "description": "List of all deliveries (Admin)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationDeliveryWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationDelivery.Filter"
                }
              }
            }
          }
        ],
        "operationId": "NotificationAdminController.listDeliveries"
      }
    },
    "/admin/notification-logs": {
      "get": {
        "x-controller-name": "NotificationAdminController",
        "x-operation-name": "listLogs",
        "tags": [
          "NotificationAdminController"
        ],
        "responses": {
          "200": {
            "description": "List of all notification logs (Admin)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationLogWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationLog.Filter"
                }
              }
            }
          }
        ],
        "operationId": "NotificationAdminController.listLogs"
      }
    },
    "/admin/notifications/{id}/cancel": {
      "post": {
        "x-controller-name": "NotificationAdminController",
        "x-operation-name": "cancelNotification",
        "tags": [
          "NotificationAdminController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notification successfully cancelled"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotificationAdminController.cancelNotification"
      }
    },
    "/admin/notifications": {
      "get": {
        "x-controller-name": "NotificationAdminController",
        "x-operation-name": "listNotifications",
        "tags": [
          "NotificationAdminController"
        ],
        "responses": {
          "200": {
            "description": "List of all notifications (Admin)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Notification.Filter"
                }
              }
            }
          }
        ],
        "operationId": "NotificationAdminController.listNotifications"
      }
    },
    "/admin/templates/{id}": {
      "patch": {
        "x-controller-name": "NotificationAdminController",
        "x-operation-name": "updateTemplate",
        "tags": [
          "NotificationAdminController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Template updated successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "NotificationAdminController.updateTemplate"
      },
      "delete": {
        "x-controller-name": "NotificationAdminController",
        "x-operation-name": "deleteTemplate",
        "tags": [
          "NotificationAdminController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Template soft deleted successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotificationAdminController.deleteTemplate"
      }
    },
    "/admin/templates": {
      "post": {
        "x-controller-name": "NotificationAdminController",
        "x-operation-name": "createTemplate",
        "tags": [
          "NotificationAdminController"
        ],
        "responses": {
          "200": {
            "description": "Created notification template instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationTemplate"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "NotificationAdminController.createTemplate"
      },
      "get": {
        "x-controller-name": "NotificationAdminController",
        "x-operation-name": "listTemplates",
        "tags": [
          "NotificationAdminController"
        ],
        "responses": {
          "200": {
            "description": "List of templates",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationTemplateWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationTemplate.Filter"
                }
              }
            }
          }
        ],
        "operationId": "NotificationAdminController.listTemplates"
      }
    },
    "/campaigns/{id}/launch": {
      "post": {
        "x-controller-name": "NotificationCampaignController",
        "x-operation-name": "launch",
        "tags": [
          "NotificationCampaignController"
        ],
        "responses": {
          "200": {
            "description": "Launched campaign instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationCampaign"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "NotificationCampaignController.launch"
      }
    },
    "/campaigns/{id}/refresh": {
      "post": {
        "x-controller-name": "NotificationCampaignController",
        "x-operation-name": "refresh",
        "tags": [
          "NotificationCampaignController"
        ],
        "responses": {
          "200": {
            "description": "Refreshed campaign metrics",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationCampaign"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotificationCampaignController.refresh"
      }
    },
    "/campaigns/{id}": {
      "get": {
        "x-controller-name": "NotificationCampaignController",
        "x-operation-name": "findById",
        "tags": [
          "NotificationCampaignController"
        ],
        "responses": {
          "200": {
            "description": "Campaign by ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationCampaignWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotificationCampaignController.findById"
      }
    },
    "/campaigns": {
      "post": {
        "x-controller-name": "NotificationCampaignController",
        "x-operation-name": "create",
        "tags": [
          "NotificationCampaignController"
        ],
        "responses": {
          "200": {
            "description": "Created campaign instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationCampaign"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "NotificationCampaignController.create"
      },
      "get": {
        "x-controller-name": "NotificationCampaignController",
        "x-operation-name": "find",
        "tags": [
          "NotificationCampaignController"
        ],
        "responses": {
          "200": {
            "description": "List of campaigns",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationCampaignWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationCampaign.Filter"
                }
              }
            }
          }
        ],
        "operationId": "NotificationCampaignController.find"
      }
    },
    "/conversations/contacts": {
      "get": {
        "x-controller-name": "ChatController",
        "x-operation-name": "listContacts",
        "tags": [
          "ChatController"
        ],
        "responses": {
          "200": {
            "description": "Array of users available to start a conversation with",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChatContactDto"
                  }
                }
              }
            }
          }
        },
        "operationId": "ChatController.listContacts"
      }
    },
    "/conversations/{id}/messages": {
      "get": {
        "x-controller-name": "ChatController",
        "x-operation-name": "getMessages",
        "tags": [
          "ChatController"
        ],
        "responses": {
          "200": {
            "description": "Array of messages (newest first)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChatMessage"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "before",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ChatController.getMessages"
      }
    },
    "/conversations/{id}/read": {
      "post": {
        "x-controller-name": "ChatController",
        "x-operation-name": "markAsRead",
        "tags": [
          "ChatController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Messages marked as read"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ChatController.markAsRead"
      }
    },
    "/conversations": {
      "post": {
        "x-controller-name": "ChatController",
        "x-operation-name": "createConversation",
        "tags": [
          "ChatController"
        ],
        "responses": {
          "200": {
            "description": "Conversation created or found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Conversation"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConversationRequest"
              }
            }
          }
        },
        "operationId": "ChatController.createConversation"
      },
      "get": {
        "x-controller-name": "ChatController",
        "x-operation-name": "listConversations",
        "tags": [
          "ChatController"
        ],
        "responses": {
          "200": {
            "description": "Array of conversations with metadata",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConversationWithMetadata"
                  }
                }
              }
            }
          }
        },
        "operationId": "ChatController.listConversations"
      }
    },
    "/devices/register": {
      "post": {
        "x-controller-name": "UserDeviceController",
        "x-operation-name": "register",
        "tags": [
          "UserDeviceController"
        ],
        "responses": {
          "200": {
            "description": "Registered device instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDevice"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterDeviceRequest"
              }
            }
          }
        },
        "operationId": "UserDeviceController.register"
      }
    },
    "/devices/revoke": {
      "post": {
        "x-controller-name": "UserDeviceController",
        "x-operation-name": "revoke",
        "tags": [
          "UserDeviceController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Device token revoked successfully"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevokeDeviceRequest"
              }
            }
          }
        },
        "operationId": "UserDeviceController.revoke"
      }
    },
    "/devices/revoke-all": {
      "post": {
        "x-controller-name": "UserDeviceController",
        "x-operation-name": "revokeAll",
        "tags": [
          "UserDeviceController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "All user devices revoked successfully"
                }
              }
            }
          }
        },
        "operationId": "UserDeviceController.revokeAll"
      }
    },
    "/devices": {
      "get": {
        "x-controller-name": "UserDeviceController",
        "x-operation-name": "list",
        "tags": [
          "UserDeviceController"
        ],
        "responses": {
          "200": {
            "description": "Active devices registered for the current user",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserDevice"
                  }
                }
              }
            }
          }
        },
        "operationId": "UserDeviceController.list"
      }
    },
    "/notifications/read-all": {
      "post": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "markAllRead",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "200": {
            "description": "Success status of marking all notifications as read",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "operationId": "NotificationController.markAllRead"
      }
    },
    "/notifications/unread-count": {
      "get": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "unreadCount",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "200": {
            "description": "Number of unread notifications for the current user",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "NotificationController.unreadCount"
      }
    },
    "/notifications/{id}/read": {
      "patch": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "markRead",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "200": {
            "description": "Notification marked as read",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Notification"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotificationController.markRead"
      }
    },
    "/notifications/{id}": {
      "delete": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "delete",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Notification deleted successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "NotificationController.delete"
      }
    },
    "/notifications": {
      "get": {
        "x-controller-name": "NotificationController",
        "x-operation-name": "find",
        "tags": [
          "NotificationController"
        ],
        "responses": {
          "200": {
            "description": "List of notifications for the current user",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/NotificationWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Notification.Filter"
                }
              }
            }
          }
        ],
        "operationId": "NotificationController.find"
      }
    },
    "/v1/admin/integrations/{id}/activate": {
      "patch": {
        "x-controller-name": "IntegrationController",
        "x-operation-name": "activateProvider",
        "tags": [
          "IntegrationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Provider activated"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "IntegrationController.activateProvider"
      }
    },
    "/v1/admin/integrations/{category}/active": {
      "get": {
        "x-controller-name": "IntegrationController",
        "x-operation-name": "getActiveConfigs",
        "tags": [
          "IntegrationController"
        ],
        "responses": {
          "200": {
            "description": "Active provider configs",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActiveProviderConfigDto"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "category",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "IntegrationController.getActiveConfigs"
      }
    },
    "/v1/admin/integrations/{id}/deactivate": {
      "patch": {
        "x-controller-name": "IntegrationController",
        "x-operation-name": "deactivateProvider",
        "tags": [
          "IntegrationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Provider deactivated"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "IntegrationController.deactivateProvider"
      }
    },
    "/v1/admin/integrations/{category}/test": {
      "post": {
        "x-controller-name": "IntegrationController",
        "x-operation-name": "testProvider",
        "tags": [
          "IntegrationController"
        ],
        "responses": {
          "200": {
            "description": "Test connection result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TestConnectionResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "category",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestProviderRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "IntegrationController.testProvider"
      }
    },
    "/v1/admin/integrations/{category}": {
      "put": {
        "x-controller-name": "IntegrationController",
        "x-operation-name": "saveConfig",
        "tags": [
          "IntegrationController"
        ],
        "responses": {
          "200": {
            "description": "Saved integration config",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationConfig"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "category",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveConfigRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "IntegrationController.saveConfig"
      }
    },
    "/v1/admin/integrations/{id}": {
      "delete": {
        "x-controller-name": "IntegrationController",
        "x-operation-name": "deleteConfig",
        "tags": [
          "IntegrationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Config deleted"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "IntegrationController.deleteConfig"
      }
    },
    "/v1/admin/integrations": {
      "get": {
        "x-controller-name": "IntegrationController",
        "x-operation-name": "listProviders",
        "tags": [
          "IntegrationController"
        ],
        "responses": {
          "200": {
            "description": "Provider list with config status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProviderMetadataDto"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "IntegrationController.listProviders"
      }
    },
    "/v1/audio-questions/count": {
      "get": {
        "x-controller-name": "AudioQuestionController",
        "x-operation-name": "count",
        "tags": [
          "AudioQuestionController"
        ],
        "responses": {
          "200": {
            "description": "AudioQuestion model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "AudioQuestion.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<AudioQuestion>"
                }
              }
            }
          }
        ],
        "operationId": "AudioQuestionController.count"
      }
    },
    "/v1/audio-questions/{id}": {
      "patch": {
        "x-controller-name": "AudioQuestionController",
        "x-operation-name": "updateById",
        "tags": [
          "AudioQuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "AudioQuestion PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "AudioQuestionController.updateById"
      },
      "get": {
        "x-controller-name": "AudioQuestionController",
        "x-operation-name": "findById",
        "tags": [
          "AudioQuestionController"
        ],
        "responses": {
          "200": {
            "description": "AudioQuestion model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AudioQuestionWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AudioQuestionController.findById"
      },
      "delete": {
        "x-controller-name": "AudioQuestionController",
        "x-operation-name": "deleteById",
        "tags": [
          "AudioQuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "AudioQuestion DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AudioQuestionController.deleteById"
      }
    },
    "/v1/audio-questions": {
      "post": {
        "x-controller-name": "AudioQuestionController",
        "x-operation-name": "create",
        "tags": [
          "AudioQuestionController"
        ],
        "responses": {
          "200": {
            "description": "AudioQuestion model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AudioQuestion"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "AudioQuestionController.create"
      },
      "get": {
        "x-controller-name": "AudioQuestionController",
        "x-operation-name": "find",
        "tags": [
          "AudioQuestionController"
        ],
        "responses": {
          "200": {
            "description": "Array of AudioQuestion instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AudioQuestionWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "AudioQuestionController.find"
      }
    },
    "/v1/auth/account-recovery": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "accountRecovery",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Dedicated account recovery initiation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountRecoveryRequest"
              }
            }
          }
        },
        "operationId": "AuthController.accountRecovery"
      }
    },
    "/v1/auth/complete-registration": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "completeRegistration",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Complete user registration using code and set password",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteRegistrationRequest"
              }
            }
          }
        },
        "operationId": "AuthController.completeRegistration"
      }
    },
    "/v1/auth/login": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "login",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "User login",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          }
        },
        "operationId": "AuthController.login"
      }
    },
    "/v1/auth/logout": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "logout",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Logged out successfully"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LogoutRequest"
              }
            }
          },
          "required": false
        },
        "operationId": "AuthController.logout"
      }
    },
    "/v1/auth/logout-all": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "logoutAll",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Logged out of all devices successfully"
                }
              }
            }
          }
        },
        "operationId": "AuthController.logoutAll"
      }
    },
    "/v1/auth/me": {
      "get": {
        "x-controller-name": "AuthController",
        "x-operation-name": "me",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Current authenticated user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentUserResponse"
                }
              }
            }
          }
        },
        "operationId": "AuthController.me"
      }
    },
    "/v1/auth/mfa/challenge/{id}/resend": {
      "post": {
        "x-controller-name": "MfaController",
        "x-operation-name": "resendChallengeCode",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "Resend the email code for a challenge",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "MfaController.resendChallengeCode"
      }
    },
    "/v1/auth/mfa/challenge/{id}/respond": {
      "post": {
        "x-controller-name": "MfaController",
        "x-operation-name": "respondToChallenge",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Challenge response recorded"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RespondChallengeRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "MfaController.respondToChallenge"
      }
    },
    "/v1/auth/mfa/challenge/{id}": {
      "get": {
        "x-controller-name": "MfaController",
        "x-operation-name": "getChallengeStatus",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "Poll a login challenge status",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MfaChallengeStatusResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "MfaController.getChallengeStatus"
      }
    },
    "/v1/auth/mfa/email/confirm": {
      "post": {
        "x-controller-name": "MfaController",
        "x-operation-name": "confirmEmail",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "Confirms email 2FA activation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MfaCodeConfirmRequest"
              }
            }
          }
        },
        "operationId": "MfaController.confirmEmail"
      }
    },
    "/v1/auth/mfa/email/disable": {
      "post": {
        "x-controller-name": "MfaController",
        "x-operation-name": "disableEmail",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Email 2FA disabled"
                }
              }
            }
          }
        },
        "operationId": "MfaController.disableEmail"
      }
    },
    "/v1/auth/mfa/email/enable": {
      "post": {
        "x-controller-name": "MfaController",
        "x-operation-name": "enableEmail",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "Sends an email confirmation code to enable email 2FA",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        },
        "operationId": "MfaController.enableEmail"
      }
    },
    "/v1/auth/mfa/pending-challenges": {
      "get": {
        "x-controller-name": "MfaController",
        "x-operation-name": "listPendingChallenges",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "Pending login-approval requests for this account",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PendingChallengeSummary"
                  }
                }
              }
            }
          }
        },
        "operationId": "MfaController.listPendingChallenges"
      }
    },
    "/v1/auth/mfa/status": {
      "get": {
        "x-controller-name": "MfaController",
        "x-operation-name": "getStatus",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "Current MFA enrollment status",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MfaStatusResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "deviceId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "MfaController.getStatus"
      }
    },
    "/v1/auth/mfa/totp/confirm": {
      "post": {
        "x-controller-name": "MfaController",
        "x-operation-name": "confirmTotp",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "Confirms TOTP activation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MfaCodeConfirmRequest"
              }
            }
          }
        },
        "operationId": "MfaController.confirmTotp"
      }
    },
    "/v1/auth/mfa/totp/disable": {
      "post": {
        "x-controller-name": "MfaController",
        "x-operation-name": "disableTotp",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "TOTP disabled"
                }
              }
            }
          }
        },
        "operationId": "MfaController.disableTotp"
      }
    },
    "/v1/auth/mfa/totp/setup": {
      "post": {
        "x-controller-name": "MfaController",
        "x-operation-name": "setupTotp",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "TOTP secret + QR code for enrollment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotpSetupResponse"
                }
              }
            }
          }
        },
        "operationId": "MfaController.setupTotp"
      }
    },
    "/v1/auth/mfa/trusted-devices/{id}": {
      "delete": {
        "x-controller-name": "MfaController",
        "x-operation-name": "revokeTrustedDevice",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Trusted device revoked"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "MfaController.revokeTrustedDevice"
      }
    },
    "/v1/auth/mfa/trusted-devices": {
      "get": {
        "x-controller-name": "MfaController",
        "x-operation-name": "listTrustedDevices",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "Devices trusted to skip MFA (adaptive/risk-based)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TrustedDeviceSummary"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "deviceId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "MfaController.listTrustedDevices"
      }
    },
    "/v1/auth/mfa/verify": {
      "post": {
        "x-controller-name": "MfaController",
        "x-operation-name": "verify",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "Completes an MFA challenge and returns a token pair",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MfaVerifyRequest"
              }
            }
          }
        },
        "operationId": "MfaController.verify"
      }
    },
    "/v1/auth/mfa/webauthn/authenticate/options": {
      "post": {
        "x-controller-name": "MfaController",
        "x-operation-name": "getWebauthnAuthenticateOptions",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "Return value of MfaController.getWebauthnAuthenticateOptions"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebauthnAuthOptionsRequest"
              }
            }
          }
        },
        "operationId": "MfaController.getWebauthnAuthenticateOptions"
      }
    },
    "/v1/auth/mfa/webauthn/register/options": {
      "post": {
        "x-controller-name": "MfaController",
        "x-operation-name": "getWebauthnRegisterOptions",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "Return value of MfaController.getWebauthnRegisterOptions"
          }
        },
        "operationId": "MfaController.getWebauthnRegisterOptions"
      }
    },
    "/v1/auth/mfa/webauthn/register/verify": {
      "post": {
        "x-controller-name": "MfaController",
        "x-operation-name": "verifyWebauthnRegistration",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "200": {
            "description": "Newly registered WebAuthn credential",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebauthnCredentialSummary"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebauthnRegisterVerifyRequest"
              }
            }
          }
        },
        "operationId": "MfaController.verifyWebauthnRegistration"
      }
    },
    "/v1/auth/mfa/webauthn/{credentialId}": {
      "delete": {
        "x-controller-name": "MfaController",
        "x-operation-name": "removeWebauthnCredential",
        "tags": [
          "MfaController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "WebAuthn credential removed"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "credentialId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "MfaController.removeWebauthnCredential"
      }
    },
    "/v1/auth/oauth/providers": {
      "get": {
        "x-controller-name": "OAuthController",
        "x-operation-name": "listOAuthProviders",
        "tags": [
          "OAuthController"
        ],
        "responses": {
          "200": {
            "description": "List configured OAuth providers",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OAuthProviderInfo"
                  }
                }
              }
            }
          }
        },
        "operationId": "OAuthController.listOAuthProviders"
      }
    },
    "/v1/auth/oauth/{provider}/authorize": {
      "get": {
        "x-controller-name": "OAuthController",
        "x-operation-name": "getAuthorizationUrl",
        "tags": [
          "OAuthController"
        ],
        "responses": {
          "200": {
            "description": "Authorization URL to redirect the user to",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthAuthorizationUrlResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "redirectUri",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "OAuthController.getAuthorizationUrl"
      }
    },
    "/v1/auth/oauth/{provider}/callback": {
      "get": {
        "x-controller-name": "OAuthController",
        "x-operation-name": "handleCallback",
        "tags": [
          "OAuthController"
        ],
        "responses": {
          "200": {
            "description": "Login response with access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "redirectUri",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "OAuthController.handleCallback"
      }
    },
    "/v1/auth/oauth/{provider}/link": {
      "post": {
        "x-controller-name": "OAuthController",
        "x-operation-name": "linkProvider",
        "tags": [
          "OAuthController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Provider linked successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkOAuthProviderRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "OAuthController.linkProvider"
      }
    },
    "/v1/auth/oauth/{provider}/unlink": {
      "delete": {
        "x-controller-name": "OAuthController",
        "x-operation-name": "unlinkProvider",
        "tags": [
          "OAuthController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Provider unlinked successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OAuthController.unlinkProvider"
      }
    },
    "/v1/auth/refresh": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "refresh",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Renewed access/refresh token pair",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenPairResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            }
          }
        },
        "operationId": "AuthController.refresh"
      }
    },
    "/v1/auth/request-password-reset": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "requestPasswordReset",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Password reset email sent (if user account exists)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordResetRequest"
              }
            }
          }
        },
        "operationId": "AuthController.requestPasswordReset"
      }
    },
    "/v1/auth/reset-password": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "resetPassword",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Password has been reset successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request (e.g., missing fields, invalid code format, or password too short)"
          },
          "401": {
            "description": "Unauthorized (e.g., invalid/expired code)"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordConfirmRequest"
              }
            }
          }
        },
        "operationId": "AuthController.resetPassword"
      }
    },
    "/v1/auth/signup": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "create",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "User self-registration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NewUser"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User"
              }
            }
          }
        },
        "operationId": "AuthController.create"
      }
    },
    "/v1/auth/verify-code": {
      "post": {
        "x-controller-name": "AuthController",
        "x-operation-name": "verifyUserWithCode",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Verify user account using 6-digit code sent via email",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerifyCodeResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyUserWithCodeRequest"
              }
            }
          }
        },
        "operationId": "AuthController.verifyUserWithCode"
      }
    },
    "/v1/auth/verify-token": {
      "get": {
        "x-controller-name": "AuthController",
        "x-operation-name": "verifyUserWithToken",
        "tags": [
          "AuthController"
        ],
        "responses": {
          "200": {
            "description": "Verify user account using token from email link",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "AuthController.verifyUserWithToken"
      }
    },
    "/v1/collection-routes/{routeId}/executions/{executionId}/visits/{visitId}/forms": {
      "post": {
        "x-controller-name": "CollectionRouteController",
        "x-operation-name": "recordVisitForm",
        "tags": [
          "CollectionRouteController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Record a form answered during a visit"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "routeId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "executionId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "visitId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "formId"
                ],
                "properties": {
                  "formId": {
                    "type": "string"
                  },
                  "answeredAt": {
                    "type": "string",
                    "format": "date-time"
                  }
                }
              }
            }
          },
          "x-parameter-index": 3
        },
        "operationId": "CollectionRouteController.recordVisitForm"
      }
    },
    "/v1/collection-routes/{routeId}/executions/{executionId}/visits": {
      "post": {
        "x-controller-name": "CollectionRouteController",
        "x-operation-name": "recordVisit",
        "tags": [
          "CollectionRouteController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Record a passive liability visit during execution"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "routeId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "executionId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "liabilityId",
                  "visitedAt"
                ],
                "properties": {
                  "liabilityId": {
                    "type": "string"
                  },
                  "visitedAt": {
                    "type": "string",
                    "format": "date-time"
                  }
                }
              }
            }
          },
          "x-parameter-index": 2
        },
        "operationId": "CollectionRouteController.recordVisit"
      }
    },
    "/v1/collection-routes/{routeId}/executions/{executionId}": {
      "patch": {
        "x-controller-name": "CollectionRouteController",
        "x-operation-name": "updateExecution",
        "tags": [
          "CollectionRouteController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update execution status or finish it"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "routeId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "executionId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "em_andamento",
                      "concluida",
                      "cancelada"
                    ]
                  },
                  "finishedAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "notes": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "x-parameter-index": 2
        },
        "operationId": "CollectionRouteController.updateExecution"
      }
    },
    "/v1/collection-routes/{routeId}/executions": {
      "post": {
        "x-controller-name": "CollectionRouteController",
        "x-operation-name": "startExecution",
        "tags": [
          "CollectionRouteController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Start a new route execution"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "routeId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "collectorId"
                ],
                "properties": {
                  "collectorId": {
                    "type": "string"
                  },
                  "notes": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "CollectionRouteController.startExecution"
      }
    },
    "/v1/collection-routes/{id}": {
      "patch": {
        "x-controller-name": "CollectionRouteController",
        "x-operation-name": "updateById",
        "tags": [
          "CollectionRouteController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "CollectionRoute updated"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "projectId": {
                    "type": "string"
                  },
                  "passiveIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "routeFeatureIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "collectorIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "formIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "CollectionRouteController.updateById"
      },
      "get": {
        "x-controller-name": "CollectionRouteController",
        "x-operation-name": "findById",
        "tags": [
          "CollectionRouteController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "CollectionRoute instance with all relations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "CollectionRouteController.findById"
      },
      "delete": {
        "x-controller-name": "CollectionRouteController",
        "x-operation-name": "deleteById",
        "tags": [
          "CollectionRouteController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "CollectionRoute soft-deleted"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "CollectionRouteController.deleteById"
      }
    },
    "/v1/collection-routes": {
      "post": {
        "x-controller-name": "CollectionRouteController",
        "x-operation-name": "create",
        "tags": [
          "CollectionRouteController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "CollectionRoute created"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "projectId",
                  "collectorIds",
                  "formIds"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "projectId": {
                    "type": "string"
                  },
                  "passiveIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "routeFeatureIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "collectorIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "formIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "CollectionRouteController.create"
      },
      "get": {
        "x-controller-name": "CollectionRouteController",
        "x-operation-name": "find",
        "tags": [
          "CollectionRouteController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Array of CollectionRoute instances"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "CollectionRouteController.find"
      }
    },
    "/v1/evidences/{id}": {
      "patch": {
        "x-controller-name": "LiabilityEvidenceController",
        "x-operation-name": "updateById",
        "tags": [
          "LiabilityEvidenceController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "LiabilityEvidence PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LiabilityEvidencePartialExcluding_id-liabilityId-createdAt-updatedAt-deletedAt_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "LiabilityEvidenceController.updateById"
      },
      "delete": {
        "x-controller-name": "LiabilityEvidenceController",
        "x-operation-name": "deleteById",
        "tags": [
          "LiabilityEvidenceController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "LiabilityEvidence DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LiabilityEvidenceController.deleteById"
      }
    },
    "/v1/exports/csv": {
      "get": {
        "x-controller-name": "ExportController",
        "x-operation-name": "exportCsv",
        "tags": [
          "ExportController"
        ],
        "responses": {
          "200": {
            "description": "The file content",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$ref": "#/components/schemas/ExportFilter",
                  "definitions": {
                    "ExportFilter": {
                      "$ref": "#/components/schemas/ExportFilter"
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "ExportController.exportCsv"
      }
    },
    "/v1/exports/xlsx": {
      "get": {
        "x-controller-name": "ExportController",
        "x-operation-name": "exportXlsx",
        "tags": [
          "ExportController"
        ],
        "responses": {
          "200": {
            "description": "The file content",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$ref": "#/components/schemas/ExportFilter",
                  "definitions": {
                    "ExportFilter": {
                      "$ref": "#/components/schemas/ExportFilter"
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "ExportController.exportXlsx"
      }
    },
    "/v1/feature-groups/count": {
      "get": {
        "x-controller-name": "FeatureGroupController",
        "x-operation-name": "count",
        "tags": [
          "FeatureGroupController"
        ],
        "responses": {
          "200": {
            "description": "FeatureGroup model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "FeatureGroup.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<FeatureGroup>"
                }
              }
            }
          }
        ],
        "operationId": "FeatureGroupController.count"
      }
    },
    "/v1/feature-groups/{id}": {
      "patch": {
        "x-controller-name": "FeatureGroupController",
        "x-operation-name": "updateById",
        "tags": [
          "FeatureGroupController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "FeatureGroup PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FeatureGroupPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "FeatureGroupController.updateById"
      },
      "get": {
        "x-controller-name": "FeatureGroupController",
        "x-operation-name": "findById",
        "tags": [
          "FeatureGroupController"
        ],
        "responses": {
          "200": {
            "description": "FeatureGroup by ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeatureGroup"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeatureGroup.Filter"
                }
              }
            }
          }
        ],
        "operationId": "FeatureGroupController.findById"
      },
      "delete": {
        "x-controller-name": "FeatureGroupController",
        "x-operation-name": "deleteById",
        "tags": [
          "FeatureGroupController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "FeatureGroup DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FeatureGroupController.deleteById"
      }
    },
    "/v1/feature-groups": {
      "post": {
        "x-controller-name": "FeatureGroupController",
        "x-operation-name": "create",
        "tags": [
          "FeatureGroupController"
        ],
        "responses": {
          "200": {
            "description": "Created FeatureGroup",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeatureGroup"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FeatureGroup"
              }
            }
          }
        },
        "operationId": "FeatureGroupController.create"
      },
      "get": {
        "x-controller-name": "FeatureGroupController",
        "x-operation-name": "find",
        "tags": [
          "FeatureGroupController"
        ],
        "responses": {
          "200": {
            "description": "List of FeatureGroups",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FeatureGroup"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeatureGroup.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "FeatureGroupController.find"
      }
    },
    "/v1/feature-groups-permissions": {
      "get": {
        "x-controller-name": "FeatureGroupController",
        "x-operation-name": "findWithPermissions",
        "tags": [
          "FeatureGroupController"
        ],
        "responses": {
          "200": {
            "description": "List of FeatureGroups with permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FeatureGroupWithFeatures"
                  }
                }
              }
            }
          }
        },
        "operationId": "FeatureGroupController.findWithPermissions"
      }
    },
    "/v1/features/count": {
      "get": {
        "x-controller-name": "FeatureController",
        "x-operation-name": "count",
        "tags": [
          "FeatureController"
        ],
        "responses": {
          "200": {
            "description": "Features model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Features.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Features>"
                }
              }
            }
          }
        ],
        "operationId": "FeatureController.count"
      }
    },
    "/v1/features/sync": {
      "post": {
        "x-controller-name": "FeatureController",
        "x-operation-name": "sync",
        "tags": [
          "FeatureController"
        ],
        "responses": {
          "200": {
            "description": "Sync discovered permissions from controller metadata",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "newPermissions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "totalPermissions": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "FeatureController.sync"
      }
    },
    "/v1/features/{id}": {
      "patch": {
        "x-controller-name": "FeatureController",
        "x-operation-name": "updateById",
        "tags": [
          "FeatureController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Feature PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FeaturesPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "FeatureController.updateById"
      },
      "get": {
        "x-controller-name": "FeatureController",
        "x-operation-name": "findById",
        "tags": [
          "FeatureController"
        ],
        "responses": {
          "200": {
            "description": "Feature by ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Features"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Features.Filter"
                }
              }
            }
          }
        ],
        "operationId": "FeatureController.findById"
      },
      "delete": {
        "x-controller-name": "FeatureController",
        "x-operation-name": "deleteById",
        "tags": [
          "FeatureController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Feature DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FeatureController.deleteById"
      }
    },
    "/v1/features": {
      "post": {
        "x-controller-name": "FeatureController",
        "x-operation-name": "create",
        "tags": [
          "FeatureController"
        ],
        "responses": {
          "200": {
            "description": "Created Feature",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Features"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Features"
              }
            }
          }
        },
        "operationId": "FeatureController.create"
      },
      "get": {
        "x-controller-name": "FeatureController",
        "x-operation-name": "find",
        "tags": [
          "FeatureController"
        ],
        "responses": {
          "200": {
            "description": "List of Features",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Features"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Features.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "FeatureController.find"
      }
    },
    "/v1/forms/count": {
      "get": {
        "x-controller-name": "FormController",
        "x-operation-name": "count",
        "tags": [
          "FormController"
        ],
        "responses": {
          "200": {
            "description": "Form model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Form.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Form>"
                }
              }
            }
          }
        ],
        "operationId": "FormController.count"
      }
    },
    "/v1/forms/{id}/collectors": {
      "get": {
        "x-controller-name": "FormController",
        "x-operation-name": "findCollectors",
        "tags": [
          "FormController"
        ],
        "responses": {
          "200": {
            "description": "List of collectors associated with the form",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FormController.findCollectors"
      }
    },
    "/v1/forms/{id}/questions/{questionId}": {
      "post": {
        "x-controller-name": "FormQuestionController",
        "x-operation-name": "create",
        "tags": [
          "FormQuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Question added to form"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "questionId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FormQuestionController.create"
      },
      "delete": {
        "x-controller-name": "FormQuestionController",
        "x-operation-name": "delete",
        "tags": [
          "FormQuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Question removed from form"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "questionId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FormQuestionController.delete"
      }
    },
    "/v1/forms/{id}/routes": {
      "get": {
        "x-controller-name": "FormController",
        "x-operation-name": "findRoutes",
        "tags": [
          "FormController"
        ],
        "responses": {
          "200": {
            "description": "List of routes associated with the form",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CollectionRoute"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FormController.findRoutes"
      }
    },
    "/v1/forms/{id}/sections": {
      "patch": {
        "x-controller-name": "FormController",
        "x-operation-name": "replaceSections",
        "tags": [
          "FormController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Form sections replaced successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateFormSectionsRequest"
              }
            }
          },
          "description": "Replace all sections of a form",
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "FormController.replaceSections"
      },
      "get": {
        "x-controller-name": "FormController",
        "x-operation-name": "findSections",
        "tags": [
          "FormController"
        ],
        "responses": {
          "200": {
            "description": "Array of FormSection instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FormController.findSections"
      }
    },
    "/v1/forms/{id}/takes/count": {
      "get": {
        "x-controller-name": "FormTakeController",
        "x-operation-name": "count",
        "tags": [
          "FormTakeController"
        ],
        "summary": "Count takes for a specific form",
        "description": "Returns the number of submission attempts (takes) recorded for a given form ID.",
        "responses": {
          "200": {
            "description": "Count of form submissions",
            "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": "Take.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Take>"
                }
              }
            }
          }
        ],
        "operationId": "FormTakeController.count"
      }
    },
    "/v1/forms/{id}/takes": {
      "get": {
        "x-controller-name": "FormTakeController",
        "x-operation-name": "find",
        "tags": [
          "FormTakeController"
        ],
        "summary": "List all takes for a specific form",
        "description": "Retrieves a list of all submission attempts (takes) associated with a given form ID, including execution dates and collector details.",
        "responses": {
          "200": {
            "description": "Array of Take instances (submissions of form)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TakeWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "FormTakeController.find"
      }
    },
    "/v1/forms/{id}/users/{userId}": {
      "post": {
        "x-controller-name": "FormUserController",
        "x-operation-name": "create",
        "tags": [
          "FormUserController"
        ],
        "summary": "Assign a user to a form",
        "description": "Grants permission to a specific user (collector) to perform submissions (takes) on a form.",
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Form assigned to user"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FormUserController.create"
      },
      "delete": {
        "x-controller-name": "FormUserController",
        "x-operation-name": "delete",
        "tags": [
          "FormUserController"
        ],
        "summary": "Unassign a user from a form",
        "description": "Revokes the permission of a specific user (collector) to perform submissions on a form.",
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Form unassigned from user"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FormUserController.delete"
      }
    },
    "/v1/forms/{id}": {
      "put": {
        "x-controller-name": "FormController",
        "x-operation-name": "replaceById",
        "tags": [
          "FormController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Form PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Form"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "FormController.replaceById"
      },
      "patch": {
        "x-controller-name": "FormController",
        "x-operation-name": "updateById",
        "tags": [
          "FormController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Form PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateFormRequest"
              }
            }
          },
          "description": "Partially update a form (optionally replacing sections)",
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "FormController.updateById"
      },
      "get": {
        "x-controller-name": "FormController",
        "x-operation-name": "findById",
        "tags": [
          "FormController"
        ],
        "responses": {
          "200": {
            "description": "Form model instance with sections",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormWithRelationsResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FormController.findById"
      },
      "delete": {
        "x-controller-name": "FormController",
        "x-operation-name": "deleteById",
        "tags": [
          "FormController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Form DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "FormController.deleteById"
      }
    },
    "/v1/forms": {
      "post": {
        "x-controller-name": "FormController",
        "x-operation-name": "create",
        "tags": [
          "FormController"
        ],
        "responses": {
          "200": {
            "description": "Form model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Form"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFormRequest"
              }
            }
          },
          "description": "Create a form with sections and questions",
          "required": true
        },
        "operationId": "FormController.create"
      },
      "patch": {
        "x-controller-name": "FormController",
        "x-operation-name": "updateAll",
        "tags": [
          "FormController"
        ],
        "responses": {
          "200": {
            "description": "Form PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Form.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Form>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormPartial"
              }
            }
          }
        },
        "operationId": "FormController.updateAll"
      },
      "get": {
        "x-controller-name": "FormController",
        "x-operation-name": "find",
        "tags": [
          "FormController"
        ],
        "responses": {
          "200": {
            "description": "List of forms with sections",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FormWithRelationsResponse"
                  }
                }
              }
            }
          }
        },
        "operationId": "FormController.find"
      }
    },
    "/v1/liabilities/{id}/evidences": {
      "post": {
        "x-controller-name": "LiabilityEvidenceController",
        "x-operation-name": "create",
        "tags": [
          "LiabilityEvidenceController"
        ],
        "responses": {
          "200": {
            "description": "LiabilityEvidence model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiabilityEvidence"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  },
                  "fileType": {
                    "type": "string"
                  },
                  "caption": {
                    "type": "string"
                  },
                  "metadata": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "description": "Multipart form data containing the file and fields",
          "required": true,
          "x-parameter-index": 1
        },
        "operationId": "LiabilityEvidenceController.create"
      }
    },
    "/v1/liabilities/{id}/status": {
      "patch": {
        "x-controller-name": "LiabilityController",
        "x-operation-name": "updateStatus",
        "tags": [
          "LiabilityController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Liability status updated successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLiabilityStatusRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "LiabilityController.updateStatus"
      }
    },
    "/v1/liabilities/{id}/tags/{tagId}": {
      "delete": {
        "x-controller-name": "LiabilityController",
        "x-operation-name": "removeTag",
        "tags": [
          "LiabilityController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Tag removed from liability"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "tagId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LiabilityController.removeTag"
      }
    },
    "/v1/liabilities/{id}/tags": {
      "post": {
        "x-controller-name": "LiabilityController",
        "x-operation-name": "assignTag",
        "tags": [
          "LiabilityController"
        ],
        "responses": {
          "200": {
            "description": "Tag assigned to liability",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "LiabilityController.assignTag"
      }
    },
    "/v1/liabilities/{id}/title": {
      "patch": {
        "x-controller-name": "LiabilityController",
        "x-operation-name": "updateTitle",
        "tags": [
          "LiabilityController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Liability title updated successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLiabilityTitleRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "LiabilityController.updateTitle"
      }
    },
    "/v1/liabilities/{id}": {
      "patch": {
        "x-controller-name": "LiabilityController",
        "x-operation-name": "updateById",
        "tags": [
          "LiabilityController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Liability PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLiabilityRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "LiabilityController.updateById"
      },
      "get": {
        "x-controller-name": "LiabilityController",
        "x-operation-name": "findById",
        "tags": [
          "LiabilityController"
        ],
        "responses": {
          "200": {
            "description": "Liability model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiabilityWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Liability.Filter"
                }
              }
            }
          }
        ],
        "operationId": "LiabilityController.findById"
      },
      "delete": {
        "x-controller-name": "LiabilityController",
        "x-operation-name": "deleteById",
        "tags": [
          "LiabilityController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Liability DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LiabilityController.deleteById"
      }
    },
    "/v1/liabilities": {
      "post": {
        "x-controller-name": "LiabilityController",
        "x-operation-name": "create",
        "tags": [
          "LiabilityController"
        ],
        "responses": {
          "200": {
            "description": "Liability model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Liability"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLiabilityRequest"
              }
            }
          }
        },
        "operationId": "LiabilityController.create"
      }
    },
    "/v1/location-questions/count": {
      "get": {
        "x-controller-name": "LocationQuestionController",
        "x-operation-name": "count",
        "tags": [
          "LocationQuestionController"
        ],
        "responses": {
          "200": {
            "description": "LocationQuestion model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "LocationQuestion.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<LocationQuestion>"
                }
              }
            }
          }
        ],
        "operationId": "LocationQuestionController.count"
      }
    },
    "/v1/location-questions/{id}": {
      "patch": {
        "x-controller-name": "LocationQuestionController",
        "x-operation-name": "updateById",
        "tags": [
          "LocationQuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "LocationQuestion PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocationQuestionPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "LocationQuestionController.updateById"
      },
      "get": {
        "x-controller-name": "LocationQuestionController",
        "x-operation-name": "findById",
        "tags": [
          "LocationQuestionController"
        ],
        "responses": {
          "200": {
            "description": "LocationQuestion model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationQuestionWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LocationQuestionController.findById"
      },
      "delete": {
        "x-controller-name": "LocationQuestionController",
        "x-operation-name": "deleteById",
        "tags": [
          "LocationQuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "LocationQuestion DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LocationQuestionController.deleteById"
      }
    },
    "/v1/location-questions": {
      "post": {
        "x-controller-name": "LocationQuestionController",
        "x-operation-name": "create",
        "tags": [
          "LocationQuestionController"
        ],
        "responses": {
          "200": {
            "description": "LocationQuestion model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationQuestion"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewLocationQuestion"
              }
            }
          }
        },
        "operationId": "LocationQuestionController.create"
      },
      "get": {
        "x-controller-name": "LocationQuestionController",
        "x-operation-name": "find",
        "tags": [
          "LocationQuestionController"
        ],
        "responses": {
          "200": {
            "description": "Array of LocationQuestion instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LocationQuestionWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "LocationQuestionController.find"
      }
    },
    "/v1/media-questions/count": {
      "get": {
        "x-controller-name": "MediaQuestionController",
        "x-operation-name": "count",
        "tags": [
          "MediaQuestionController"
        ],
        "responses": {
          "200": {
            "description": "MediaQuestion model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "MediaQuestion.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<MediaQuestion>"
                }
              }
            }
          }
        ],
        "operationId": "MediaQuestionController.count"
      }
    },
    "/v1/media-questions/{id}": {
      "patch": {
        "x-controller-name": "MediaQuestionController",
        "x-operation-name": "updateById",
        "tags": [
          "MediaQuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "MediaQuestion PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaQuestionPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "MediaQuestionController.updateById"
      },
      "get": {
        "x-controller-name": "MediaQuestionController",
        "x-operation-name": "findById",
        "tags": [
          "MediaQuestionController"
        ],
        "responses": {
          "200": {
            "description": "MediaQuestion model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaQuestionWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "MediaQuestionController.findById"
      },
      "delete": {
        "x-controller-name": "MediaQuestionController",
        "x-operation-name": "deleteById",
        "tags": [
          "MediaQuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "MediaQuestion DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "MediaQuestionController.deleteById"
      }
    },
    "/v1/media-questions": {
      "post": {
        "x-controller-name": "MediaQuestionController",
        "x-operation-name": "create",
        "tags": [
          "MediaQuestionController"
        ],
        "responses": {
          "200": {
            "description": "MediaQuestion model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaQuestion"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewMediaQuestion"
              }
            }
          }
        },
        "operationId": "MediaQuestionController.create"
      },
      "get": {
        "x-controller-name": "MediaQuestionController",
        "x-operation-name": "find",
        "tags": [
          "MediaQuestionController"
        ],
        "responses": {
          "200": {
            "description": "Array of MediaQuestion instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MediaQuestionWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "MediaQuestionController.find"
      }
    },
    "/v1/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"
      }
    },
    "/v1/polygon-questions/count": {
      "get": {
        "x-controller-name": "PolygonQuestionController",
        "x-operation-name": "count",
        "tags": [
          "PolygonQuestionController"
        ],
        "responses": {
          "200": {
            "description": "AreaQuestion model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "AreaQuestion.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<AreaQuestion>"
                }
              }
            }
          }
        ],
        "operationId": "PolygonQuestionController.count"
      }
    },
    "/v1/polygon-questions/{id}": {
      "patch": {
        "x-controller-name": "PolygonQuestionController",
        "x-operation-name": "updateById",
        "tags": [
          "PolygonQuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "AreaQuestion PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AreaQuestionPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "PolygonQuestionController.updateById"
      },
      "get": {
        "x-controller-name": "PolygonQuestionController",
        "x-operation-name": "findById",
        "tags": [
          "PolygonQuestionController"
        ],
        "responses": {
          "200": {
            "description": "AreaQuestion model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaQuestionWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "PolygonQuestionController.findById"
      },
      "delete": {
        "x-controller-name": "PolygonQuestionController",
        "x-operation-name": "deleteById",
        "tags": [
          "PolygonQuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "AreaQuestion DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "PolygonQuestionController.deleteById"
      }
    },
    "/v1/polygon-questions": {
      "post": {
        "x-controller-name": "PolygonQuestionController",
        "x-operation-name": "create",
        "tags": [
          "PolygonQuestionController"
        ],
        "responses": {
          "200": {
            "description": "AreaQuestion model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaQuestion"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewAreaQuestion"
              }
            }
          }
        },
        "operationId": "PolygonQuestionController.create"
      },
      "get": {
        "x-controller-name": "PolygonQuestionController",
        "x-operation-name": "find",
        "tags": [
          "PolygonQuestionController"
        ],
        "responses": {
          "200": {
            "description": "Array of AreaQuestion instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AreaQuestionWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "PolygonQuestionController.find"
      }
    },
    "/v1/profiles/collectors/minimum-permissions": {
      "get": {
        "x-controller-name": "ProfileController",
        "x-operation-name": "getMinimumCollectorPermissions",
        "tags": [
          "ProfileController"
        ],
        "responses": {
          "200": {
            "description": "Minimum permissions required for a collector profile",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "ProfileController.getMinimumCollectorPermissions"
      }
    },
    "/v1/profiles/count": {
      "get": {
        "x-controller-name": "ProfileController",
        "x-operation-name": "count",
        "tags": [
          "ProfileController"
        ],
        "responses": {
          "200": {
            "description": "Profiles model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Profiles.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Profiles>"
                }
              }
            }
          }
        ],
        "operationId": "ProfileController.count"
      }
    },
    "/v1/profiles/with-permissions-count": {
      "get": {
        "x-controller-name": "ProfileController",
        "x-operation-name": "findWithPermissionsCount",
        "tags": [
          "ProfileController"
        ],
        "responses": {
          "200": {
            "description": "List of Profiles with their permissions and permissions count",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfilesWithPermissions"
                  }
                }
              }
            }
          }
        },
        "operationId": "ProfileController.findWithPermissionsCount"
      }
    },
    "/v1/profiles/{id}/features/{featureId}": {
      "post": {
        "x-controller-name": "ProfileController",
        "x-operation-name": "addFeature",
        "tags": [
          "ProfileController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Permission assigned to profile"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "featureId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProfileController.addFeature"
      },
      "delete": {
        "x-controller-name": "ProfileController",
        "x-operation-name": "removeFeature",
        "tags": [
          "ProfileController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Permission removed from profile"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "featureId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProfileController.removeFeature"
      }
    },
    "/v1/profiles/{id}": {
      "put": {
        "x-controller-name": "ProfileController",
        "x-operation-name": "replaceById",
        "tags": [
          "ProfileController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Profile PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Profiles"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ProfileController.replaceById"
      },
      "patch": {
        "x-controller-name": "ProfileController",
        "x-operation-name": "updateById",
        "tags": [
          "ProfileController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Profile PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfilesPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ProfileController.updateById"
      },
      "get": {
        "x-controller-name": "ProfileController",
        "x-operation-name": "findById",
        "tags": [
          "ProfileController"
        ],
        "responses": {
          "200": {
            "description": "Profile by ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfilesWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Profiles.Filter"
                }
              }
            }
          }
        ],
        "operationId": "ProfileController.findById"
      },
      "delete": {
        "x-controller-name": "ProfileController",
        "x-operation-name": "deleteById",
        "tags": [
          "ProfileController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Profile DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProfileController.deleteById"
      }
    },
    "/v1/profiles": {
      "post": {
        "x-controller-name": "ProfileController",
        "x-operation-name": "create",
        "tags": [
          "ProfileController"
        ],
        "responses": {
          "200": {
            "description": "Created Profile",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Profiles"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Profiles"
              }
            }
          }
        },
        "operationId": "ProfileController.create"
      },
      "patch": {
        "x-controller-name": "ProfileController",
        "x-operation-name": "updateAll",
        "tags": [
          "ProfileController"
        ],
        "responses": {
          "200": {
            "description": "Profiles PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Profiles.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Profiles>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfilesPartial"
              }
            }
          }
        },
        "operationId": "ProfileController.updateAll"
      },
      "get": {
        "x-controller-name": "ProfileController",
        "x-operation-name": "find",
        "tags": [
          "ProfileController"
        ],
        "responses": {
          "200": {
            "description": "List of Profiles",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfilesWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Profiles.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "ProfileController.find"
      }
    },
    "/v1/projects/count": {
      "get": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "count",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "200": {
            "description": "Project model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Project.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Project>"
                }
              }
            }
          }
        ],
        "operationId": "ProjectController.count"
      }
    },
    "/v1/projects/liabilities": {
      "get": {
        "x-controller-name": "LiabilityController",
        "x-operation-name": "findByProjects",
        "tags": [
          "LiabilityController"
        ],
        "responses": {
          "200": {
            "description": "Array of Liability model instances for multiple projects",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LiabilityWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "projectIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Liability.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "LiabilityController.findByProjects"
      }
    },
    "/v1/projects/{id}/activate": {
      "post": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "activate",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Project activated successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProjectController.activate"
      }
    },
    "/v1/projects/{id}/cancel": {
      "post": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "cancel",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Project canceled successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProjectController.cancel"
      }
    },
    "/v1/projects/{projectId}/collection-routes": {
      "get": {
        "x-controller-name": "CollectionRouteController",
        "x-operation-name": "findByProject",
        "tags": [
          "CollectionRouteController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Routes for a specific project"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "CollectionRouteController.findByProject"
      }
    },
    "/v1/projects/{id}/collectors": {
      "get": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "findCollectors",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "200": {
            "description": "List of eligible collectors in the project",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProjectController.findCollectors"
      }
    },
    "/v1/projects/{id}/complete": {
      "post": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "complete",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Project completed successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProjectController.complete"
      }
    },
    "/v1/projects/{id}/custom-fields": {
      "patch": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "patchCustomFields",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Partial patch of custom fields"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomFieldPatchRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ProjectController.patchCustomFields"
      }
    },
    "/v1/projects/{id}/forms/count": {
      "get": {
        "x-controller-name": "ProjectFormController",
        "x-operation-name": "count",
        "tags": [
          "ProjectFormController"
        ],
        "responses": {
          "200": {
            "description": "Count of forms in project",
            "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": "Form.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Form>"
                }
              }
            }
          }
        ],
        "operationId": "ProjectFormController.count"
      }
    },
    "/v1/projects/{id}/forms": {
      "post": {
        "x-controller-name": "ProjectFormController",
        "x-operation-name": "create",
        "tags": [
          "ProjectFormController"
        ],
        "responses": {
          "200": {
            "description": "Project.Form model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Form"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewFormInProject"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ProjectFormController.create"
      },
      "get": {
        "x-controller-name": "ProjectFormController",
        "x-operation-name": "find",
        "tags": [
          "ProjectFormController"
        ],
        "responses": {
          "200": {
            "description": "Array of Form instances belonging to Project",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FormWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "ProjectFormController.find"
      }
    },
    "/v1/projects/{projectId}/liabilities": {
      "get": {
        "x-controller-name": "LiabilityController",
        "x-operation-name": "findByProject",
        "tags": [
          "LiabilityController"
        ],
        "responses": {
          "200": {
            "description": "Array of Liability model instances for a project",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LiabilityWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Liability.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "LiabilityController.findByProject"
      }
    },
    "/v1/projects/{id}/members/count": {
      "get": {
        "x-controller-name": "ProjectUserController",
        "x-operation-name": "count",
        "tags": [
          "ProjectUserController"
        ],
        "summary": "Count project members",
        "description": "Returns the total number of members currently assigned to a project.",
        "responses": {
          "200": {
            "description": "Count of members",
            "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": "ProjectUser.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<ProjectUser>"
                }
              }
            }
          }
        ],
        "operationId": "ProjectUserController.count"
      }
    },
    "/v1/projects/{id}/members/{userId}": {
      "delete": {
        "x-controller-name": "ProjectMemberController",
        "x-operation-name": "removeMember",
        "tags": [
          "ProjectMemberController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Member removed successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "userId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProjectMemberController.removeMember"
      }
    },
    "/v1/projects/{id}/members": {
      "post": {
        "x-controller-name": "ProjectMemberController",
        "x-operation-name": "addMember",
        "tags": [
          "ProjectMemberController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Member added successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddProjectMemberRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ProjectMemberController.addMember"
      },
      "get": {
        "x-controller-name": "ProjectUserController",
        "x-operation-name": "find",
        "tags": [
          "ProjectUserController"
        ],
        "summary": "List all members of a project",
        "description": "Retrieves the list of users (members) assigned to a specific project along with their project-specific roles.",
        "responses": {
          "200": {
            "description": "Array of ProjectUser instances (members)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProjectUserWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "ProjectUserController.find"
      }
    },
    "/v1/projects/{id}/pause": {
      "post": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "pause",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Project paused successfully"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProjectController.pause"
      }
    },
    "/v1/projects/{projectId}/route-features": {
      "get": {
        "x-controller-name": "RouteFeatureController",
        "x-operation-name": "findByProject",
        "tags": [
          "RouteFeatureController"
        ],
        "responses": {
          "200": {
            "description": "List of route features belonging to a project",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RouteFeatureResponse"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RouteFeature.Filter"
                }
              }
            }
          }
        ],
        "operationId": "RouteFeatureController.findByProject"
      }
    },
    "/v1/projects/{id}/summary": {
      "get": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "getSummary",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "200": {
            "description": "Project summary with relations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProjectController.getSummary"
      }
    },
    "/v1/projects/{id}": {
      "put": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "replaceById",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Project PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Project"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ProjectController.replaceById"
      },
      "patch": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "updateById",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Project PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProjectRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ProjectController.updateById"
      },
      "get": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "findById",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "200": {
            "description": "Project model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project.Filter"
                }
              }
            }
          }
        ],
        "operationId": "ProjectController.findById"
      },
      "delete": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "deleteById",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Project DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "ProjectController.deleteById"
      }
    },
    "/v1/projects": {
      "post": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "create",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "200": {
            "description": "Project model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectRequest"
              }
            }
          }
        },
        "operationId": "ProjectController.create"
      },
      "patch": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "updateAll",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "200": {
            "description": "Project PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Project.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Project>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Project"
              }
            }
          }
        },
        "operationId": "ProjectController.updateAll"
      },
      "get": {
        "x-controller-name": "ProjectController",
        "x-operation-name": "find",
        "tags": [
          "ProjectController"
        ],
        "responses": {
          "200": {
            "description": "List of projects",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProjectWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "ProjectController.find"
      }
    },
    "/v1/question-hints/count": {
      "get": {
        "x-controller-name": "QuestionHintController",
        "x-operation-name": "count",
        "tags": [
          "QuestionHintController"
        ],
        "summary": "Count question hints",
        "description": "Returns the total number of question hints configured in the system.",
        "responses": {
          "200": {
            "description": "Hint model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Hint.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Hint>"
                }
              }
            }
          }
        ],
        "operationId": "QuestionHintController.count"
      }
    },
    "/v1/question-hints/{id}": {
      "patch": {
        "x-controller-name": "QuestionHintController",
        "x-operation-name": "updateById",
        "tags": [
          "QuestionHintController"
        ],
        "summary": "Update a question hint",
        "description": "Updates the details or instruction text of a specific question hint.",
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Hint PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HintPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "QuestionHintController.updateById"
      },
      "get": {
        "x-controller-name": "QuestionHintController",
        "x-operation-name": "findById",
        "tags": [
          "QuestionHintController"
        ],
        "summary": "Get question hint by ID",
        "description": "Retrieves details of a specific question hint by its unique ID.",
        "responses": {
          "200": {
            "description": "Hint model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HintWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionHintController.findById"
      },
      "delete": {
        "x-controller-name": "QuestionHintController",
        "x-operation-name": "deleteById",
        "tags": [
          "QuestionHintController"
        ],
        "summary": "Delete a question hint",
        "description": "Deletes a specific question hint from a question.",
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Hint DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionHintController.deleteById"
      }
    },
    "/v1/question-hints": {
      "post": {
        "x-controller-name": "QuestionHintController",
        "x-operation-name": "create",
        "tags": [
          "QuestionHintController"
        ],
        "summary": "Create a new question hint",
        "description": "Creates a new help text or tip for a specific form question.",
        "responses": {
          "200": {
            "description": "Hint model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hint"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewHint"
              }
            }
          }
        },
        "operationId": "QuestionHintController.create"
      },
      "get": {
        "x-controller-name": "QuestionHintController",
        "x-operation-name": "find",
        "tags": [
          "QuestionHintController"
        ],
        "summary": "List all question hints",
        "description": "Retrieves a list of all question hints across all forms.",
        "responses": {
          "200": {
            "description": "Array of Hint instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HintWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "QuestionHintController.find"
      }
    },
    "/v1/question-options/count": {
      "get": {
        "x-controller-name": "QuestionOptionController",
        "x-operation-name": "count",
        "tags": [
          "QuestionOptionController"
        ],
        "responses": {
          "200": {
            "description": "Option model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Option.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Option>"
                }
              }
            }
          }
        ],
        "operationId": "QuestionOptionController.count"
      }
    },
    "/v1/question-options/{id}": {
      "patch": {
        "x-controller-name": "QuestionOptionController",
        "x-operation-name": "updateById",
        "tags": [
          "QuestionOptionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Option PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OptionPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "QuestionOptionController.updateById"
      },
      "get": {
        "x-controller-name": "QuestionOptionController",
        "x-operation-name": "findById",
        "tags": [
          "QuestionOptionController"
        ],
        "responses": {
          "200": {
            "description": "Option model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OptionWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionOptionController.findById"
      },
      "delete": {
        "x-controller-name": "QuestionOptionController",
        "x-operation-name": "deleteById",
        "tags": [
          "QuestionOptionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Option DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionOptionController.deleteById"
      }
    },
    "/v1/question-options": {
      "post": {
        "x-controller-name": "QuestionOptionController",
        "x-operation-name": "create",
        "tags": [
          "QuestionOptionController"
        ],
        "responses": {
          "200": {
            "description": "Option model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Option"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewOption"
              }
            }
          }
        },
        "operationId": "QuestionOptionController.create"
      },
      "get": {
        "x-controller-name": "QuestionOptionController",
        "x-operation-name": "find",
        "tags": [
          "QuestionOptionController"
        ],
        "responses": {
          "200": {
            "description": "Array of Option instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OptionWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "QuestionOptionController.find"
      }
    },
    "/v1/question-validations/count": {
      "get": {
        "x-controller-name": "QuestionValidationController",
        "x-operation-name": "count",
        "tags": [
          "QuestionValidationController"
        ],
        "responses": {
          "200": {
            "description": "QuestionValidation model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "QuestionValidation.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<QuestionValidation>"
                }
              }
            }
          }
        ],
        "operationId": "QuestionValidationController.count"
      }
    },
    "/v1/question-validations/{id}": {
      "patch": {
        "x-controller-name": "QuestionValidationController",
        "x-operation-name": "updateById",
        "tags": [
          "QuestionValidationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "QuestionValidation PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuestionValidationPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "QuestionValidationController.updateById"
      },
      "get": {
        "x-controller-name": "QuestionValidationController",
        "x-operation-name": "findById",
        "tags": [
          "QuestionValidationController"
        ],
        "responses": {
          "200": {
            "description": "QuestionValidation model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuestionValidationWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionValidationController.findById"
      },
      "delete": {
        "x-controller-name": "QuestionValidationController",
        "x-operation-name": "deleteById",
        "tags": [
          "QuestionValidationController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "QuestionValidation DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionValidationController.deleteById"
      }
    },
    "/v1/question-validations": {
      "post": {
        "x-controller-name": "QuestionValidationController",
        "x-operation-name": "create",
        "tags": [
          "QuestionValidationController"
        ],
        "responses": {
          "200": {
            "description": "QuestionValidation model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuestionValidation"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewQuestionValidation"
              }
            }
          }
        },
        "operationId": "QuestionValidationController.create"
      },
      "get": {
        "x-controller-name": "QuestionValidationController",
        "x-operation-name": "find",
        "tags": [
          "QuestionValidationController"
        ],
        "responses": {
          "200": {
            "description": "Array of QuestionValidation instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QuestionValidationWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "QuestionValidationController.find"
      }
    },
    "/v1/question-visibilities/count": {
      "get": {
        "x-controller-name": "QuestionVisibilityController",
        "x-operation-name": "count",
        "tags": [
          "QuestionVisibilityController"
        ],
        "responses": {
          "200": {
            "description": "VisibilityLogic model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "VisibilityLogic.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<VisibilityLogic>"
                }
              }
            }
          }
        ],
        "operationId": "QuestionVisibilityController.count"
      }
    },
    "/v1/question-visibilities/{id}": {
      "patch": {
        "x-controller-name": "QuestionVisibilityController",
        "x-operation-name": "updateById",
        "tags": [
          "QuestionVisibilityController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "VisibilityLogic PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VisibilityLogicPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "QuestionVisibilityController.updateById"
      },
      "get": {
        "x-controller-name": "QuestionVisibilityController",
        "x-operation-name": "findById",
        "tags": [
          "QuestionVisibilityController"
        ],
        "responses": {
          "200": {
            "description": "VisibilityLogic model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisibilityLogicWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionVisibilityController.findById"
      },
      "delete": {
        "x-controller-name": "QuestionVisibilityController",
        "x-operation-name": "deleteById",
        "tags": [
          "QuestionVisibilityController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "VisibilityLogic DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionVisibilityController.deleteById"
      }
    },
    "/v1/question-visibilities": {
      "post": {
        "x-controller-name": "QuestionVisibilityController",
        "x-operation-name": "create",
        "tags": [
          "QuestionVisibilityController"
        ],
        "responses": {
          "200": {
            "description": "VisibilityLogic model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisibilityLogic"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewVisibilityLogic"
              }
            }
          }
        },
        "operationId": "QuestionVisibilityController.create"
      },
      "get": {
        "x-controller-name": "QuestionVisibilityController",
        "x-operation-name": "find",
        "tags": [
          "QuestionVisibilityController"
        ],
        "responses": {
          "200": {
            "description": "Array of VisibilityLogic instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VisibilityLogicWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "QuestionVisibilityController.find"
      }
    },
    "/v1/questions/count": {
      "get": {
        "x-controller-name": "QuestionController",
        "x-operation-name": "count",
        "tags": [
          "QuestionController"
        ],
        "responses": {
          "200": {
            "description": "Question model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Question.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Question>"
                }
              }
            }
          }
        ],
        "operationId": "QuestionController.count"
      }
    },
    "/v1/questions/{id}/audio-config": {
      "get": {
        "x-controller-name": "AudioQuestionController",
        "x-operation-name": "getAudioConfig",
        "tags": [
          "AudioQuestionController"
        ],
        "responses": {
          "200": {
            "description": "AudioQuestion configuration for a Question",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AudioQuestionWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "AudioQuestionController.getAudioConfig"
      }
    },
    "/v1/questions/{id}/hints": {
      "get": {
        "x-controller-name": "QuestionHintController",
        "x-operation-name": "getHintsByQuestion",
        "tags": [
          "QuestionHintController"
        ],
        "summary": "List hints for a specific question",
        "description": "Retrieves all help texts and tips configured for a given question ID.",
        "responses": {
          "200": {
            "description": "Array of Hint instances for a Question",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HintWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionHintController.getHintsByQuestion"
      }
    },
    "/v1/questions/{id}/location-config": {
      "get": {
        "x-controller-name": "LocationQuestionController",
        "x-operation-name": "getLocationConfig",
        "tags": [
          "LocationQuestionController"
        ],
        "responses": {
          "200": {
            "description": "LocationQuestion configuration for a Question",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationQuestionWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "LocationQuestionController.getLocationConfig"
      }
    },
    "/v1/questions/{id}/media-config": {
      "get": {
        "x-controller-name": "MediaQuestionController",
        "x-operation-name": "getMediaConfig",
        "tags": [
          "MediaQuestionController"
        ],
        "responses": {
          "200": {
            "description": "MediaQuestion configuration for a Question",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaQuestionWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "MediaQuestionController.getMediaConfig"
      }
    },
    "/v1/questions/{id}/options": {
      "get": {
        "x-controller-name": "QuestionOptionController",
        "x-operation-name": "getOptionsByQuestion",
        "tags": [
          "QuestionOptionController"
        ],
        "responses": {
          "200": {
            "description": "Array of Option instances for a Question",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OptionWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionOptionController.getOptionsByQuestion"
      }
    },
    "/v1/questions/{id}/polygon-config": {
      "get": {
        "x-controller-name": "PolygonQuestionController",
        "x-operation-name": "getAreaConfig",
        "tags": [
          "PolygonQuestionController"
        ],
        "responses": {
          "200": {
            "description": "AreaQuestion configuration for a Question",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AreaQuestionWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "PolygonQuestionController.getAreaConfig"
      }
    },
    "/v1/questions/{id}/validations": {
      "get": {
        "x-controller-name": "QuestionValidationController",
        "x-operation-name": "getValidationsByQuestion",
        "tags": [
          "QuestionValidationController"
        ],
        "responses": {
          "200": {
            "description": "Array of QuestionValidation instances for a Question",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QuestionValidationWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionValidationController.getValidationsByQuestion"
      }
    },
    "/v1/questions/{id}/visibilities": {
      "get": {
        "x-controller-name": "QuestionVisibilityController",
        "x-operation-name": "getVisibilitiesByQuestion",
        "tags": [
          "QuestionVisibilityController"
        ],
        "responses": {
          "200": {
            "description": "Array of VisibilityLogic instances for a Question",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VisibilityLogicWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionVisibilityController.getVisibilitiesByQuestion"
      }
    },
    "/v1/questions/{id}": {
      "put": {
        "x-controller-name": "QuestionController",
        "x-operation-name": "replaceById",
        "tags": [
          "QuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Question PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Question"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "QuestionController.replaceById"
      },
      "patch": {
        "x-controller-name": "QuestionController",
        "x-operation-name": "updateById",
        "tags": [
          "QuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Question PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuestionPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "QuestionController.updateById"
      },
      "get": {
        "x-controller-name": "QuestionController",
        "x-operation-name": "findById",
        "tags": [
          "QuestionController"
        ],
        "responses": {
          "200": {
            "description": "Question model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuestionWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Question.Filter"
                }
              }
            }
          }
        ],
        "operationId": "QuestionController.findById"
      },
      "delete": {
        "x-controller-name": "QuestionController",
        "x-operation-name": "deleteById",
        "tags": [
          "QuestionController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Question DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "QuestionController.deleteById"
      }
    },
    "/v1/questions": {
      "post": {
        "x-controller-name": "QuestionController",
        "x-operation-name": "create",
        "tags": [
          "QuestionController"
        ],
        "responses": {
          "200": {
            "description": "Question model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Question"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewQuestion"
              }
            }
          }
        },
        "operationId": "QuestionController.create"
      },
      "patch": {
        "x-controller-name": "QuestionController",
        "x-operation-name": "updateAll",
        "tags": [
          "QuestionController"
        ],
        "responses": {
          "200": {
            "description": "Question PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Question.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Question>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuestionPartial"
              }
            }
          }
        },
        "operationId": "QuestionController.updateAll"
      },
      "get": {
        "x-controller-name": "QuestionController",
        "x-operation-name": "find",
        "tags": [
          "QuestionController"
        ],
        "responses": {
          "200": {
            "description": "List of questions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QuestionWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Question.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "QuestionController.find"
      }
    },
    "/v1/reports/researcher-collections/export/pdf": {
      "get": {
        "x-controller-name": "ReportController",
        "x-operation-name": "exportPdf",
        "tags": [
          "ReportController"
        ],
        "responses": {
          "200": {
            "description": "The file content",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$ref": "#/components/schemas/ResearcherReportFilterPartial",
                  "definitions": {
                    "ResearcherReportFilterPartial": {
                      "$ref": "#/components/schemas/ResearcherReportFilterPartial"
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "ReportController.exportPdf"
      }
    },
    "/v1/reports/researcher-collections/export/xml": {
      "get": {
        "x-controller-name": "ReportController",
        "x-operation-name": "exportXml",
        "tags": [
          "ReportController"
        ],
        "responses": {
          "200": {
            "description": "The file content",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$ref": "#/components/schemas/ResearcherReportFilterPartial",
                  "definitions": {
                    "ResearcherReportFilterPartial": {
                      "$ref": "#/components/schemas/ResearcherReportFilterPartial"
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "ReportController.exportXml"
      }
    },
    "/v1/reports/researcher-collections": {
      "get": {
        "x-controller-name": "ReportController",
        "x-operation-name": "getResearcherCollections",
        "tags": [
          "ReportController"
        ],
        "responses": {
          "200": {
            "description": "Array of researcher collection stats",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ResearcherCollectionStat"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "$ref": "#/components/schemas/ResearcherReportFilterPartial",
                  "definitions": {
                    "ResearcherReportFilterPartial": {
                      "$ref": "#/components/schemas/ResearcherReportFilterPartial"
                    }
                  }
                }
              }
            }
          }
        ],
        "operationId": "ReportController.getResearcherCollections"
      }
    },
    "/v1/route-features/count": {
      "get": {
        "x-controller-name": "RouteFeatureController",
        "x-operation-name": "count",
        "tags": [
          "RouteFeatureController"
        ],
        "responses": {
          "200": {
            "description": "RouteFeature model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "RouteFeature.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<RouteFeature>"
                }
              }
            }
          }
        ],
        "operationId": "RouteFeatureController.count"
      }
    },
    "/v1/route-features/{id}": {
      "patch": {
        "x-controller-name": "RouteFeatureController",
        "x-operation-name": "updateById",
        "tags": [
          "RouteFeatureController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "RouteFeature PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRouteFeatureRequestPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RouteFeatureController.updateById"
      },
      "get": {
        "x-controller-name": "RouteFeatureController",
        "x-operation-name": "findById",
        "tags": [
          "RouteFeatureController"
        ],
        "responses": {
          "200": {
            "description": "RouteFeatureResponse model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RouteFeatureResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RouteFeature.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "RouteFeatureController.findById"
      },
      "delete": {
        "x-controller-name": "RouteFeatureController",
        "x-operation-name": "deleteById",
        "tags": [
          "RouteFeatureController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "RouteFeature DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RouteFeatureController.deleteById"
      }
    },
    "/v1/route-features": {
      "post": {
        "x-controller-name": "RouteFeatureController",
        "x-operation-name": "create",
        "tags": [
          "RouteFeatureController"
        ],
        "responses": {
          "200": {
            "description": "RouteFeatureResponse model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RouteFeatureResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewRouteFeature"
              }
            }
          }
        },
        "operationId": "RouteFeatureController.create"
      },
      "get": {
        "x-controller-name": "RouteFeatureController",
        "x-operation-name": "find",
        "tags": [
          "RouteFeatureController"
        ],
        "responses": {
          "200": {
            "description": "List of route features",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RouteFeatureResponse"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RouteFeature.Filter"
                }
              }
            }
          }
        ],
        "operationId": "RouteFeatureController.find"
      }
    },
    "/v1/routes/{id}": {
      "patch": {
        "x-controller-name": "RouteController",
        "x-operation-name": "updateById",
        "tags": [
          "RouteController"
        ],
        "responses": {
          "200": {
            "description": "Updated Route instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RouteWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "passiveIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "collectorIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "formIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "waypoints": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "lat": {
                          "type": "number"
                        },
                        "lng": {
                          "type": "number"
                        },
                        "label": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "lat",
                        "lng"
                      ]
                    }
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "RouteController.updateById"
      },
      "get": {
        "x-controller-name": "RouteController",
        "x-operation-name": "findById",
        "tags": [
          "RouteController"
        ],
        "responses": {
          "200": {
            "description": "Route instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RouteWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RouteController.findById"
      },
      "delete": {
        "x-controller-name": "RouteController",
        "x-operation-name": "deleteById",
        "tags": [
          "RouteController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Route deleted"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "RouteController.deleteById"
      }
    },
    "/v1/routes": {
      "post": {
        "x-controller-name": "RouteController",
        "x-operation-name": "create",
        "tags": [
          "RouteController"
        ],
        "responses": {
          "200": {
            "description": "Created Route instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RouteWithRelations"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "projectId"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "projectId": {
                    "type": "string"
                  },
                  "passiveIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "collectorIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "formIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "waypoints": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "lat": {
                          "type": "number"
                        },
                        "lng": {
                          "type": "number"
                        },
                        "label": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "lat",
                        "lng"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "RouteController.create"
      },
      "get": {
        "x-controller-name": "RouteController",
        "x-operation-name": "find",
        "tags": [
          "RouteController"
        ],
        "responses": {
          "200": {
            "description": "Array of Route instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RouteWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "RouteController.find"
      }
    },
    "/v1/system-logs/count": {
      "get": {
        "x-controller-name": "SystemLogController",
        "x-operation-name": "count",
        "tags": [
          "SystemLogController"
        ],
        "responses": {
          "200": {
            "description": "SystemLog model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "SystemLog.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<SystemLog>"
                }
              }
            }
          }
        ],
        "operationId": "SystemLogController.count"
      }
    },
    "/v1/system-logs/{id}": {
      "get": {
        "x-controller-name": "SystemLogController",
        "x-operation-name": "findById",
        "tags": [
          "SystemLogController"
        ],
        "responses": {
          "200": {
            "description": "SystemLog model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemLogWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemLog.Filter"
                }
              }
            }
          }
        ],
        "operationId": "SystemLogController.findById"
      }
    },
    "/v1/system-logs": {
      "get": {
        "x-controller-name": "SystemLogController",
        "x-operation-name": "find",
        "tags": [
          "SystemLogController"
        ],
        "responses": {
          "200": {
            "description": "List of system logs",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SystemLogWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemLog.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "SystemLogController.find"
      }
    },
    "/v1/tags/count": {
      "get": {
        "x-controller-name": "TagController",
        "x-operation-name": "count",
        "tags": [
          "TagController"
        ],
        "responses": {
          "200": {
            "description": "Tag model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Tag.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Tag>"
                }
              }
            }
          }
        ],
        "operationId": "TagController.count"
      }
    },
    "/v1/tags/{id}": {
      "patch": {
        "x-controller-name": "TagController",
        "x-operation-name": "updateById",
        "tags": [
          "TagController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Tag PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "TagController.updateById"
      },
      "get": {
        "x-controller-name": "TagController",
        "x-operation-name": "findById",
        "tags": [
          "TagController"
        ],
        "responses": {
          "200": {
            "description": "Tag model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag.Filter"
                }
              }
            }
          }
        ],
        "operationId": "TagController.findById"
      },
      "delete": {
        "x-controller-name": "TagController",
        "x-operation-name": "deleteById",
        "tags": [
          "TagController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Tag DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TagController.deleteById"
      }
    },
    "/v1/tags": {
      "post": {
        "x-controller-name": "TagController",
        "x-operation-name": "create",
        "tags": [
          "TagController"
        ],
        "responses": {
          "200": {
            "description": "Tag model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "TagController.create"
      },
      "patch": {
        "x-controller-name": "TagController",
        "x-operation-name": "updateAll",
        "tags": [
          "TagController"
        ],
        "responses": {
          "200": {
            "description": "Tag PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Tag.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Tag>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Tag"
              }
            }
          }
        },
        "operationId": "TagController.updateAll"
      },
      "get": {
        "x-controller-name": "TagController",
        "x-operation-name": "find",
        "tags": [
          "TagController"
        ],
        "responses": {
          "200": {
            "description": "List of tags",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Tag"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "TagController.find"
      }
    },
    "/v1/takes/count": {
      "get": {
        "x-controller-name": "TakeController",
        "x-operation-name": "count",
        "tags": [
          "TakeController"
        ],
        "summary": "Count all takes",
        "description": "Returns the total number of form take instances registered in the system.",
        "responses": {
          "200": {
            "description": "Take model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Take.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Take>"
                }
              }
            }
          }
        ],
        "operationId": "TakeController.count"
      }
    },
    "/v1/takes/{id}/answers/count": {
      "get": {
        "x-controller-name": "TakeAnswerController",
        "x-operation-name": "count",
        "tags": [
          "TakeAnswerController"
        ],
        "summary": "Count answers inside a take",
        "description": "Returns the total number of question responses recorded under a specific form take.",
        "responses": {
          "200": {
            "description": "Count of answers in submission",
            "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": "FormAnswer.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<FormAnswer>"
                }
              }
            }
          }
        ],
        "operationId": "TakeAnswerController.count"
      }
    },
    "/v1/takes/{takeId}/answers/{answerId}": {
      "patch": {
        "x-controller-name": "TakeAnswerController",
        "x-operation-name": "updateAnswer",
        "tags": [
          "TakeAnswerController"
        ],
        "summary": "Update a specific response inside a take",
        "description": "Modifies the text or selected option of an already submitted answer inside a form take.",
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "FormAnswer PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "takeId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "answerId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FormAnswerPartialExcluding_id-takeId-formId-questionId_"
              }
            }
          },
          "x-parameter-index": 2
        },
        "operationId": "TakeAnswerController.updateAnswer"
      },
      "delete": {
        "x-controller-name": "TakeAnswerController",
        "x-operation-name": "deleteAnswer",
        "tags": [
          "TakeAnswerController"
        ],
        "summary": "Delete an answer from a take",
        "description": "Deletes a specific question response from a form take.",
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "FormAnswer DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "takeId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "answerId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TakeAnswerController.deleteAnswer"
      }
    },
    "/v1/takes/{id}/answers": {
      "post": {
        "x-controller-name": "TakeAnswerController",
        "x-operation-name": "create",
        "tags": [
          "TakeAnswerController"
        ],
        "summary": "Submit an answer within a form take",
        "description": "Records a collector's response to a specific question under an active form take (submission session).",
        "responses": {
          "200": {
            "description": "FormAnswer model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FormAnswer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewAnswerInTake"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "TakeAnswerController.create"
      },
      "get": {
        "x-controller-name": "TakeAnswerController",
        "x-operation-name": "find",
        "tags": [
          "TakeAnswerController"
        ],
        "summary": "List all answers for a specific form take",
        "description": "Retrieves all question responses submitted under a specific form take (submission session) ID.",
        "responses": {
          "200": {
            "description": "Array of FormAnswer instances (answers in submission)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FormAnswerWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        ],
        "operationId": "TakeAnswerController.find"
      }
    },
    "/v1/takes/{id}": {
      "put": {
        "x-controller-name": "TakeController",
        "x-operation-name": "replaceById",
        "tags": [
          "TakeController"
        ],
        "summary": "Replace a form take by ID",
        "description": "Completely replaces the attributes of a specific form take.",
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Take PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Take"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "TakeController.replaceById"
      },
      "patch": {
        "x-controller-name": "TakeController",
        "x-operation-name": "updateById",
        "tags": [
          "TakeController"
        ],
        "summary": "Update a form take by ID",
        "description": "Updates attributes (such as state or metadata) of a specific form take.",
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Take PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TakePartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "TakeController.updateById"
      },
      "get": {
        "x-controller-name": "TakeController",
        "x-operation-name": "findById",
        "tags": [
          "TakeController"
        ],
        "summary": "Get a form take by ID",
        "description": "Retrieves the metadata of a specific form take by its unique ID.",
        "responses": {
          "200": {
            "description": "Take model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TakeWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Take.Filter"
                }
              }
            }
          }
        ],
        "operationId": "TakeController.findById"
      },
      "delete": {
        "x-controller-name": "TakeController",
        "x-operation-name": "deleteById",
        "tags": [
          "TakeController"
        ],
        "summary": "Delete a form take by ID",
        "description": "Deletes a form take session and its associated metadata.",
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Take DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TakeController.deleteById"
      }
    },
    "/v1/takes": {
      "post": {
        "x-controller-name": "TakeController",
        "x-operation-name": "create",
        "tags": [
          "TakeController"
        ],
        "summary": "Start/Register a new form take",
        "description": "Registers a new form fillout session (take) representing a data collection attempt by a user.",
        "responses": {
          "200": {
            "description": "Take model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Take"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewTake"
              }
            }
          }
        },
        "operationId": "TakeController.create"
      },
      "patch": {
        "x-controller-name": "TakeController",
        "x-operation-name": "updateAll",
        "tags": [
          "TakeController"
        ],
        "summary": "Update multiple takes",
        "description": "Updates attributes for multiple form take instances matching filter criteria.",
        "responses": {
          "200": {
            "description": "Take PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Take.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Take>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TakePartial"
              }
            }
          }
        },
        "operationId": "TakeController.updateAll"
      },
      "get": {
        "x-controller-name": "TakeController",
        "x-operation-name": "find",
        "tags": [
          "TakeController"
        ],
        "summary": "List all form takes",
        "description": "Retrieves a list of all form take sessions registered in the system with optional filters.",
        "responses": {
          "200": {
            "description": "List of takes",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TakeWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Take.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "TakeController.find"
      }
    },
    "/v1/templates/{id}/render": {
      "get": {
        "x-controller-name": "TemplateController",
        "x-operation-name": "renderTemplate",
        "tags": [
          "TemplateController"
        ],
        "responses": {
          "200": {
            "description": "Returns the complete UI structure (Sections -> Fields -> Options) for the frontend to dynamically render the form.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Template"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TemplateController.renderTemplate"
      }
    },
    "/v1/templates/{id}": {
      "patch": {
        "x-controller-name": "TemplateController",
        "x-operation-name": "updateById",
        "tags": [
          "TemplateController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Template PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTemplateRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "TemplateController.updateById"
      },
      "get": {
        "x-controller-name": "TemplateController",
        "x-operation-name": "findById",
        "tags": [
          "TemplateController"
        ],
        "responses": {
          "200": {
            "description": "Template model instance with nested sections and fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Template"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TemplateController.findById"
      },
      "delete": {
        "x-controller-name": "TemplateController",
        "x-operation-name": "deleteById",
        "tags": [
          "TemplateController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Template DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "TemplateController.deleteById"
      }
    },
    "/v1/templates": {
      "post": {
        "x-controller-name": "TemplateController",
        "x-operation-name": "create",
        "tags": [
          "TemplateController"
        ],
        "responses": {
          "200": {
            "description": "Template model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Template"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTemplateRequest"
              }
            }
          }
        },
        "operationId": "TemplateController.create"
      },
      "get": {
        "x-controller-name": "TemplateController",
        "x-operation-name": "find",
        "tags": [
          "TemplateController"
        ],
        "responses": {
          "200": {
            "description": "Array of Template model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Template"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Template.Filter"
                }
              }
            }
          }
        ],
        "operationId": "TemplateController.find"
      }
    },
    "/v1/users/count": {
      "get": {
        "x-controller-name": "UserController",
        "x-operation-name": "count",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "User model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "User.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<User>"
                }
              }
            }
          }
        ],
        "operationId": "UserController.count"
      }
    },
    "/v1/users/me/avatar": {
      "patch": {
        "x-controller-name": "UserController",
        "x-operation-name": "updateAvatar",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Current user avatar update success"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "avatar": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "UserController.updateAvatar"
      }
    },
    "/v1/users/me/change-password": {
      "patch": {
        "x-controller-name": "UserController",
        "x-operation-name": "changePassword",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Current user password change success"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePasswordRequest"
              }
            }
          }
        },
        "operationId": "UserController.changePassword"
      }
    },
    "/v1/users/me/liabilities": {
      "get": {
        "x-controller-name": "LiabilityController",
        "x-operation-name": "findMe",
        "tags": [
          "LiabilityController"
        ],
        "responses": {
          "200": {
            "description": "Array of Liability model instances belonging to the current user",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LiabilityWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Liability.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "LiabilityController.findMe"
      }
    },
    "/v1/users/me/oauth": {
      "get": {
        "x-controller-name": "OAuthController",
        "x-operation-name": "getMyLinkedProviders",
        "tags": [
          "OAuthController"
        ],
        "responses": {
          "200": {
            "description": "Array of linked OAuth accounts",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LinkedOAuthAccountResponse"
                  }
                }
              }
            }
          }
        },
        "operationId": "OAuthController.getMyLinkedProviders"
      }
    },
    "/v1/users/me": {
      "patch": {
        "x-controller-name": "UserController",
        "x-operation-name": "updateMe",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Current user PATCH success"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateMeRequestPartial"
              }
            }
          }
        },
        "operationId": "UserController.updateMe"
      },
      "get": {
        "x-controller-name": "UserController",
        "x-operation-name": "findMe",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "Current user profile",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserWithFeaturesResponseWithRelations"
                }
              }
            }
          }
        },
        "operationId": "UserController.findMe"
      },
      "delete": {
        "x-controller-name": "UserController",
        "x-operation-name": "deleteMe",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Current user DELETE success"
                }
              }
            }
          }
        },
        "operationId": "UserController.deleteMe"
      }
    },
    "/v1/users/{id}/activate": {
      "patch": {
        "x-controller-name": "UserController",
        "x-operation-name": "activateUser",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "User activated success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserController.activateUser"
      }
    },
    "/v1/users/{id}/avatar": {
      "get": {
        "x-controller-name": "UserController",
        "x-operation-name": "getAvatar",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "The file content",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserController.getAvatar"
      }
    },
    "/v1/users/{id}/history": {
      "get": {
        "x-controller-name": "UserController",
        "x-operation-name": "getHistory",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "List of audit history events for user",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SystemLog"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserController.getHistory"
      }
    },
    "/v1/users/{id}/inactivate": {
      "patch": {
        "x-controller-name": "UserController",
        "x-operation-name": "inactivateUser",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "User inactivated success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserController.inactivateUser"
      }
    },
    "/v1/users/{id}/profiles/{profileId}": {
      "post": {
        "x-controller-name": "UserProfileController",
        "x-operation-name": "assignProfile",
        "tags": [
          "UserProfileController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Profile assigned to user"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "profileId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserProfileController.assignProfile"
      },
      "delete": {
        "x-controller-name": "UserProfileController",
        "x-operation-name": "revokeProfile",
        "tags": [
          "UserProfileController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Profile revoked from user"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "profileId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserProfileController.revokeProfile"
      }
    },
    "/v1/users/{id}/profiles": {
      "patch": {
        "x-controller-name": "UserController",
        "x-operation-name": "updateProfiles",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "User profiles update success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserAdminUpdateProfilesRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UserController.updateProfiles"
      },
      "get": {
        "x-controller-name": "UserProfileController",
        "x-operation-name": "findUserProfiles",
        "tags": [
          "UserProfileController"
        ],
        "responses": {
          "200": {
            "description": "List of profiles assigned to user",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Profiles"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserProfileController.findUserProfiles"
      }
    },
    "/v1/users/{id}/status": {
      "patch": {
        "x-controller-name": "UserController",
        "x-operation-name": "updateStatus",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "User status update success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateStatusRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UserController.updateStatus"
      }
    },
    "/v1/users/{id}": {
      "put": {
        "x-controller-name": "UserController",
        "x-operation-name": "replaceById",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "User PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UserController.replaceById"
      },
      "patch": {
        "x-controller-name": "UserController",
        "x-operation-name": "updateById",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "User PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateMeRequest"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "UserController.updateById"
      },
      "get": {
        "x-controller-name": "UserController",
        "x-operation-name": "findById",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "User by ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User.Filter"
                }
              }
            }
          }
        ],
        "operationId": "UserController.findById"
      },
      "delete": {
        "x-controller-name": "UserController",
        "x-operation-name": "deleteById",
        "tags": [
          "UserController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "User DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "UserController.deleteById"
      }
    },
    "/v1/users": {
      "post": {
        "x-controller-name": "UserController",
        "x-operation-name": "createByAdmin",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "User created by admin with verification email pending",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserAdminCreateResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserAdminCreateRequest"
              }
            }
          }
        },
        "operationId": "UserController.createByAdmin"
      },
      "get": {
        "x-controller-name": "UserController",
        "x-operation-name": "find",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "List of users or Paginated users",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/UserWithRelations"
                      }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/UserWithRelations"
                          }
                        },
                        "total": {
                          "type": "number"
                        },
                        "totalItems": {
                          "type": "number"
                        },
                        "totalElements": {
                          "type": "number"
                        },
                        "page": {
                          "type": "number"
                        },
                        "size": {
                          "type": "number"
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "size",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "UserController.find"
      }
    }
  },
  "servers": [
    {
      "url": "https://api.sigas.cloud"
    }
  ],
  "components": {
    "schemas": {
      "UserDevice": {
        "title": "UserDevice",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "platform": {
            "type": "string",
            "enum": [
              "ios",
              "android",
              "web"
            ]
          },
          "pushToken": {
            "type": "string"
          },
          "deviceName": {
            "type": "string"
          },
          "appVersion": {
            "type": "string"
          },
          "osVersion": {
            "type": "string"
          },
          "userAgent": {
            "type": "string"
          },
          "lastIp": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "lastSeenAt": {
            "type": "string",
            "format": "date-time"
          },
          "revokedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "userId",
          "platform",
          "pushToken",
          "active"
        ],
        "description": "{\"indexInfo\":{\"pushToken\":{\"unique\":true}}}",
        "additionalProperties": false
      },
      "RegisterDeviceRequest": {
        "title": "RegisterDeviceRequest",
        "type": "object",
        "description": "(tsType: RegisterDeviceRequest, schemaOptions: { title: 'RegisterDeviceRequest' })",
        "properties": {
          "platform": {
            "type": "string",
            "enum": [
              "ios",
              "android",
              "web"
            ]
          },
          "pushToken": {
            "type": "string"
          },
          "deviceName": {
            "type": "string"
          },
          "appVersion": {
            "type": "string"
          },
          "osVersion": {
            "type": "string"
          }
        },
        "required": [
          "platform",
          "pushToken"
        ],
        "additionalProperties": false,
        "x-typescript-type": "RegisterDeviceRequest"
      },
      "RevokeDeviceRequest": {
        "title": "RevokeDeviceRequest",
        "type": "object",
        "description": "(tsType: RevokeDeviceRequest, schemaOptions: { title: 'RevokeDeviceRequest' })",
        "properties": {
          "pushToken": {
            "type": "string"
          }
        },
        "required": [
          "pushToken"
        ],
        "additionalProperties": false,
        "x-typescript-type": "RevokeDeviceRequest"
      },
      "Template": {
        "title": "Template",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "version"
        ],
        "additionalProperties": false
      },
      "TemplateFieldOptionRequest": {
        "title": "TemplateFieldOptionRequest",
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "value"
        ],
        "additionalProperties": false
      },
      "TemplateFieldRequest": {
        "title": "TemplateFieldRequest",
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "dataType": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "placeholder": {
            "type": "string"
          },
          "order": {
            "type": "number"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateFieldOptionRequest"
            }
          }
        },
        "required": [
          "key",
          "label",
          "dataType",
          "order"
        ],
        "additionalProperties": false
      },
      "TemplateSectionRequest": {
        "title": "TemplateSectionRequest",
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "order": {
            "type": "number"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateFieldRequest"
            }
          }
        },
        "required": [
          "title",
          "order",
          "fields"
        ],
        "additionalProperties": false
      },
      "CreateTemplateRequest": {
        "title": "CreateTemplateRequest",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 100
          },
          "version": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "sections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateSectionRequest"
            }
          }
        },
        "required": [
          "name",
          "version",
          "sections"
        ],
        "additionalProperties": false
      },
      "UpdateTemplateRequest": {
        "title": "UpdateTemplateRequest",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 100
          },
          "version": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "sections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateSectionRequest"
            }
          }
        },
        "additionalProperties": false
      },
      "Take": {
        "title": "Take",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "point": {
            "type": "object"
          }
        },
        "additionalProperties": false
      },
      "NewTake": {
        "title": "NewTake",
        "type": "object",
        "description": "(tsType: Omit<Take, 'id'>, schemaOptions: { title: 'NewTake', exclude: [ 'id' ] })",
        "properties": {
          "userId": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "point": {
            "type": "object"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Take, 'id'>"
      },
      "User": {
        "title": "User",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "cpf": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "educationLevel": {
            "type": "string"
          },
          "course": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "emailVerified": {
            "type": "boolean"
          },
          "active": {
            "type": "boolean"
          },
          "isTwoFactorEnabled": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "avatar": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "username",
          "email",
          "status"
        ],
        "additionalProperties": false
      },
      "Form": {
        "title": "Form",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "draft",
              "archived",
              "done"
            ]
          },
          "ownerId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "status"
        ],
        "additionalProperties": false
      },
      "FormAnswer": {
        "title": "FormAnswer",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "optionId": {
            "type": "string"
          },
          "takeId": {
            "type": "string"
          },
          "answerText": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Detail": {
        "title": "Detail",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "takeId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "TakeWithRelations": {
        "title": "TakeWithRelations",
        "type": "object",
        "description": "(tsType: TakeWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "point": {
            "type": "object"
          },
          "user": {
            "$ref": "#/components/schemas/User"
          },
          "foreignKey": {},
          "form": {
            "$ref": "#/components/schemas/Form"
          },
          "answers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormAnswer"
            }
          },
          "detail": {
            "$ref": "#/components/schemas/Detail"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "TakeWithRelations"
      },
      "TakePartial": {
        "title": "TakePartial",
        "type": "object",
        "description": "(tsType: Partial<Take>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "point": {
            "type": "object"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Take>"
      },
      "Question": {
        "title": "Question",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "text",
              "textarea",
              "number",
              "date",
              "time",
              "datetime",
              "single_choice",
              "multiple_choice",
              "audio",
              "location",
              "polygon",
              "media",
              "file"
            ]
          },
          "layout": {
            "type": "string"
          },
          "descriptionToShow": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "question",
          "type"
        ],
        "additionalProperties": false
      },
      "Option": {
        "title": "Option",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "other": {
            "type": "boolean"
          },
          "order": {
            "type": "number"
          },
          "questionId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "text",
          "order"
        ],
        "additionalProperties": false
      },
      "FormAnswerWithRelations": {
        "title": "FormAnswerWithRelations",
        "type": "object",
        "description": "(tsType: FormAnswerWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "optionId": {
            "type": "string"
          },
          "takeId": {
            "type": "string"
          },
          "answerText": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "form": {
            "$ref": "#/components/schemas/Form"
          },
          "foreignKey": {},
          "question": {
            "$ref": "#/components/schemas/Question"
          },
          "option": {
            "$ref": "#/components/schemas/Option"
          },
          "take": {
            "$ref": "#/components/schemas/Take"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "FormAnswerWithRelations"
      },
      "NewAnswerInTake": {
        "title": "NewAnswerInTake",
        "type": "object",
        "description": "(tsType: Omit<FormAnswer, 'id' | 'takeId'>, schemaOptions: { title: 'NewAnswerInTake', exclude: [ 'id', 'takeId' ] })",
        "properties": {
          "formId": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "optionId": {
            "type": "string"
          },
          "answerText": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<FormAnswer, 'id' | 'takeId'>"
      },
      "FormAnswerPartialExcluding_id-takeId-formId-questionId_": {
        "title": "FormAnswerPartialExcluding_id-takeId-formId-questionId_",
        "type": "object",
        "description": "(tsType: Omit<Partial<FormAnswer>, 'id' | 'takeId' | 'formId' | 'questionId'>, schemaOptions: { partial: true, exclude: [ 'id', 'takeId', 'formId', 'questionId' ] })",
        "properties": {
          "optionId": {
            "type": "string"
          },
          "answerText": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<FormAnswer>, 'id' | 'takeId' | 'formId' | 'questionId'>"
      },
      "Tag": {
        "title": "Tag",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "TagPartial": {
        "title": "TagPartial",
        "type": "object",
        "description": "(tsType: Partial<Tag>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Tag>"
      },
      "SystemLogWithRelations": {
        "title": "SystemLogWithRelations",
        "type": "object",
        "description": "(tsType: SystemLogWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "level": {
            "type": "string",
            "enum": [
              "debug",
              "info",
              "warn",
              "error",
              "critical"
            ]
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATE",
              "READ",
              "UPDATE",
              "DELETE",
              "LOGIN",
              "LOGOUT",
              "EXPORT",
              "IMPORT",
              "SUBMIT",
              "COMPLETE_REGISTRATION",
              "ACTIVATE",
              "INACTIVATE",
              "OTHER"
            ]
          },
          "message": {
            "type": "string"
          },
          "entityName": {
            "type": "string"
          },
          "entityId": {
            "type": "string"
          },
          "ipAddress": {
            "type": "string"
          },
          "userAgent": {
            "type": "string"
          },
          "requestPath": {
            "type": "string"
          },
          "statusCode": {
            "type": "number"
          },
          "metadata": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "actor": {
            "$ref": "#/components/schemas/User"
          },
          "foreignKey": {}
        },
        "required": [
          "username",
          "level",
          "action",
          "message",
          "createdAt"
        ],
        "additionalProperties": false,
        "x-typescript-type": "SystemLogWithRelations"
      },
      "Project": {
        "title": "Project",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "actived",
              "paused",
              "done",
              "canceled",
              "expired"
            ]
          },
          "company": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "budget": {
            "type": "number"
          },
          "customFields": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "ownerId": {
            "type": "string"
          },
          "templateId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "status"
        ],
        "additionalProperties": false
      },
      "RouteCollector": {
        "title": "RouteCollector",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "routeId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RouteForm": {
        "title": "RouteForm",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "routeId": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RouteWithRelations": {
        "title": "RouteWithRelations",
        "type": "object",
        "description": "(tsType: RouteWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "passiveIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "waypoints": {},
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "project": {
            "$ref": "#/components/schemas/Project"
          },
          "foreignKey": {},
          "collectors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteCollector"
            }
          },
          "forms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteForm"
            }
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "RouteWithRelations"
      },
      "RouteFeatureResponse": {
        "title": "RouteFeatureResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "geojson": {
            "type": "object"
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "polygon": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "NewRouteFeature": {
        "title": "NewRouteFeature",
        "type": "object",
        "description": "(tsType: CreateRouteFeatureRequest, schemaOptions: { title: 'NewRouteFeature' })",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "value": {}
        },
        "required": [
          "projectId",
          "type",
          "format",
          "value"
        ],
        "additionalProperties": false,
        "x-typescript-type": "CreateRouteFeatureRequest"
      },
      "CreateRouteFeatureRequest": {
        "title": "CreateRouteFeatureRequest",
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "value": {}
        },
        "required": [
          "projectId",
          "type",
          "format",
          "value"
        ],
        "additionalProperties": false
      },
      "UpdateRouteFeatureRequestPartial": {
        "title": "UpdateRouteFeatureRequestPartial",
        "type": "object",
        "description": "(tsType: Partial<UpdateRouteFeatureRequest>, schemaOptions: { partial: true })",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "value": {}
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<UpdateRouteFeatureRequest>"
      },
      "UpdateRouteFeatureRequest": {
        "title": "UpdateRouteFeatureRequest",
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "value": {}
        },
        "additionalProperties": false
      },
      "ResearcherCollectionStat": {
        "title": "ResearcherCollectionStat",
        "type": "object",
        "properties": {
          "researcherId": {
            "type": "string"
          },
          "researcherName": {
            "type": "string"
          },
          "totalCollections": {
            "type": "number"
          },
          "distinctFormsAnswered": {
            "type": "number"
          },
          "firstCollectionDate": {
            "type": "string",
            "format": "date-time"
          },
          "lastCollectionDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "researcherId",
          "researcherName",
          "totalCollections",
          "distinctFormsAnswered"
        ],
        "additionalProperties": false
      },
      "ResearcherReportFilter": {
        "title": "ResearcherReportFilter",
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "description": "Filtrar por ID do Projeto"
          },
          "formId": {
            "type": "string",
            "description": "Filtrar por ID do Formulário"
          },
          "researcherId": {
            "type": "string",
            "description": "Filtrar por ID do Pesquisador"
          },
          "periodStart": {
            "type": "string",
            "format": "date-time",
            "description": "Data Inicial do Período"
          },
          "periodEnd": {
            "type": "string",
            "format": "date-time",
            "description": "Data Final do Período"
          }
        },
        "additionalProperties": false
      },
      "Profiles": {
        "title": "Profiles",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "description"
        ],
        "additionalProperties": false
      },
      "UserProfiles": {
        "title": "UserProfiles",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "profileId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ProfileFeatures": {
        "title": "ProfileFeatures",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "profileId": {
            "type": "string"
          },
          "permissionId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ProjectUser": {
        "title": "ProjectUser",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "profileId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ProfilesWithRelations": {
        "title": "ProfilesWithRelations",
        "type": "object",
        "description": "(tsType: ProfilesWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "userProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserProfiles"
            }
          },
          "profilePermissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileFeatures"
            }
          },
          "projectUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectUser"
            }
          }
        },
        "required": [
          "name",
          "description"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ProfilesWithRelations"
      },
      "ProfilesWithPermissions": {
        "title": "ProfilesWithPermissions",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "permissionsCount": {
            "type": "number"
          }
        },
        "required": [
          "name",
          "description"
        ],
        "additionalProperties": false
      },
      "ProfilesPartial": {
        "title": "ProfilesPartial",
        "type": "object",
        "description": "(tsType: Partial<Profiles>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Profiles>"
      },
      "NotificationWithRelations": {
        "title": "NotificationWithRelations",
        "type": "object",
        "description": "(tsType: NotificationWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "senderId": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "system",
              "alert",
              "campaign",
              "transactional"
            ]
          },
          "title": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "priority": {
            "type": "string",
            "enum": [
              "low",
              "normal",
              "high",
              "critical"
            ]
          },
          "channel": {
            "type": "string",
            "enum": [
              "in_app",
              "push",
              "email",
              "sms"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "sent",
              "failed",
              "cancelled"
            ]
          },
          "metadata": {
            "type": "object"
          },
          "actionUrl": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          },
          "read": {
            "type": "boolean"
          },
          "readAt": {
            "type": "string",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "projectId": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          },
          "campaignId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          },
          "user": {
            "$ref": "#/components/schemas/User"
          },
          "foreignKey": {},
          "sender": {
            "$ref": "#/components/schemas/User"
          },
          "project": {
            "$ref": "#/components/schemas/Project"
          },
          "form": {
            "$ref": "#/components/schemas/Form"
          }
        },
        "required": [
          "userId",
          "type",
          "title",
          "priority",
          "channel",
          "status",
          "read"
        ],
        "additionalProperties": false,
        "x-typescript-type": "NotificationWithRelations"
      },
      "Notification": {
        "title": "Notification",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "senderId": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "system",
              "alert",
              "campaign",
              "transactional"
            ]
          },
          "title": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "priority": {
            "type": "string",
            "enum": [
              "low",
              "normal",
              "high",
              "critical"
            ]
          },
          "channel": {
            "type": "string",
            "enum": [
              "in_app",
              "push",
              "email",
              "sms"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "sent",
              "failed",
              "cancelled"
            ]
          },
          "metadata": {
            "type": "object"
          },
          "actionUrl": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          },
          "read": {
            "type": "boolean"
          },
          "readAt": {
            "type": "string",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "projectId": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          },
          "campaignId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "userId",
          "type",
          "title",
          "priority",
          "channel",
          "status",
          "read"
        ],
        "additionalProperties": false
      },
      "NotificationCampaign": {
        "title": "NotificationCampaign",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "scheduled",
              "sending",
              "completed",
              "cancelled",
              "failed"
            ]
          },
          "scheduledAt": {
            "type": "string",
            "format": "date-time"
          },
          "sentAt": {
            "type": "string",
            "format": "date-time"
          },
          "totalRecipients": {
            "type": "number"
          },
          "totalSent": {
            "type": "number"
          },
          "totalFailed": {
            "type": "number"
          },
          "createdBy": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "status",
          "totalRecipients",
          "totalSent",
          "totalFailed"
        ],
        "additionalProperties": false
      },
      "NotificationCampaignWithRelations": {
        "title": "NotificationCampaignWithRelations",
        "type": "object",
        "description": "(tsType: NotificationCampaignWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "scheduled",
              "sending",
              "completed",
              "cancelled",
              "failed"
            ]
          },
          "scheduledAt": {
            "type": "string",
            "format": "date-time"
          },
          "sentAt": {
            "type": "string",
            "format": "date-time"
          },
          "totalRecipients": {
            "type": "number"
          },
          "totalSent": {
            "type": "number"
          },
          "totalFailed": {
            "type": "number"
          },
          "createdBy": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          },
          "creator": {
            "$ref": "#/components/schemas/User"
          },
          "foreignKey": {}
        },
        "required": [
          "name",
          "status",
          "totalRecipients",
          "totalSent",
          "totalFailed"
        ],
        "additionalProperties": false,
        "x-typescript-type": "NotificationCampaignWithRelations"
      },
      "NotificationDeliveryWithRelations": {
        "title": "NotificationDeliveryWithRelations",
        "type": "object",
        "description": "(tsType: NotificationDeliveryWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "notificationId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "deviceId": {
            "type": "string"
          },
          "channel": {
            "type": "string",
            "enum": [
              "in_app",
              "push",
              "email",
              "sms"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "sent",
              "failed",
              "read"
            ]
          },
          "failureReason": {
            "type": "string"
          },
          "deliveredAt": {
            "type": "string",
            "format": "date-time"
          },
          "readAt": {
            "type": "string",
            "format": "date-time"
          },
          "retryCount": {
            "type": "number"
          },
          "providerResponse": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          },
          "notification": {
            "$ref": "#/components/schemas/Notification"
          },
          "foreignKey": {},
          "user": {
            "$ref": "#/components/schemas/User"
          },
          "device": {
            "$ref": "#/components/schemas/UserDevice"
          }
        },
        "required": [
          "notificationId",
          "userId",
          "channel",
          "status",
          "retryCount"
        ],
        "additionalProperties": false,
        "x-typescript-type": "NotificationDeliveryWithRelations"
      },
      "NotificationDelivery": {
        "title": "NotificationDelivery",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "notificationId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "deviceId": {
            "type": "string"
          },
          "channel": {
            "type": "string",
            "enum": [
              "in_app",
              "push",
              "email",
              "sms"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "sent",
              "failed",
              "read"
            ]
          },
          "failureReason": {
            "type": "string"
          },
          "deliveredAt": {
            "type": "string",
            "format": "date-time"
          },
          "readAt": {
            "type": "string",
            "format": "date-time"
          },
          "retryCount": {
            "type": "number"
          },
          "providerResponse": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "notificationId",
          "userId",
          "channel",
          "status",
          "retryCount"
        ],
        "additionalProperties": false
      },
      "NotificationLogWithRelations": {
        "title": "NotificationLogWithRelations",
        "type": "object",
        "description": "(tsType: NotificationLogWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "notificationId": {
            "type": "string"
          },
          "level": {
            "type": "string",
            "enum": [
              "info",
              "warn",
              "error"
            ]
          },
          "message": {
            "type": "string"
          },
          "payload": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "notification": {
            "$ref": "#/components/schemas/Notification"
          },
          "foreignKey": {}
        },
        "required": [
          "level",
          "message"
        ],
        "additionalProperties": false,
        "x-typescript-type": "NotificationLogWithRelations"
      },
      "NotificationTemplate": {
        "title": "NotificationTemplate",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "system",
              "alert",
              "campaign",
              "transactional"
            ]
          },
          "subject": {
            "type": "string"
          },
          "titleTemplate": {
            "type": "string"
          },
          "bodyTemplate": {
            "type": "string"
          },
          "channel": {
            "type": "string",
            "enum": [
              "in_app",
              "push",
              "email",
              "sms"
            ]
          },
          "variablesSchema": {
            "type": "object"
          },
          "active": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "type",
          "titleTemplate",
          "bodyTemplate",
          "channel",
          "active"
        ],
        "additionalProperties": false
      },
      "NotificationTemplateWithRelations": {
        "title": "NotificationTemplateWithRelations",
        "type": "object",
        "description": "(tsType: NotificationTemplateWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "system",
              "alert",
              "campaign",
              "transactional"
            ]
          },
          "subject": {
            "type": "string"
          },
          "titleTemplate": {
            "type": "string"
          },
          "bodyTemplate": {
            "type": "string"
          },
          "channel": {
            "type": "string",
            "enum": [
              "in_app",
              "push",
              "email",
              "sms"
            ]
          },
          "variablesSchema": {
            "type": "object"
          },
          "active": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "type",
          "titleTemplate",
          "bodyTemplate",
          "channel",
          "active"
        ],
        "additionalProperties": false,
        "x-typescript-type": "NotificationTemplateWithRelations"
      },
      "LoginResponse": {
        "title": "LoginResponse",
        "type": "object",
        "description": "(tsType: LoginResponse, schemaOptions: { title: 'LoginResponse' })",
        "properties": {
          "mfaRequired": {
            "type": "boolean"
          },
          "challengeId": {
            "type": "string"
          },
          "methods": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "challengeExpiresAt": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "token": {
            "type": "string"
          },
          "accessToken": {
            "type": "string"
          },
          "refreshToken": {
            "type": "string"
          },
          "expiresIn": {
            "type": "number"
          }
        },
        "required": [
          "mfaRequired"
        ],
        "additionalProperties": false,
        "x-typescript-type": "LoginResponse"
      },
      "MfaVerifyRequest": {
        "title": "MfaVerifyRequest",
        "type": "object",
        "properties": {
          "challengeId": {
            "type": "string"
          },
          "method": {
            "type": "string",
            "enum": [
              "email",
              "totp",
              "webauthn",
              "push"
            ]
          },
          "code": {
            "type": "string"
          },
          "webauthnResponse": {
            "type": "object"
          },
          "deviceId": {
            "type": "string"
          },
          "rememberDevice": {
            "type": "boolean"
          }
        },
        "required": [
          "challengeId",
          "method"
        ],
        "additionalProperties": false
      },
      "MfaChallengeStatusResponse": {
        "title": "MfaChallengeStatusResponse",
        "type": "object",
        "description": "(tsType: MfaChallengeStatusResponse, schemaOptions: { title: 'MfaChallengeStatusResponse' })",
        "properties": {
          "status": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string"
          }
        },
        "required": [
          "status",
          "expiresAt"
        ],
        "additionalProperties": false,
        "x-typescript-type": "MfaChallengeStatusResponse"
      },
      "MessageResponse": {
        "title": "MessageResponse",
        "type": "object",
        "description": "(tsType: MessageResponse, schemaOptions: { title: 'MessageResponse' })",
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "additionalProperties": false,
        "x-typescript-type": "MessageResponse"
      },
      "WebauthnAuthOptionsRequest": {
        "title": "WebauthnAuthOptionsRequest",
        "type": "object",
        "properties": {
          "challengeId": {
            "type": "string"
          }
        },
        "required": [
          "challengeId"
        ],
        "additionalProperties": false
      },
      "WebauthnCredentialSummary": {
        "title": "WebauthnCredentialSummary",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "deviceLabel": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "lastUsedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "TrustedDeviceSummary": {
        "title": "TrustedDeviceSummary",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "ip": {
            "type": "string"
          },
          "lastUsedAt": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string"
          },
          "isCurrent": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "lastUsedAt",
          "expiresAt",
          "isCurrent"
        ],
        "additionalProperties": false
      },
      "MfaStatusResponse": {
        "title": "MfaStatusResponse",
        "type": "object",
        "description": "(tsType: MfaStatusResponse, schemaOptions: { title: 'MfaStatusResponse' })",
        "properties": {
          "emailEnabled": {
            "type": "boolean"
          },
          "totpEnabled": {
            "type": "boolean"
          },
          "webauthnCredentials": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebauthnCredentialSummary"
            }
          },
          "trustedDevices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrustedDeviceSummary"
            }
          },
          "pushApproveAvailable": {
            "type": "boolean"
          }
        },
        "required": [
          "emailEnabled",
          "totpEnabled",
          "pushApproveAvailable"
        ],
        "additionalProperties": false,
        "x-typescript-type": "MfaStatusResponse"
      },
      "MfaCodeConfirmRequest": {
        "title": "MfaCodeConfirmRequest",
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          }
        },
        "required": [
          "code"
        ],
        "additionalProperties": false
      },
      "TotpSetupResponse": {
        "title": "TotpSetupResponse",
        "type": "object",
        "description": "(tsType: TotpSetupResponse, schemaOptions: { title: 'TotpSetupResponse' })",
        "properties": {
          "secret": {
            "type": "string"
          },
          "otpauthUrl": {
            "type": "string"
          },
          "qrCodeDataUrl": {
            "type": "string"
          }
        },
        "required": [
          "secret",
          "otpauthUrl",
          "qrCodeDataUrl"
        ],
        "additionalProperties": false,
        "x-typescript-type": "TotpSetupResponse"
      },
      "WebauthnRegisterVerifyRequest": {
        "title": "WebauthnRegisterVerifyRequest",
        "type": "object",
        "properties": {
          "attestationResponse": {
            "type": "object"
          },
          "deviceLabel": {
            "type": "string"
          }
        },
        "required": [
          "attestationResponse"
        ],
        "additionalProperties": false
      },
      "RespondChallengeRequest": {
        "title": "RespondChallengeRequest",
        "type": "object",
        "properties": {
          "approve": {
            "type": "boolean"
          }
        },
        "required": [
          "approve"
        ],
        "additionalProperties": false
      },
      "PendingChallengeSummary": {
        "title": "PendingChallengeSummary",
        "type": "object",
        "description": "(tsType: PendingChallengeSummary, schemaOptions: { title: 'PendingChallengeSummary' })",
        "properties": {
          "id": {
            "type": "string"
          },
          "ip": {
            "type": "string"
          },
          "userAgent": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "createdAt"
        ],
        "additionalProperties": false,
        "x-typescript-type": "PendingChallengeSummary"
      },
      "Liability": {
        "title": "Liability",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "templateId": {
            "type": "string"
          },
          "ownerId": {
            "type": "string"
          },
          "responsible": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "riskLevel": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "identifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "metadata": {
            "type": "object"
          },
          "templateSnapshot": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          },
          "routeFeatureId": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "submittedToAudit": {
            "type": "boolean"
          }
        },
        "required": [
          "title",
          "type",
          "riskLevel",
          "status",
          "identifiedAt"
        ],
        "additionalProperties": false
      },
      "TagRequest": {
        "title": "TagRequest",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "CreateLiabilityRequest": {
        "title": "CreateLiabilityRequest",
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "templateId": {
            "type": "string"
          },
          "ownerId": {
            "type": "string"
          },
          "responsible": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "riskLevel": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "identifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "metadata": {
            "type": "object"
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "routeFeatureId": {
            "type": "string"
          },
          "polygon": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagRequest"
            }
          },
          "description": {
            "type": "string"
          },
          "submittedToAudit": {
            "type": "boolean"
          }
        },
        "required": [
          "projectId",
          "ownerId",
          "title",
          "type",
          "riskLevel",
          "status",
          "identifiedAt"
        ],
        "additionalProperties": false
      },
      "LiabilityEvidence": {
        "title": "LiabilityEvidence",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "liabilityId": {
            "type": "string"
          },
          "fileType": {
            "type": "string"
          },
          "storageUrl": {
            "type": "string"
          },
          "caption": {
            "type": "string"
          },
          "metadata": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "fileType",
          "storageUrl"
        ],
        "additionalProperties": false
      },
      "RouteFeature": {
        "title": "RouteFeature",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "polygon": {
            "type": "string"
          },
          "geojson": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "LiabilityWithRelations": {
        "title": "LiabilityWithRelations",
        "type": "object",
        "description": "(tsType: LiabilityWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "templateId": {
            "type": "string"
          },
          "ownerId": {
            "type": "string"
          },
          "responsible": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "riskLevel": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "identifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "metadata": {
            "type": "object"
          },
          "templateSnapshot": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          },
          "routeFeatureId": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "submittedToAudit": {
            "type": "boolean"
          },
          "project": {
            "$ref": "#/components/schemas/Project"
          },
          "foreignKey": {},
          "template": {
            "$ref": "#/components/schemas/Template"
          },
          "owner": {
            "$ref": "#/components/schemas/User"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "evidences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LiabilityEvidence"
            }
          },
          "routeFeature": {
            "$ref": "#/components/schemas/RouteFeature"
          }
        },
        "required": [
          "title",
          "type",
          "riskLevel",
          "status",
          "identifiedAt"
        ],
        "additionalProperties": false,
        "x-typescript-type": "LiabilityWithRelations"
      },
      "UpdateLiabilityRequest": {
        "title": "UpdateLiabilityRequest",
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string"
          },
          "templateId": {
            "type": "string"
          },
          "ownerId": {
            "type": "string"
          },
          "responsible": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "riskLevel": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "identifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "metadata": {
            "type": "object"
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "routeFeatureId": {
            "type": "string"
          },
          "polygon": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagRequest"
            }
          },
          "description": {
            "type": "string"
          },
          "submittedToAudit": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UpdateLiabilityStatusRequest": {
        "title": "UpdateLiabilityStatusRequest",
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "additionalProperties": false
      },
      "UpdateLiabilityTitleRequest": {
        "title": "UpdateLiabilityTitleRequest",
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          }
        },
        "required": [
          "title"
        ],
        "additionalProperties": false
      },
      "LiabilityEvidencePartialExcluding_id-liabilityId-createdAt-updatedAt-deletedAt_": {
        "title": "LiabilityEvidencePartialExcluding_id-liabilityId-createdAt-updatedAt-deletedAt_",
        "type": "object",
        "description": "(tsType: Omit<Partial<LiabilityEvidence>, 'id' | 'liabilityId' | 'createdAt' | 'updatedAt' | 'deletedAt'>, schemaOptions: { partial: true, exclude: [ 'id', 'liabilityId', 'createdAt', 'updatedAt', 'deletedAt' ] })",
        "properties": {
          "fileType": {
            "type": "string"
          },
          "storageUrl": {
            "type": "string"
          },
          "caption": {
            "type": "string"
          },
          "metadata": {
            "type": "object"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<LiabilityEvidence>, 'id' | 'liabilityId' | 'createdAt' | 'updatedAt' | 'deletedAt'>"
      },
      "ProviderMetadataDto": {
        "title": "ProviderMetadataDto",
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "configSchema": {
            "type": "object"
          },
          "isConfigured": {
            "type": "boolean"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "configId": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "displayName",
          "category",
          "configSchema",
          "isConfigured",
          "isEnabled"
        ],
        "additionalProperties": false
      },
      "ActiveProviderConfigDto": {
        "title": "ActiveProviderConfigDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "providerKey": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "config": {
            "type": "object"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "providerKey",
          "enabled",
          "config"
        ],
        "additionalProperties": false
      },
      "TestConnectionResponse": {
        "title": "TestConnectionResponse",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "success",
          "message"
        ],
        "additionalProperties": false
      },
      "TestProviderRequest": {
        "title": "TestProviderRequest",
        "type": "object",
        "description": "(tsType: TestProviderRequestDto, schemaOptions: { title: 'TestProviderRequest' })",
        "properties": {
          "providerKey": {
            "type": "string"
          },
          "config": {
            "type": "object"
          }
        },
        "required": [
          "providerKey",
          "config"
        ],
        "additionalProperties": false,
        "x-typescript-type": "TestProviderRequestDto"
      },
      "TestProviderRequestDto": {
        "title": "TestProviderRequestDto",
        "type": "object",
        "properties": {
          "providerKey": {
            "type": "string"
          },
          "config": {
            "type": "object"
          }
        },
        "required": [
          "providerKey",
          "config"
        ],
        "additionalProperties": false
      },
      "IntegrationConfig": {
        "title": "IntegrationConfig",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "providerKey": {
            "type": "string"
          },
          "config": {
            "type": "object"
          },
          "enabled": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "category",
          "providerKey",
          "config"
        ],
        "additionalProperties": true
      },
      "SaveConfigRequest": {
        "title": "SaveConfigRequest",
        "type": "object",
        "description": "(tsType: SaveConfigRequestDto, schemaOptions: { title: 'SaveConfigRequest' })",
        "properties": {
          "providerKey": {
            "type": "string"
          },
          "config": {
            "type": "object"
          },
          "enabled": {
            "type": "boolean"
          }
        },
        "required": [
          "providerKey",
          "config"
        ],
        "additionalProperties": false,
        "x-typescript-type": "SaveConfigRequestDto"
      },
      "SaveConfigRequestDto": {
        "title": "SaveConfigRequestDto",
        "type": "object",
        "properties": {
          "providerKey": {
            "type": "string"
          },
          "config": {
            "type": "object"
          },
          "enabled": {
            "type": "boolean"
          }
        },
        "required": [
          "providerKey",
          "config"
        ],
        "additionalProperties": false
      },
      "Features": {
        "title": "Features",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "groupPermissionId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "description"
        ],
        "additionalProperties": false
      },
      "FeaturesPartial": {
        "title": "FeaturesPartial",
        "type": "object",
        "description": "(tsType: Partial<Features>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "groupPermissionId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Features>"
      },
      "FeatureGroupWithFeatures": {
        "title": "FeatureGroupWithFeatures",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Features"
            }
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "FeatureGroup": {
        "title": "FeatureGroup",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "FeatureGroupPartial": {
        "title": "FeatureGroupPartial",
        "type": "object",
        "description": "(tsType: Partial<FeatureGroup>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<FeatureGroup>"
      },
      "ExportFilter": {
        "title": "ExportFilter",
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "description": "Filter by Project ID"
          },
          "formId": {
            "type": "string",
            "description": "Filter by Form ID"
          },
          "status": {
            "type": "string",
            "description": "Filter by Status"
          },
          "periodStart": {
            "type": "string",
            "format": "date-time",
            "description": "Start date of the period"
          },
          "periodEnd": {
            "type": "string",
            "format": "date-time",
            "description": "End date of the period"
          }
        },
        "additionalProperties": false
      },
      "UserAdminCreateResponse": {
        "title": "UserAdminCreateResponse",
        "type": "object",
        "description": "(tsType: UserAdminCreateResponse, schemaOptions: { title: 'UserAdminCreateResponse' })",
        "properties": {
          "message": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        },
        "required": [
          "message",
          "userId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "UserAdminCreateResponse"
      },
      "UserAdminCreateRequest": {
        "title": "UserAdminCreateRequest",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "cpf": {
            "type": "string"
          },
          "profiles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "profile": {},
          "description": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "name"
        ],
        "additionalProperties": false
      },
      "VerificationToken": {
        "title": "VerificationToken",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "email_verification",
              "password_reset",
              "email_change",
              "user_registration",
              "two_factor_email"
            ]
          },
          "token": {
            "type": "string",
            "description": "Hash of the verification token (stored for security)"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "completed": {
            "type": "boolean",
            "description": "Indicates if the verification was completed"
          },
          "userId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "type",
          "token",
          "expiresAt"
        ],
        "additionalProperties": false
      },
      "UserOAuthAccount": {
        "title": "UserOAuthAccount",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "providerUserId": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "avatarUrl": {
            "type": "string",
            "nullable": true
          },
          "rawProfile": {
            "type": "object"
          },
          "linkedAt": {
            "type": "string",
            "format": "date-time"
          },
          "lastLoginAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "required": [
          "provider",
          "providerUserId"
        ],
        "additionalProperties": true
      },
      "UserWithFeaturesResponseWithRelations": {
        "title": "UserWithFeaturesResponseWithRelations",
        "type": "object",
        "description": "(tsType: UserWithFeaturesResponseWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "cpf": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "educationLevel": {
            "type": "string"
          },
          "course": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "emailVerified": {
            "type": "boolean"
          },
          "active": {
            "type": "boolean"
          },
          "isTwoFactorEnabled": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "avatar": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "userProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserProfiles"
            }
          },
          "userVerificationToken": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationToken"
            }
          },
          "profiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Profiles"
            }
          },
          "oauthAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserOAuthAccount"
            }
          }
        },
        "required": [
          "name",
          "username",
          "email",
          "status"
        ],
        "additionalProperties": false,
        "x-typescript-type": "UserWithFeaturesResponseWithRelations"
      },
      "UserUpdateMeRequestPartial": {
        "title": "UserUpdateMeRequestPartial",
        "type": "object",
        "description": "(tsType: Partial<UserUpdateMeRequest>, schemaOptions: { partial: true })",
        "properties": {
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "cpf": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "educationLevel": {
            "type": "string"
          },
          "course": {
            "type": "string"
          },
          "profiles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "profile": {},
          "status": {
            "type": "string"
          },
          "avatar": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<UserUpdateMeRequest>"
      },
      "UserUpdateMeRequest": {
        "title": "UserUpdateMeRequest",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "cpf": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "educationLevel": {
            "type": "string"
          },
          "course": {
            "type": "string"
          },
          "profiles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "profile": {},
          "status": {
            "type": "string"
          },
          "avatar": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ChangePasswordRequest": {
        "title": "ChangePasswordRequest",
        "type": "object",
        "properties": {
          "currentPassword": {
            "type": "string"
          },
          "newPassword": {
            "type": "string",
            "minLength": 8
          }
        },
        "required": [
          "currentPassword",
          "newPassword"
        ],
        "additionalProperties": false
      },
      "UserWithRelations": {
        "title": "UserWithRelations",
        "type": "object",
        "description": "(tsType: UserWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "cpf": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "educationLevel": {
            "type": "string"
          },
          "course": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "emailVerified": {
            "type": "boolean"
          },
          "active": {
            "type": "boolean"
          },
          "isTwoFactorEnabled": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "avatar": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "userProfiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserProfiles"
            }
          },
          "userVerificationToken": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VerificationToken"
            }
          },
          "profiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Profiles"
            }
          },
          "oauthAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserOAuthAccount"
            }
          }
        },
        "required": [
          "name",
          "username",
          "email",
          "status"
        ],
        "additionalProperties": false,
        "x-typescript-type": "UserWithRelations"
      },
      "UserAdminUpdateProfilesRequest": {
        "title": "UserAdminUpdateProfilesRequest",
        "type": "object",
        "properties": {
          "profiles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "profiles"
        ],
        "additionalProperties": false
      },
      "UserUpdateStatusRequest": {
        "title": "UserUpdateStatusRequest",
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "additionalProperties": false
      },
      "SystemLog": {
        "title": "SystemLog",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "level": {
            "type": "string",
            "enum": [
              "debug",
              "info",
              "warn",
              "error",
              "critical"
            ]
          },
          "action": {
            "type": "string",
            "enum": [
              "CREATE",
              "READ",
              "UPDATE",
              "DELETE",
              "LOGIN",
              "LOGOUT",
              "EXPORT",
              "IMPORT",
              "SUBMIT",
              "COMPLETE_REGISTRATION",
              "ACTIVATE",
              "INACTIVATE",
              "OTHER"
            ]
          },
          "message": {
            "type": "string"
          },
          "entityName": {
            "type": "string"
          },
          "entityId": {
            "type": "string"
          },
          "ipAddress": {
            "type": "string"
          },
          "userAgent": {
            "type": "string"
          },
          "requestPath": {
            "type": "string"
          },
          "statusCode": {
            "type": "number"
          },
          "metadata": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "username",
          "level",
          "action",
          "message",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "NewQuestion": {
        "title": "NewQuestion",
        "type": "object",
        "description": "(tsType: Omit<Question, 'id'>, schemaOptions: { title: 'NewQuestion', exclude: [ 'id' ] })",
        "properties": {
          "question": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "text",
              "textarea",
              "number",
              "date",
              "time",
              "datetime",
              "single_choice",
              "multiple_choice",
              "audio",
              "location",
              "polygon",
              "media",
              "file"
            ]
          },
          "layout": {
            "type": "string"
          },
          "descriptionToShow": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "question",
          "type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Question, 'id'>"
      },
      "Hint": {
        "title": "Hint",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "text"
        ],
        "additionalProperties": false
      },
      "QuestionValidation": {
        "title": "QuestionValidation",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "validationType": {
            "type": "string",
            "enum": [
              "text",
              "number"
            ]
          },
          "pattern": {
            "type": "string"
          },
          "minLength": {
            "type": "number"
          },
          "maxLength": {
            "type": "number"
          },
          "minValue": {
            "type": "number"
          },
          "maxValue": {
            "type": "number"
          },
          "step": {
            "type": "number"
          },
          "errorMessage": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "validationType"
        ],
        "additionalProperties": false
      },
      "VisibilityLogic": {
        "title": "VisibilityLogic",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "conditionQuestionId": {
            "type": "string"
          },
          "operator": {
            "type": "string",
            "enum": [
              "equals",
              "not_equals",
              "contains",
              "not_contains",
              "greater_than",
              "less_than",
              "greater_than_or_equals",
              "less_than_or_equals",
              "is_empty",
              "is_not_empty"
            ]
          },
          "value": {
            "type": "string"
          },
          "connector": {
            "type": "string",
            "enum": [
              "AND",
              "OR"
            ]
          },
          "order": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "operator"
        ],
        "additionalProperties": false
      },
      "QuestionWithRelations": {
        "title": "QuestionWithRelations",
        "type": "object",
        "description": "(tsType: QuestionWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "text",
              "textarea",
              "number",
              "date",
              "time",
              "datetime",
              "single_choice",
              "multiple_choice",
              "audio",
              "location",
              "polygon",
              "media",
              "file"
            ]
          },
          "layout": {
            "type": "string"
          },
          "descriptionToShow": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Option"
            }
          },
          "hints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Hint"
            }
          },
          "validations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuestionValidation"
            }
          },
          "visibilityLogics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VisibilityLogic"
            }
          }
        },
        "required": [
          "question",
          "type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "QuestionWithRelations"
      },
      "QuestionPartial": {
        "title": "QuestionPartial",
        "type": "object",
        "description": "(tsType: Partial<Question>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "text",
              "textarea",
              "number",
              "date",
              "time",
              "datetime",
              "single_choice",
              "multiple_choice",
              "audio",
              "location",
              "polygon",
              "media",
              "file"
            ]
          },
          "layout": {
            "type": "string"
          },
          "descriptionToShow": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Question>"
      },
      "VisibilityLogicWithRelations": {
        "title": "VisibilityLogicWithRelations",
        "type": "object",
        "description": "(tsType: VisibilityLogicWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "conditionQuestionId": {
            "type": "string"
          },
          "operator": {
            "type": "string",
            "enum": [
              "equals",
              "not_equals",
              "contains",
              "not_contains",
              "greater_than",
              "less_than",
              "greater_than_or_equals",
              "less_than_or_equals",
              "is_empty",
              "is_not_empty"
            ]
          },
          "value": {
            "type": "string"
          },
          "connector": {
            "type": "string",
            "enum": [
              "AND",
              "OR"
            ]
          },
          "order": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "question": {
            "$ref": "#/components/schemas/Question"
          },
          "foreignKey": {},
          "conditionQuestion": {
            "$ref": "#/components/schemas/Question"
          }
        },
        "required": [
          "operator"
        ],
        "additionalProperties": false,
        "x-typescript-type": "VisibilityLogicWithRelations"
      },
      "NewVisibilityLogic": {
        "title": "NewVisibilityLogic",
        "type": "object",
        "description": "(tsType: Omit<VisibilityLogic, 'id'>, schemaOptions: { title: 'NewVisibilityLogic', exclude: [ 'id' ] })",
        "properties": {
          "questionId": {
            "type": "string"
          },
          "conditionQuestionId": {
            "type": "string"
          },
          "operator": {
            "type": "string",
            "enum": [
              "equals",
              "not_equals",
              "contains",
              "not_contains",
              "greater_than",
              "less_than",
              "greater_than_or_equals",
              "less_than_or_equals",
              "is_empty",
              "is_not_empty"
            ]
          },
          "value": {
            "type": "string"
          },
          "connector": {
            "type": "string",
            "enum": [
              "AND",
              "OR"
            ]
          },
          "order": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "operator"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<VisibilityLogic, 'id'>"
      },
      "VisibilityLogicPartial": {
        "title": "VisibilityLogicPartial",
        "type": "object",
        "description": "(tsType: Partial<VisibilityLogic>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "conditionQuestionId": {
            "type": "string"
          },
          "operator": {
            "type": "string",
            "enum": [
              "equals",
              "not_equals",
              "contains",
              "not_contains",
              "greater_than",
              "less_than",
              "greater_than_or_equals",
              "less_than_or_equals",
              "is_empty",
              "is_not_empty"
            ]
          },
          "value": {
            "type": "string"
          },
          "connector": {
            "type": "string",
            "enum": [
              "AND",
              "OR"
            ]
          },
          "order": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<VisibilityLogic>"
      },
      "QuestionValidationWithRelations": {
        "title": "QuestionValidationWithRelations",
        "type": "object",
        "description": "(tsType: QuestionValidationWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "validationType": {
            "type": "string",
            "enum": [
              "text",
              "number"
            ]
          },
          "pattern": {
            "type": "string"
          },
          "minLength": {
            "type": "number"
          },
          "maxLength": {
            "type": "number"
          },
          "minValue": {
            "type": "number"
          },
          "maxValue": {
            "type": "number"
          },
          "step": {
            "type": "number"
          },
          "errorMessage": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "question": {
            "$ref": "#/components/schemas/Question"
          },
          "foreignKey": {}
        },
        "required": [
          "validationType"
        ],
        "additionalProperties": false,
        "x-typescript-type": "QuestionValidationWithRelations"
      },
      "NewQuestionValidation": {
        "title": "NewQuestionValidation",
        "type": "object",
        "description": "(tsType: Omit<QuestionValidation, 'id'>, schemaOptions: { title: 'NewQuestionValidation', exclude: [ 'id' ] })",
        "properties": {
          "questionId": {
            "type": "string"
          },
          "validationType": {
            "type": "string",
            "enum": [
              "text",
              "number"
            ]
          },
          "pattern": {
            "type": "string"
          },
          "minLength": {
            "type": "number"
          },
          "maxLength": {
            "type": "number"
          },
          "minValue": {
            "type": "number"
          },
          "maxValue": {
            "type": "number"
          },
          "step": {
            "type": "number"
          },
          "errorMessage": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "validationType"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<QuestionValidation, 'id'>"
      },
      "QuestionValidationPartial": {
        "title": "QuestionValidationPartial",
        "type": "object",
        "description": "(tsType: Partial<QuestionValidation>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "validationType": {
            "type": "string",
            "enum": [
              "text",
              "number"
            ]
          },
          "pattern": {
            "type": "string"
          },
          "minLength": {
            "type": "number"
          },
          "maxLength": {
            "type": "number"
          },
          "minValue": {
            "type": "number"
          },
          "maxValue": {
            "type": "number"
          },
          "step": {
            "type": "number"
          },
          "errorMessage": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<QuestionValidation>"
      },
      "OptionWithRelations": {
        "title": "OptionWithRelations",
        "type": "object",
        "description": "(tsType: OptionWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "other": {
            "type": "boolean"
          },
          "order": {
            "type": "number"
          },
          "questionId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "question": {
            "$ref": "#/components/schemas/Question"
          },
          "foreignKey": {}
        },
        "required": [
          "text",
          "order"
        ],
        "additionalProperties": false,
        "x-typescript-type": "OptionWithRelations"
      },
      "NewOption": {
        "title": "NewOption",
        "type": "object",
        "description": "(tsType: Omit<Option, 'id'>, schemaOptions: { title: 'NewOption', exclude: [ 'id' ] })",
        "properties": {
          "text": {
            "type": "string"
          },
          "other": {
            "type": "boolean"
          },
          "order": {
            "type": "number"
          },
          "questionId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "text",
          "order"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Option, 'id'>"
      },
      "OptionPartial": {
        "title": "OptionPartial",
        "type": "object",
        "description": "(tsType: Partial<Option>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "other": {
            "type": "boolean"
          },
          "order": {
            "type": "number"
          },
          "questionId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Option>"
      },
      "HintWithRelations": {
        "title": "HintWithRelations",
        "type": "object",
        "description": "(tsType: HintWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "question": {
            "$ref": "#/components/schemas/Question"
          },
          "foreignKey": {}
        },
        "required": [
          "text"
        ],
        "additionalProperties": false,
        "x-typescript-type": "HintWithRelations"
      },
      "NewHint": {
        "title": "NewHint",
        "type": "object",
        "description": "(tsType: Omit<Hint, 'id'>, schemaOptions: { title: 'NewHint', exclude: [ 'id' ] })",
        "properties": {
          "text": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "text"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Hint, 'id'>"
      },
      "HintPartial": {
        "title": "HintPartial",
        "type": "object",
        "description": "(tsType: Partial<Hint>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Hint>"
      },
      "AreaQuestionWithRelations": {
        "title": "AreaQuestionWithRelations",
        "type": "object",
        "description": "(tsType: AreaQuestionWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "boundary": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "question": {
            "$ref": "#/components/schemas/Question"
          },
          "foreignKey": {}
        },
        "additionalProperties": false,
        "x-typescript-type": "AreaQuestionWithRelations"
      },
      "AreaQuestion": {
        "title": "AreaQuestion",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "boundary": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "NewAreaQuestion": {
        "title": "NewAreaQuestion",
        "type": "object",
        "description": "(tsType: Omit<AreaQuestion, 'id'>, schemaOptions: { title: 'NewAreaQuestion', exclude: [ 'id' ] })",
        "properties": {
          "questionId": {
            "type": "string"
          },
          "boundary": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<AreaQuestion, 'id'>"
      },
      "AreaQuestionPartial": {
        "title": "AreaQuestionPartial",
        "type": "object",
        "description": "(tsType: Partial<AreaQuestion>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "boundary": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<AreaQuestion>"
      },
      "MediaQuestionWithRelations": {
        "title": "MediaQuestionWithRelations",
        "type": "object",
        "description": "(tsType: MediaQuestionWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "storagePath": {
            "type": "string"
          },
          "capturedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "question": {
            "$ref": "#/components/schemas/Question"
          },
          "foreignKey": {}
        },
        "additionalProperties": false,
        "x-typescript-type": "MediaQuestionWithRelations"
      },
      "MediaQuestion": {
        "title": "MediaQuestion",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "storagePath": {
            "type": "string"
          },
          "capturedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "NewMediaQuestion": {
        "title": "NewMediaQuestion",
        "type": "object",
        "description": "(tsType: Omit<MediaQuestion, 'id'>, schemaOptions: { title: 'NewMediaQuestion', exclude: [ 'id' ] })",
        "properties": {
          "questionId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "storagePath": {
            "type": "string"
          },
          "capturedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<MediaQuestion, 'id'>"
      },
      "MediaQuestionPartial": {
        "title": "MediaQuestionPartial",
        "type": "object",
        "description": "(tsType: Partial<MediaQuestion>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "storagePath": {
            "type": "string"
          },
          "capturedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<MediaQuestion>"
      },
      "LocationQuestionWithRelations": {
        "title": "LocationQuestionWithRelations",
        "type": "object",
        "description": "(tsType: LocationQuestionWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "coordinates": {
            "type": "object"
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "altitude": {
            "type": "number"
          },
          "captureAltitude": {
            "type": "boolean"
          },
          "required": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "question": {
            "$ref": "#/components/schemas/Question"
          },
          "foreignKey": {}
        },
        "additionalProperties": false,
        "x-typescript-type": "LocationQuestionWithRelations"
      },
      "LocationQuestion": {
        "title": "LocationQuestion",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "coordinates": {
            "type": "object"
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "altitude": {
            "type": "number"
          },
          "captureAltitude": {
            "type": "boolean"
          },
          "required": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "NewLocationQuestion": {
        "title": "NewLocationQuestion",
        "type": "object",
        "description": "(tsType: Omit<LocationQuestion, 'id'>, schemaOptions: { title: 'NewLocationQuestion', exclude: [ 'id' ] })",
        "properties": {
          "questionId": {
            "type": "string"
          },
          "coordinates": {
            "type": "object"
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "altitude": {
            "type": "number"
          },
          "captureAltitude": {
            "type": "boolean"
          },
          "required": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<LocationQuestion, 'id'>"
      },
      "LocationQuestionPartial": {
        "title": "LocationQuestionPartial",
        "type": "object",
        "description": "(tsType: Partial<LocationQuestion>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "coordinates": {
            "type": "object"
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "altitude": {
            "type": "number"
          },
          "captureAltitude": {
            "type": "boolean"
          },
          "required": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<LocationQuestion>"
      },
      "AudioQuestionWithRelations": {
        "title": "AudioQuestionWithRelations",
        "type": "object",
        "description": "(tsType: AudioQuestionWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "maxDurationSeconds": {
            "type": "number"
          },
          "storagePath": {
            "type": "string"
          },
          "capturedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "question": {
            "$ref": "#/components/schemas/Question"
          },
          "foreignKey": {}
        },
        "additionalProperties": false,
        "x-typescript-type": "AudioQuestionWithRelations"
      },
      "AudioQuestion": {
        "title": "AudioQuestion",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "maxDurationSeconds": {
            "type": "number"
          },
          "storagePath": {
            "type": "string"
          },
          "capturedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "CreateProjectRequest": {
        "title": "CreateProjectRequest",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "budget": {
            "type": "number"
          },
          "customFields": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "ownerId": {
            "type": "string"
          },
          "templateId": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagRequest"
            }
          }
        },
        "required": [
          "name",
          "ownerId"
        ],
        "additionalProperties": false
      },
      "ProjectWithRelations": {
        "title": "ProjectWithRelations",
        "type": "object",
        "description": "(tsType: ProjectWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "actived",
              "paused",
              "done",
              "canceled",
              "expired"
            ]
          },
          "company": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "budget": {
            "type": "number"
          },
          "customFields": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "ownerId": {
            "type": "string"
          },
          "templateId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          },
          "owner": {
            "$ref": "#/components/schemas/User"
          },
          "foreignKey": {},
          "template": {
            "$ref": "#/components/schemas/Template"
          },
          "forms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Form"
            }
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          },
          "projectUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectUser"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          }
        },
        "required": [
          "name",
          "status"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ProjectWithRelations"
      },
      "UpdateProjectRequest": {
        "title": "UpdateProjectRequest",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "budget": {
            "type": "number"
          },
          "customFields": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "templateId": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TagRequest"
            }
          }
        },
        "additionalProperties": false
      },
      "CustomFieldPatchRequest": {
        "title": "CustomFieldPatchRequest",
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {}
        },
        "required": [
          "key",
          "value"
        ],
        "additionalProperties": false
      },
      "ProjectUserWithRelations": {
        "title": "ProjectUserWithRelations",
        "type": "object",
        "description": "(tsType: ProjectUserWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "profileId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "project": {
            "$ref": "#/components/schemas/Project"
          },
          "foreignKey": {},
          "user": {
            "$ref": "#/components/schemas/User"
          },
          "profile": {
            "$ref": "#/components/schemas/Profiles"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "ProjectUserWithRelations"
      },
      "NewProjectMember": {
        "title": "NewProjectMember",
        "type": "object",
        "description": "(tsType: Omit<ProjectUser, 'id' | 'projectId'>, schemaOptions: { title: 'NewProjectMember', exclude: [ 'id', 'projectId' ] })",
        "properties": {
          "userId": {
            "type": "string"
          },
          "profileId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<ProjectUser, 'id' | 'projectId'>"
      },
      "AddProjectMemberRequest": {
        "title": "AddProjectMemberRequest",
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "profileId": {
            "type": "string"
          }
        },
        "required": [
          "userId",
          "profileId"
        ],
        "additionalProperties": false
      },
      "FormQuestion": {
        "title": "FormQuestion",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          },
          "questionId": {
            "type": "string"
          },
          "order": {
            "type": "number"
          },
          "required": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "FormUser": {
        "title": "FormUser",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "FormSection": {
        "title": "FormSection",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "order": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "title",
          "order"
        ],
        "additionalProperties": false
      },
      "FormWithRelations": {
        "title": "FormWithRelations",
        "type": "object",
        "description": "(tsType: FormWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "draft",
              "archived",
              "done"
            ]
          },
          "ownerId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "owner": {
            "$ref": "#/components/schemas/User"
          },
          "foreignKey": {},
          "project": {
            "$ref": "#/components/schemas/Project"
          },
          "questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Question"
            }
          },
          "formQuestions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormQuestion"
            }
          },
          "formUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormUser"
            }
          },
          "sections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormSection"
            }
          },
          "takes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Take"
            }
          }
        },
        "required": [
          "name",
          "status"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FormWithRelations"
      },
      "NewFormInProject": {
        "title": "NewFormInProject",
        "type": "object",
        "description": "(tsType: Omit<Form, 'id'>, schemaOptions: { title: 'NewFormInProject', exclude: [ 'id' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "draft",
              "archived",
              "done"
            ]
          },
          "ownerId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "status"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Form, 'id'>"
      },
      "FormQuestionOptionRequest": {
        "title": "FormQuestionOptionRequest",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "label"
        ],
        "additionalProperties": false
      },
      "FormQuestionRequest": {
        "title": "FormQuestionRequest",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "text",
              "textarea",
              "number",
              "date",
              "time",
              "datetime",
              "single_choice",
              "multiple_choice",
              "audio",
              "location",
              "polygon",
              "media",
              "file"
            ]
          },
          "label": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormQuestionOptionRequest"
            }
          },
          "validations": {
            "type": "object"
          },
          "logic": {},
          "hints": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "type",
          "label"
        ],
        "additionalProperties": false
      },
      "FormSectionRequest": {
        "title": "FormSectionRequest",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormQuestionRequest"
            }
          },
          "navigation": {
            "type": "object"
          }
        },
        "required": [
          "id",
          "title",
          "questions"
        ],
        "additionalProperties": false
      },
      "CreateFormRequest": {
        "title": "CreateFormRequest",
        "type": "object",
        "description": "(tsType: CreateFormRequest, schemaOptions: { title: 'CreateFormRequest' })",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 3,
            "maxLength": 100
          },
          "description": {
            "type": "string",
            "minLength": 5
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "draft",
              "archived",
              "done"
            ]
          },
          "ownerId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "sections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormSectionRequest"
            }
          },
          "collectors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "title",
          "description",
          "status",
          "ownerId",
          "sections"
        ],
        "additionalProperties": false,
        "x-typescript-type": "CreateFormRequest"
      },
      "QuestionWithRelationsResponse": {
        "title": "QuestionWithRelationsResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "text",
              "textarea",
              "number",
              "date",
              "time",
              "datetime",
              "single_choice",
              "multiple_choice",
              "audio",
              "location",
              "polygon",
              "media",
              "file"
            ]
          },
          "layout": {
            "type": "string"
          },
          "descriptionToShow": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Option"
            }
          },
          "hints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Hint"
            }
          },
          "validations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuestionValidation"
            }
          },
          "visibilityLogics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VisibilityLogic"
            }
          },
          "order": {
            "type": "number"
          }
        },
        "required": [
          "question",
          "type"
        ],
        "additionalProperties": false
      },
      "FormSectionNavigation": {
        "title": "FormSectionNavigation",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "sectionId": {
            "type": "string"
          },
          "defaultNextSectionId": {
            "type": "string"
          },
          "dependsOnQuestionId": {
            "type": "string"
          },
          "condition": {
            "type": "string",
            "enum": [
              "is",
              "is_not"
            ]
          },
          "value": {
            "type": "string"
          },
          "goToSectionId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "FormSectionWithRelationsResponse": {
        "title": "FormSectionWithRelationsResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "formId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "order": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuestionWithRelationsResponse"
            }
          },
          "navigationRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormSectionNavigation"
            }
          }
        },
        "required": [
          "title",
          "order"
        ],
        "additionalProperties": false
      },
      "FormWithRelationsResponse": {
        "title": "FormWithRelationsResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "draft",
              "archived",
              "done"
            ]
          },
          "ownerId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "sections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormSectionWithRelationsResponse"
            }
          },
          "owner": {
            "$ref": "#/components/schemas/User"
          },
          "takes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Take"
            }
          },
          "formUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormUser"
            }
          }
        },
        "required": [
          "name",
          "status"
        ],
        "additionalProperties": false
      },
      "FormPartial": {
        "title": "FormPartial",
        "type": "object",
        "description": "(tsType: Partial<Form>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "draft",
              "archived",
              "done"
            ]
          },
          "ownerId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Form>"
      },
      "UpdateFormRequest": {
        "title": "UpdateFormRequest",
        "type": "object",
        "description": "(tsType: UpdateFormRequest, schemaOptions: { title: 'UpdateFormRequest' })",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 3,
            "maxLength": 100
          },
          "description": {
            "type": "string",
            "minLength": 5
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "draft",
              "archived",
              "done"
            ]
          },
          "ownerId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "sections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormSectionRequest"
            }
          },
          "collectors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "UpdateFormRequest"
      },
      "UpdateFormSectionsRequest": {
        "title": "UpdateFormSectionsRequest",
        "type": "object",
        "description": "(tsType: UpdateFormSectionsRequest, schemaOptions: { title: 'UpdateFormSectionsRequest' })",
        "properties": {
          "sections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FormSectionRequest"
            }
          }
        },
        "required": [
          "sections"
        ],
        "additionalProperties": false,
        "x-typescript-type": "UpdateFormSectionsRequest"
      },
      "CollectionRoute": {
        "title": "CollectionRoute",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "route": {
            "type": "string"
          },
          "passiveIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "collectorIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "formIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "waypoints": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "Conversation": {
        "title": "Conversation",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "isGroup": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "CreateConversationRequest": {
        "title": "CreateConversationRequest",
        "type": "object",
        "description": "(tsType: CreateConversationDto, schemaOptions: { title: 'CreateConversationRequest' })",
        "properties": {
          "participantId": {
            "type": "string",
            "description": "UUID of the other participant in the 1-to-1 conversation",
            "format": "uuid"
          }
        },
        "required": [
          "participantId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "CreateConversationDto"
      },
      "CreateConversationDto": {
        "title": "CreateConversationDto",
        "type": "object",
        "properties": {
          "participantId": {
            "type": "string",
            "description": "UUID of the other participant in the 1-to-1 conversation",
            "format": "uuid"
          }
        },
        "required": [
          "participantId"
        ],
        "additionalProperties": false
      },
      "ConversationWithMetadata": {
        "title": "ConversationWithMetadata",
        "type": "object",
        "properties": {
          "conversation": {
            "type": "object"
          },
          "lastMessage": {
            "type": "object",
            "nullable": true
          },
          "unreadCount": {
            "type": "number"
          },
          "participantIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "isOnline": {
            "type": "boolean"
          }
        },
        "required": [
          "conversation",
          "unreadCount",
          "participantIds"
        ],
        "additionalProperties": false
      },
      "ChatContactDto": {
        "title": "ChatContactDto",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "avatar": {
            "type": "string",
            "nullable": true
          },
          "isOnline": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "username"
        ],
        "additionalProperties": false
      },
      "ChatMessage": {
        "title": "ChatMessage",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "conversationId": {
            "type": "string"
          },
          "senderId": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "sent",
              "delivered",
              "read"
            ]
          },
          "clientId": {
            "type": "string"
          },
          "replyToId": {
            "type": "string"
          },
          "edited": {
            "type": "boolean"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "senderId",
          "content"
        ],
        "description": "{\"indexInfo\":{\"clientId\":{\"unique\":true}}}",
        "additionalProperties": false
      },
      "OAuthProviderInfo": {
        "title": "OAuthProviderInfo",
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "displayName"
        ],
        "additionalProperties": false
      },
      "OAuthAuthorizationUrlResponse": {
        "title": "OAuthAuthorizationUrlResponse",
        "type": "object",
        "properties": {
          "authorizationUrl": {
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        },
        "required": [
          "authorizationUrl",
          "state"
        ],
        "additionalProperties": false
      },
      "LinkOAuthProviderRequest": {
        "title": "LinkOAuthProviderRequest",
        "type": "object",
        "description": "(tsType: LinkOAuthProviderRequest, schemaOptions: { title: 'LinkOAuthProviderRequest' })",
        "properties": {
          "code": {
            "type": "string"
          },
          "redirectUri": {
            "type": "string"
          }
        },
        "required": [
          "code"
        ],
        "additionalProperties": false,
        "x-typescript-type": "LinkOAuthProviderRequest"
      },
      "LinkedOAuthAccountResponse": {
        "title": "LinkedOAuthAccountResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "avatarUrl": {
            "type": "string"
          },
          "linkedAt": {
            "type": "string"
          },
          "lastLoginAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "provider"
        ],
        "additionalProperties": false
      },
      "NewUser": {
        "title": "NewUser",
        "type": "object",
        "description": "(tsType: Omit<User, 'active' | 'password' | 'emailVerified' | 'registrationCompleted'>, schemaOptions: { title: 'NewUser', exclude: [ 'active', 'password', 'emailVerified', 'registrationCompleted' ] })",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "cpf": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "educationLevel": {
            "type": "string"
          },
          "course": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "isTwoFactorEnabled": {
            "type": "boolean"
          },
          "failedLoginAttempts": {
            "type": "number"
          },
          "lockedUntil": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "avatar": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "name",
          "username",
          "email",
          "status"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<User, 'active' | 'password' | 'emailVerified' | 'registrationCompleted'>"
      },
      "LoginRequest": {
        "title": "LoginRequest",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "deviceId": {
            "type": "string",
            "description": "Client-generated device UUID (persisted in localStorage), used for trusted-device/adaptive MFA."
          }
        },
        "required": [
          "email",
          "password"
        ],
        "additionalProperties": false
      },
      "TokenPairResponse": {
        "title": "TokenPairResponse",
        "type": "object",
        "description": "(tsType: TokenPairResponse, schemaOptions: { title: 'TokenPairResponse' })",
        "properties": {
          "accessToken": {
            "type": "string"
          },
          "refreshToken": {
            "type": "string"
          },
          "expiresIn": {
            "type": "number"
          }
        },
        "required": [
          "accessToken",
          "refreshToken",
          "expiresIn"
        ],
        "additionalProperties": false,
        "x-typescript-type": "TokenPairResponse"
      },
      "RefreshTokenRequest": {
        "title": "RefreshTokenRequest",
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "LogoutRequest": {
        "title": "LogoutRequest",
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string",
            "description": "Refresh token identifying the session to end. If omitted, all sessions for the authenticated user are revoked."
          }
        },
        "additionalProperties": false
      },
      "CurrentUserResponse": {
        "title": "CurrentUserResponse",
        "type": "object",
        "description": "(tsType: CurrentUserResponse, schemaOptions: { title: 'CurrentUserResponse' })",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "profile": {
            "type": "string"
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "email"
        ],
        "additionalProperties": false,
        "x-typescript-type": "CurrentUserResponse"
      },
      "VerifyCodeResponse": {
        "title": "VerifyCodeResponse",
        "type": "object",
        "description": "(tsType: VerifyCodeResponse, schemaOptions: { title: 'VerifyCodeResponse' })",
        "properties": {
          "message": {
            "type": "string"
          },
          "user": {
            "type": "object"
          }
        },
        "required": [
          "message"
        ],
        "additionalProperties": false,
        "x-typescript-type": "VerifyCodeResponse"
      },
      "VerifyUserWithCodeRequest": {
        "title": "VerifyUserWithCodeRequest",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "code": {
            "type": "string",
            "description": "6-digit verification code"
          }
        },
        "required": [
          "email",
          "code"
        ],
        "additionalProperties": false
      },
      "CompleteRegistrationRequest": {
        "title": "CompleteRegistrationRequest",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "newPassword": {
            "type": "string",
            "minLength": 8
          },
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "cpf": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "educationLevel": {
            "type": "string"
          },
          "course": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "code",
          "newPassword",
          "name",
          "username"
        ],
        "additionalProperties": false
      },
      "PasswordResetRequest": {
        "title": "PasswordResetRequest",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "additionalProperties": false
      },
      "AccountRecoveryRequest": {
        "title": "AccountRecoveryRequest",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "additionalProperties": false
      },
      "ResetPasswordConfirmRequest": {
        "title": "ResetPasswordConfirmRequest",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "newPassword": {
            "type": "string",
            "minLength": 8
          }
        },
        "required": [
          "email",
          "code",
          "newPassword"
        ],
        "additionalProperties": false
      },
      "NotificationDelivery.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": "NotificationDelivery.ScopeFilter"
      },
      "NotificationDelivery.IncludeFilter.Items": {
        "title": "NotificationDelivery.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "notification",
              "user",
              "device"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/NotificationDelivery.ScopeFilter"
          }
        }
      },
      "NotificationDelivery.Filter": {
        "type": "object",
        "title": "NotificationDelivery.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": "NotificationDelivery.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "notificationId": {
                    "type": "boolean"
                  },
                  "userId": {
                    "type": "boolean"
                  },
                  "deviceId": {
                    "type": "boolean"
                  },
                  "channel": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "failureReason": {
                    "type": "boolean"
                  },
                  "deliveredAt": {
                    "type": "boolean"
                  },
                  "readAt": {
                    "type": "boolean"
                  },
                  "retryCount": {
                    "type": "boolean"
                  },
                  "providerResponse": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "deletedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "notificationId",
                    "userId",
                    "deviceId",
                    "channel",
                    "status",
                    "failureReason",
                    "deliveredAt",
                    "readAt",
                    "retryCount",
                    "providerResponse",
                    "createdAt",
                    "updatedAt",
                    "deletedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "NotificationDelivery.Fields"
          },
          "include": {
            "title": "NotificationDelivery.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/NotificationDelivery.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<NotificationDelivery>"
      },
      "NotificationLog.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": "NotificationLog.ScopeFilter"
      },
      "NotificationLog.IncludeFilter.Items": {
        "title": "NotificationLog.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "notification"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/NotificationLog.ScopeFilter"
          }
        }
      },
      "NotificationLog.Filter": {
        "type": "object",
        "title": "NotificationLog.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": "NotificationLog.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "notificationId": {
                    "type": "boolean"
                  },
                  "level": {
                    "type": "boolean"
                  },
                  "message": {
                    "type": "boolean"
                  },
                  "payload": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "notificationId",
                    "level",
                    "message",
                    "payload",
                    "createdAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "NotificationLog.Fields"
          },
          "include": {
            "title": "NotificationLog.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/NotificationLog.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<NotificationLog>"
      },
      "Notification.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": "Notification.ScopeFilter"
      },
      "Notification.IncludeFilter.Items": {
        "title": "Notification.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "user",
              "sender",
              "project",
              "form"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Notification.ScopeFilter"
          }
        }
      },
      "Notification.Filter": {
        "type": "object",
        "title": "Notification.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": "Notification.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "userId": {
                    "type": "boolean"
                  },
                  "senderId": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "boolean"
                  },
                  "body": {
                    "type": "boolean"
                  },
                  "priority": {
                    "type": "boolean"
                  },
                  "channel": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "metadata": {
                    "type": "boolean"
                  },
                  "actionUrl": {
                    "type": "boolean"
                  },
                  "imageUrl": {
                    "type": "boolean"
                  },
                  "icon": {
                    "type": "boolean"
                  },
                  "read": {
                    "type": "boolean"
                  },
                  "readAt": {
                    "type": "boolean"
                  },
                  "expiresAt": {
                    "type": "boolean"
                  },
                  "projectId": {
                    "type": "boolean"
                  },
                  "formId": {
                    "type": "boolean"
                  },
                  "campaignId": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "deletedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "userId",
                    "senderId",
                    "type",
                    "title",
                    "body",
                    "priority",
                    "channel",
                    "status",
                    "metadata",
                    "actionUrl",
                    "imageUrl",
                    "icon",
                    "read",
                    "readAt",
                    "expiresAt",
                    "projectId",
                    "formId",
                    "campaignId",
                    "createdAt",
                    "updatedAt",
                    "deletedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Notification.Fields"
          },
          "include": {
            "title": "Notification.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Notification.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Notification>"
      },
      "NotificationTemplate.Filter": {
        "type": "object",
        "title": "NotificationTemplate.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": "NotificationTemplate.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "subject": {
                    "type": "boolean"
                  },
                  "titleTemplate": {
                    "type": "boolean"
                  },
                  "bodyTemplate": {
                    "type": "boolean"
                  },
                  "channel": {
                    "type": "boolean"
                  },
                  "variablesSchema": {
                    "type": "boolean"
                  },
                  "active": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "deletedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "type",
                    "subject",
                    "titleTemplate",
                    "bodyTemplate",
                    "channel",
                    "variablesSchema",
                    "active",
                    "createdAt",
                    "updatedAt",
                    "deletedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "NotificationTemplate.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<NotificationTemplate>"
      },
      "NotificationCampaign.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": "NotificationCampaign.ScopeFilter"
      },
      "NotificationCampaign.IncludeFilter.Items": {
        "title": "NotificationCampaign.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "creator"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/NotificationCampaign.ScopeFilter"
          }
        }
      },
      "NotificationCampaign.Filter": {
        "type": "object",
        "title": "NotificationCampaign.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": "NotificationCampaign.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "scheduledAt": {
                    "type": "boolean"
                  },
                  "sentAt": {
                    "type": "boolean"
                  },
                  "totalRecipients": {
                    "type": "boolean"
                  },
                  "totalSent": {
                    "type": "boolean"
                  },
                  "totalFailed": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "deletedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "description",
                    "status",
                    "scheduledAt",
                    "sentAt",
                    "totalRecipients",
                    "totalSent",
                    "totalFailed",
                    "createdBy",
                    "createdAt",
                    "updatedAt",
                    "deletedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "NotificationCampaign.Fields"
          },
          "include": {
            "title": "NotificationCampaign.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/NotificationCampaign.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<NotificationCampaign>"
      },
      "loopback.Count": {
        "type": "object",
        "title": "loopback.Count",
        "x-typescript-type": "@loopback/repository#Count",
        "properties": {
          "count": {
            "type": "number"
          }
        }
      },
      "FeatureGroup.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": "FeatureGroup.ScopeFilter"
      },
      "FeatureGroup.IncludeFilter.Items": {
        "title": "FeatureGroup.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "permissions"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/FeatureGroup.ScopeFilter"
          }
        }
      },
      "FeatureGroup.Filter": {
        "type": "object",
        "title": "FeatureGroup.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"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "description",
                    "createdAt",
                    "updatedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "FeatureGroup.Fields"
          },
          "include": {
            "title": "FeatureGroup.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/FeatureGroup.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<FeatureGroup>"
      },
      "FeatureGroup.Filter1": {
        "type": "object",
        "title": "FeatureGroup.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": "FeatureGroup.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "description",
                    "createdAt",
                    "updatedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "FeatureGroup.Fields"
          },
          "include": {
            "title": "FeatureGroup.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/FeatureGroup.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<FeatureGroup>"
      },
      "Features.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": "Features.ScopeFilter"
      },
      "Features.IncludeFilter.Items": {
        "title": "Features.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "groupPermission",
              "profileFeatures"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Features.ScopeFilter"
          }
        }
      },
      "Features.Filter": {
        "type": "object",
        "title": "Features.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"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "groupPermissionId": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "description",
                    "groupPermissionId",
                    "createdAt",
                    "updatedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Features.Fields"
          },
          "include": {
            "title": "Features.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Features.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Features>"
      },
      "Features.Filter1": {
        "type": "object",
        "title": "Features.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": "Features.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "groupPermissionId": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "description",
                    "groupPermissionId",
                    "createdAt",
                    "updatedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Features.Fields"
          },
          "include": {
            "title": "Features.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Features.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Features>"
      },
      "Liability.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": "Liability.ScopeFilter"
      },
      "Liability.IncludeFilter.Items": {
        "title": "Liability.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "project",
              "template",
              "owner",
              "tags",
              "evidences",
              "routeFeature"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Liability.ScopeFilter"
          }
        }
      },
      "Liability.Filter": {
        "type": "object",
        "title": "Liability.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"
                  },
                  "projectId": {
                    "type": "boolean"
                  },
                  "templateId": {
                    "type": "boolean"
                  },
                  "ownerId": {
                    "type": "boolean"
                  },
                  "responsible": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "boolean"
                  },
                  "code": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "riskLevel": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "identifiedAt": {
                    "type": "boolean"
                  },
                  "metadata": {
                    "type": "boolean"
                  },
                  "templateSnapshot": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "deletedAt": {
                    "type": "boolean"
                  },
                  "routeFeatureId": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "submittedToAudit": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "projectId",
                    "templateId",
                    "ownerId",
                    "responsible",
                    "title",
                    "code",
                    "type",
                    "riskLevel",
                    "status",
                    "identifiedAt",
                    "metadata",
                    "templateSnapshot",
                    "createdAt",
                    "updatedAt",
                    "deletedAt",
                    "routeFeatureId",
                    "description",
                    "submittedToAudit"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Liability.Fields"
          },
          "include": {
            "title": "Liability.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Liability.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Liability>"
      },
      "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
          }
        }
      },
      "Profiles.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": "Profiles.ScopeFilter"
      },
      "Profiles.IncludeFilter.Items": {
        "title": "Profiles.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "userProfiles",
              "profilePermissions",
              "projectUsers"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Profiles.ScopeFilter"
          }
        }
      },
      "Profiles.Filter": {
        "type": "object",
        "title": "Profiles.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"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "description",
                    "createdAt",
                    "updatedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Profiles.Fields"
          },
          "include": {
            "title": "Profiles.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Profiles.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Profiles>"
      },
      "Profiles.Filter1": {
        "type": "object",
        "title": "Profiles.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": "Profiles.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "description",
                    "createdAt",
                    "updatedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Profiles.Fields"
          },
          "include": {
            "title": "Profiles.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Profiles.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Profiles>"
      },
      "Liability.Filter1": {
        "type": "object",
        "title": "Liability.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": "Liability.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "projectId": {
                    "type": "boolean"
                  },
                  "templateId": {
                    "type": "boolean"
                  },
                  "ownerId": {
                    "type": "boolean"
                  },
                  "responsible": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "boolean"
                  },
                  "code": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "riskLevel": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "identifiedAt": {
                    "type": "boolean"
                  },
                  "metadata": {
                    "type": "boolean"
                  },
                  "templateSnapshot": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "deletedAt": {
                    "type": "boolean"
                  },
                  "routeFeatureId": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "submittedToAudit": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "projectId",
                    "templateId",
                    "ownerId",
                    "responsible",
                    "title",
                    "code",
                    "type",
                    "riskLevel",
                    "status",
                    "identifiedAt",
                    "metadata",
                    "templateSnapshot",
                    "createdAt",
                    "updatedAt",
                    "deletedAt",
                    "routeFeatureId",
                    "description",
                    "submittedToAudit"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Liability.Fields"
          },
          "include": {
            "title": "Liability.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Liability.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Liability>"
      },
      "RouteFeature.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": "RouteFeature.ScopeFilter"
      },
      "RouteFeature.IncludeFilter.Items": {
        "title": "RouteFeature.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "project"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/RouteFeature.ScopeFilter"
          }
        }
      },
      "RouteFeature.Filter": {
        "type": "object",
        "title": "RouteFeature.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": "RouteFeature.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "projectId": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "geom": {
                    "type": "boolean"
                  },
                  "lat": {
                    "type": "boolean"
                  },
                  "lng": {
                    "type": "boolean"
                  },
                  "polygon": {
                    "type": "boolean"
                  },
                  "geojson": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "projectId",
                    "type",
                    "name",
                    "description",
                    "geom",
                    "lat",
                    "lng",
                    "polygon",
                    "geojson",
                    "createdAt",
                    "updatedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "RouteFeature.Fields"
          },
          "include": {
            "title": "RouteFeature.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/RouteFeature.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<RouteFeature>"
      },
      "Project.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": "Project.ScopeFilter"
      },
      "Project.IncludeFilter.Items": {
        "title": "Project.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "owner",
              "template",
              "forms",
              "members",
              "projectUsers",
              "tags"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Project.ScopeFilter"
          }
        }
      },
      "Project.Filter": {
        "type": "object",
        "title": "Project.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"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "company": {
                    "type": "boolean"
                  },
                  "startDate": {
                    "type": "boolean"
                  },
                  "endDate": {
                    "type": "boolean"
                  },
                  "budget": {
                    "type": "boolean"
                  },
                  "customFields": {
                    "type": "boolean"
                  },
                  "ownerId": {
                    "type": "boolean"
                  },
                  "templateId": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "deletedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "description",
                    "status",
                    "company",
                    "startDate",
                    "endDate",
                    "budget",
                    "customFields",
                    "ownerId",
                    "templateId",
                    "createdAt",
                    "updatedAt",
                    "deletedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Project.Fields"
          },
          "include": {
            "title": "Project.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Project.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Project>"
      },
      "Project.Filter1": {
        "type": "object",
        "title": "Project.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": "Project.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "company": {
                    "type": "boolean"
                  },
                  "startDate": {
                    "type": "boolean"
                  },
                  "endDate": {
                    "type": "boolean"
                  },
                  "budget": {
                    "type": "boolean"
                  },
                  "customFields": {
                    "type": "boolean"
                  },
                  "ownerId": {
                    "type": "boolean"
                  },
                  "templateId": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "deletedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "description",
                    "status",
                    "company",
                    "startDate",
                    "endDate",
                    "budget",
                    "customFields",
                    "ownerId",
                    "templateId",
                    "createdAt",
                    "updatedAt",
                    "deletedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Project.Fields"
          },
          "include": {
            "title": "Project.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Project.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Project>"
      },
      "Question.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": "Question.ScopeFilter"
      },
      "Question.IncludeFilter.Items": {
        "title": "Question.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "options",
              "hints",
              "validations",
              "visibilityLogics"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Question.ScopeFilter"
          }
        }
      },
      "Question.Filter": {
        "type": "object",
        "title": "Question.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"
                  },
                  "question": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "layout": {
                    "type": "boolean"
                  },
                  "descriptionToShow": {
                    "type": "boolean"
                  },
                  "required": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "question",
                    "type",
                    "layout",
                    "descriptionToShow",
                    "required",
                    "createdAt",
                    "updatedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Question.Fields"
          },
          "include": {
            "title": "Question.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Question.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Question>"
      },
      "Question.Filter1": {
        "type": "object",
        "title": "Question.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": "Question.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "question": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "layout": {
                    "type": "boolean"
                  },
                  "descriptionToShow": {
                    "type": "boolean"
                  },
                  "required": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "question",
                    "type",
                    "layout",
                    "descriptionToShow",
                    "required",
                    "createdAt",
                    "updatedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Question.Fields"
          },
          "include": {
            "title": "Question.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Question.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Question>"
      },
      "ResearcherReportFilterPartial": {
        "title": "ResearcherReportFilterPartial",
        "type": "object",
        "description": "(tsType: Partial<ResearcherReportFilter>, schemaOptions: { partial: true })",
        "properties": {
          "projectId": {
            "type": "string",
            "description": "Filtrar por ID do Projeto"
          },
          "formId": {
            "type": "string",
            "description": "Filtrar por ID do Formulário"
          },
          "researcherId": {
            "type": "string",
            "description": "Filtrar por ID do Pesquisador"
          },
          "periodStart": {
            "type": "string",
            "format": "date-time",
            "description": "Data Inicial do Período"
          },
          "periodEnd": {
            "type": "string",
            "format": "date-time",
            "description": "Data Final do Período"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<ResearcherReportFilter>"
      },
      "RouteFeature.Filter1": {
        "type": "object",
        "title": "RouteFeature.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"
                  },
                  "projectId": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "geom": {
                    "type": "boolean"
                  },
                  "lat": {
                    "type": "boolean"
                  },
                  "lng": {
                    "type": "boolean"
                  },
                  "polygon": {
                    "type": "boolean"
                  },
                  "geojson": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "projectId",
                    "type",
                    "name",
                    "description",
                    "geom",
                    "lat",
                    "lng",
                    "polygon",
                    "geojson",
                    "createdAt",
                    "updatedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "RouteFeature.Fields"
          },
          "include": {
            "title": "RouteFeature.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/RouteFeature.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<RouteFeature>"
      },
      "SystemLog.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": "SystemLog.ScopeFilter"
      },
      "SystemLog.IncludeFilter.Items": {
        "title": "SystemLog.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "actor"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/SystemLog.ScopeFilter"
          }
        }
      },
      "SystemLog.Filter": {
        "type": "object",
        "title": "SystemLog.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"
                  },
                  "userId": {
                    "type": "boolean"
                  },
                  "username": {
                    "type": "boolean"
                  },
                  "level": {
                    "type": "boolean"
                  },
                  "action": {
                    "type": "boolean"
                  },
                  "message": {
                    "type": "boolean"
                  },
                  "entityName": {
                    "type": "boolean"
                  },
                  "entityId": {
                    "type": "boolean"
                  },
                  "ipAddress": {
                    "type": "boolean"
                  },
                  "userAgent": {
                    "type": "boolean"
                  },
                  "requestPath": {
                    "type": "boolean"
                  },
                  "statusCode": {
                    "type": "boolean"
                  },
                  "metadata": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "userId",
                    "username",
                    "level",
                    "action",
                    "message",
                    "entityName",
                    "entityId",
                    "ipAddress",
                    "userAgent",
                    "requestPath",
                    "statusCode",
                    "metadata",
                    "createdAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "SystemLog.Fields"
          },
          "include": {
            "title": "SystemLog.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemLog.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<SystemLog>"
      },
      "SystemLog.Filter1": {
        "type": "object",
        "title": "SystemLog.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": "SystemLog.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "userId": {
                    "type": "boolean"
                  },
                  "username": {
                    "type": "boolean"
                  },
                  "level": {
                    "type": "boolean"
                  },
                  "action": {
                    "type": "boolean"
                  },
                  "message": {
                    "type": "boolean"
                  },
                  "entityName": {
                    "type": "boolean"
                  },
                  "entityId": {
                    "type": "boolean"
                  },
                  "ipAddress": {
                    "type": "boolean"
                  },
                  "userAgent": {
                    "type": "boolean"
                  },
                  "requestPath": {
                    "type": "boolean"
                  },
                  "statusCode": {
                    "type": "boolean"
                  },
                  "metadata": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "userId",
                    "username",
                    "level",
                    "action",
                    "message",
                    "entityName",
                    "entityId",
                    "ipAddress",
                    "userAgent",
                    "requestPath",
                    "statusCode",
                    "metadata",
                    "createdAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "SystemLog.Fields"
          },
          "include": {
            "title": "SystemLog.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemLog.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<SystemLog>"
      },
      "Tag.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": "Tag.ScopeFilter"
      },
      "Tag.IncludeFilter.Items": {
        "title": "Tag.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "projects",
              "liabilities"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Tag.ScopeFilter"
          }
        }
      },
      "Tag.Filter": {
        "type": "object",
        "title": "Tag.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"
                  },
                  "color": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "deletedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "color",
                    "createdAt",
                    "updatedAt",
                    "deletedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Tag.Fields"
          },
          "include": {
            "title": "Tag.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Tag.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Tag>"
      },
      "Tag.Filter1": {
        "type": "object",
        "title": "Tag.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": "Tag.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "color": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "deletedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "color",
                    "createdAt",
                    "updatedAt",
                    "deletedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Tag.Fields"
          },
          "include": {
            "title": "Tag.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Tag.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Tag>"
      },
      "Take.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": "Take.ScopeFilter"
      },
      "Take.IncludeFilter.Items": {
        "title": "Take.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "user",
              "form",
              "answers",
              "detail"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Take.ScopeFilter"
          }
        }
      },
      "Take.Filter": {
        "type": "object",
        "title": "Take.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"
                  },
                  "userId": {
                    "type": "boolean"
                  },
                  "formId": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "point": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "userId",
                    "formId",
                    "createdAt",
                    "updatedAt",
                    "point"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Take.Fields"
          },
          "include": {
            "title": "Take.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Take.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Take>"
      },
      "Take.Filter1": {
        "type": "object",
        "title": "Take.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": "Take.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "userId": {
                    "type": "boolean"
                  },
                  "formId": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "point": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "userId",
                    "formId",
                    "createdAt",
                    "updatedAt",
                    "point"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Take.Fields"
          },
          "include": {
            "title": "Take.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Take.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Take>"
      },
      "Template.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": "Template.ScopeFilter"
      },
      "Template.IncludeFilter.Items": {
        "title": "Template.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "sections"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Template.ScopeFilter"
          }
        }
      },
      "Template.Filter": {
        "type": "object",
        "title": "Template.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": "Template.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "version": {
                    "type": "boolean"
                  },
                  "active": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "deletedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "version",
                    "active",
                    "createdAt",
                    "updatedAt",
                    "deletedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Template.Fields"
          },
          "include": {
            "title": "Template.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Template.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Template>"
      },
      "User.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": "User.ScopeFilter"
      },
      "User.IncludeFilter.Items": {
        "title": "User.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "userProfiles",
              "userVerificationToken",
              "profiles",
              "oauthAccounts"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/User.ScopeFilter"
          }
        }
      },
      "User.Filter": {
        "type": "object",
        "title": "User.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"
                  },
                  "username": {
                    "type": "boolean"
                  },
                  "password": {
                    "type": "boolean"
                  },
                  "cpf": {
                    "type": "boolean"
                  },
                  "email": {
                    "type": "boolean"
                  },
                  "phoneNumber": {
                    "type": "boolean"
                  },
                  "educationLevel": {
                    "type": "boolean"
                  },
                  "course": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "emailVerified": {
                    "type": "boolean"
                  },
                  "registrationCompleted": {
                    "type": "boolean"
                  },
                  "active": {
                    "type": "boolean"
                  },
                  "isTwoFactorEnabled": {
                    "type": "boolean"
                  },
                  "failedLoginAttempts": {
                    "type": "boolean"
                  },
                  "lockedUntil": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "avatar": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "username",
                    "password",
                    "cpf",
                    "email",
                    "phoneNumber",
                    "educationLevel",
                    "course",
                    "status",
                    "emailVerified",
                    "registrationCompleted",
                    "active",
                    "isTwoFactorEnabled",
                    "failedLoginAttempts",
                    "lockedUntil",
                    "createdAt",
                    "avatar",
                    "updatedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "User.Fields"
          },
          "include": {
            "title": "User.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/User.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<User>"
      },
      "User.Filter1": {
        "type": "object",
        "title": "User.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": "User.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "username": {
                    "type": "boolean"
                  },
                  "password": {
                    "type": "boolean"
                  },
                  "cpf": {
                    "type": "boolean"
                  },
                  "email": {
                    "type": "boolean"
                  },
                  "phoneNumber": {
                    "type": "boolean"
                  },
                  "educationLevel": {
                    "type": "boolean"
                  },
                  "course": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "emailVerified": {
                    "type": "boolean"
                  },
                  "registrationCompleted": {
                    "type": "boolean"
                  },
                  "active": {
                    "type": "boolean"
                  },
                  "isTwoFactorEnabled": {
                    "type": "boolean"
                  },
                  "failedLoginAttempts": {
                    "type": "boolean"
                  },
                  "lockedUntil": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "avatar": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "name",
                    "username",
                    "password",
                    "cpf",
                    "email",
                    "phoneNumber",
                    "educationLevel",
                    "course",
                    "status",
                    "emailVerified",
                    "registrationCompleted",
                    "active",
                    "isTwoFactorEnabled",
                    "failedLoginAttempts",
                    "lockedUntil",
                    "createdAt",
                    "avatar",
                    "updatedAt"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "User.Fields"
          },
          "include": {
            "title": "User.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/User.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<User>"
      }
    }
  }
}