{
  "swagger": "2.0",
  "info": {
    "version": "v1",
    "title": "ViviScape.API.Open"
  },
  "host": "api.viviscape.io",
  "schemes": [
    "https"
  ],
  "paths": {
    "/api/v1/account/services/list": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Retrieve all services for the specified platform account.",
        "operationId": "Account_GetServices",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SRV_Service"
              }
            }
          }
        }
      }
    },
    "/api/v1/account/services/active": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Retrieve active services for the specified platform account.",
        "operationId": "Account_GetActiveServices",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SRV_Service"
              }
            }
          }
        }
      }
    },
    "/api/v1/account/info": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Get platform account detail information.",
        "operationId": "Account_GetAccountInfo",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/PlatformAccount"
            }
          }
        }
      }
    },
    "/api/v1/account/users": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Get users associated with the specified platform account.",
        "operationId": "Account_GetAccountUsers",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/PlatformAccountUser"
              }
            }
          }
        }
      }
    },
    "/api/v1/account/user/id": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Get user associated by ID with the specified platform account.",
        "operationId": "Account_GetUserByID",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "userid",
            "in": "query",
            "description": "User ID",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/account/user/discord/{discord_id}": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Look up a user by their Discord ID.",
        "operationId": "Account_GetUserByDiscordID",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "discord_id",
            "in": "path",
            "description": "Discord user ID.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/LoginToken"
            }
          }
        }
      }
    },
    "/api/v1/companies/list": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Retrieves a list of companies associated with the current user",
        "operationId": "Companies_GetAccounts2",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "Returns the list of companies",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/GEN_Company"
              }
            }
          },
          "400": {
            "description": "If the server request fails"
          }
        }
      }
    },
    "/api/v1/companies/add": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Adds a new company to the system",
        "operationId": "Companies_AddNewCompany",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "co",
            "in": "body",
            "description": "The company details to add",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GEN_Company"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the new company ID",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          "400": {
            "description": "If the server request fails or validation fails"
          }
        }
      }
    },
    "/api/v1/companies/update": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Updates an existing company's information",
        "operationId": "Companies_UpdateCompany",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "co",
            "in": "body",
            "description": "The company details to update",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GEN_Company"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns true if update succeeded",
            "schema": {
              "type": "boolean"
            }
          },
          "400": {
            "description": "If the server request fails or validation fails"
          }
        }
      }
    },
    "/api/v1/companies/company/id/{company_id}": {
      "get": {
        "tags": [
          "Companies"
        ],
        "operationId": "Companies_GetCompanyByIDDetail",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "company_id",
            "in": "path",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GEN_Company"
            }
          }
        }
      }
    },
    "/api/v1/companies/company/email/domain": {
      "post": {
        "tags": [
          "Companies"
        ],
        "operationId": "Companies_GetCompanyByEmailDomain",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "creq",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CompanyEmailDomainRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GEN_Company"
            }
          }
        }
      }
    },
    "/api/v1/companies/clients/company/{companyid}": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Retrieves all clients associated with a specific company",
        "operationId": "Companies_GetClientsByCompanyID",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "companyid",
            "in": "path",
            "description": "The ID of the company",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of clients",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VIEW_ClientsHome"
              }
            }
          },
          "400": {
            "description": "If the request fails"
          }
        }
      }
    },
    "/api/v1/companies/client/add": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Adds a new client and sends an invitation",
        "operationId": "Companies_GetClientsByCompanyID",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "newclient",
            "in": "body",
            "description": "The new client details",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GEN_Client"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the new client ID",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          "400": {
            "description": "If the request fails or validation fails"
          }
        }
      }
    },
    "/api/v1/companies/client/id/{clientid}": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Retrieves a specific client by their ID",
        "operationId": "Companies_getClientByID",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "clientid",
            "in": "path",
            "description": "The ID of the client",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the client information",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/GEN_Client"
              }
            }
          },
          "400": {
            "description": "If the client is not found or request fails"
          }
        }
      }
    },
    "/api/v1/companies/client/email": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Retrieves a client by their email address",
        "operationId": "Companies_GetClientByEmail",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "creq",
            "in": "body",
            "description": "Request containing the client email",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ClientLookupRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the client information",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/GEN_Client"
              }
            }
          },
          "400": {
            "description": "If the client is not found or request fails"
          }
        }
      }
    },
    "/api/v1/crm/prospect/add": {
      "post": {
        "tags": [
          "CRM"
        ],
        "summary": "Add a new prospect.",
        "operationId": "CRM_AddProspect",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "p",
            "in": "body",
            "description": "Prospect payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Prospect"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/update": {
      "post": {
        "tags": [
          "CRM"
        ],
        "summary": "Update an existing prospect.",
        "operationId": "CRM_UpdateProspect",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "p",
            "in": "body",
            "description": "Updated prospect payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Prospect"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/id/{prospect_id}": {
      "get": {
        "tags": [
          "CRM"
        ],
        "summary": "Retrieve a prospect by id.",
        "operationId": "CRM_GetProspect",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "prospect_id",
            "in": "path",
            "description": "Prospect identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospects/rep/{rep_id}": {
      "get": {
        "tags": [
          "CRM"
        ],
        "summary": "Get prospects for a sales rep.",
        "operationId": "CRM_GetProspectsByRep",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "rep_id",
            "in": "path",
            "description": "Sales rep identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Prospect"
              }
            }
          }
        }
      }
    },
    "/api/v1/crm/prospects/account": {
      "get": {
        "tags": [
          "CRM"
        ],
        "summary": "Lookup prospects for the current account and an optional rep.",
        "operationId": "CRM_GetPlatformProspectsByRep",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "rep_id",
            "in": "query",
            "description": "Rep identifier (ignored if using account-level lookup).",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Prospect"
              }
            }
          }
        }
      }
    },
    "/api/v1/crm/prospects/query": {
      "post": {
        "tags": [
          "CRM"
        ],
        "summary": "Query prospects by account with a POST body filter.",
        "operationId": "CRM_GetProspectsByAccount2",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "queryreq",
            "in": "body",
            "description": "Lookup request containing query, account_id, user_id and optional stages. (new, firstcontact, negotiation, pending, won, lost, spam)",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AccountRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Prospect"
              }
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/remove/{prospect_id}": {
      "get": {
        "tags": [
          "CRM"
        ],
        "summary": "Remove a prospect.",
        "operationId": "CRM_RemoveProspect",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "prospect_id",
            "in": "path",
            "description": "Prospect identifier to remove.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/note/add": {
      "post": {
        "tags": [
          "CRM"
        ],
        "summary": "Add a note to a prospect.",
        "operationId": "CRM_AddProspectNote",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "body",
            "description": "Prospect note payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Prospect_Note"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect_Note"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/note/update": {
      "post": {
        "tags": [
          "CRM"
        ],
        "summary": "Update a prospect note.",
        "operationId": "CRM_UpdateProspectNote",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "body",
            "description": "Updated prospect note payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Prospect_Note"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect_Note"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/notes/{prospect_id}": {
      "get": {
        "tags": [
          "CRM"
        ],
        "summary": "Get notes for a prospect.",
        "operationId": "CRM_GetProspectNotes",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "prospect_id",
            "in": "path",
            "description": "Prospect identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Prospect_Note"
              }
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/note/remove/{note_id}": {
      "get": {
        "tags": [
          "CRM"
        ],
        "summary": "Remove a prospect note.",
        "operationId": "CRM_RemoveProspectNote",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "note_id",
            "in": "path",
            "description": "Note identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/followup/add": {
      "post": {
        "tags": [
          "CRM"
        ],
        "summary": "Add a followup for a prospect.",
        "operationId": "CRM_AddProspectFollowup",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "f",
            "in": "body",
            "description": "Followup payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Prospect_Followup"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect_Followup"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/followup/update": {
      "post": {
        "tags": [
          "CRM"
        ],
        "summary": "Update a prospect followup.",
        "operationId": "CRM_UpdateProspectFollowup",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "f",
            "in": "body",
            "description": "Updated followup payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Prospect_Followup"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect_Followup"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/followups/list/{prospect_id}": {
      "get": {
        "tags": [
          "CRM"
        ],
        "summary": "Get followups for a prospect.",
        "operationId": "CRM_GetProspectFollowups",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "prospect_id",
            "in": "path",
            "description": "Prospect identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Prospect_Followup"
              }
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/setup/account": {
      "get": {
        "tags": [
          "CRM"
        ],
        "summary": "Get prospect notification setup for an account.",
        "operationId": "CRM_GetPlatformProspectSetup",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Prospect_Notification_User"
              }
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/setup/id/{setup_id}": {
      "get": {
        "tags": [
          "CRM"
        ],
        "summary": "Get a prospect setup record by id.",
        "operationId": "CRM_GetProspectSetupByID",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "setup_id",
            "in": "path",
            "description": "Setup identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect_Notification_User"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/setup/remove/{setup_id}": {
      "get": {
        "tags": [
          "CRM"
        ],
        "summary": "Remove a prospect notification user by setup id.",
        "operationId": "CRM_RemoveProspectUser",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "setup_id",
            "in": "path",
            "description": "Setup identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect_Notification_User"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/setup/add": {
      "post": {
        "tags": [
          "CRM"
        ],
        "summary": "Add prospect notification user configuration.",
        "operationId": "CRM_AddProspectUserConfig",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "a",
            "in": "body",
            "description": "Notification user configuration payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Prospect_Notification_User"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect_Followup"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/setup/update": {
      "post": {
        "tags": [
          "CRM"
        ],
        "summary": "Update prospect notification user configuration.",
        "operationId": "CRM_UpdateProspectUserConfig",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "a",
            "in": "body",
            "description": "Notification user configuration payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Prospect_Notification_User"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect_Followup"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/doc/upload/{prospect_id}/{user_id}": {
      "post": {
        "tags": [
          "CRM"
        ],
        "summary": "Upload a prospect document and save metadata.",
        "operationId": "CRM_UploadPropectDoc",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "prospect_id",
            "in": "path",
            "description": "Prospect identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "user_id",
            "in": "path",
            "description": "Uploader user id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect_Doc"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/doc/meta": {
      "post": {
        "tags": [
          "CRM"
        ],
        "summary": "Upload prospect document metadata.",
        "operationId": "CRM_UploadPropectDocMeta",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "pd",
            "in": "body",
            "description": "Prospect document metadata.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Prospect_Doc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect_Doc"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/docs/{prospect_id}": {
      "get": {
        "tags": [
          "CRM"
        ],
        "summary": "Get documents attached to a prospect.",
        "operationId": "CRM_GetProspectDocs",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "prospect_id",
            "in": "path",
            "description": "Prospect identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Prospect_Doc"
              }
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/doc/remove/{doc_id}": {
      "get": {
        "tags": [
          "CRM"
        ],
        "summary": "Remove a prospect document by id.",
        "operationId": "CRM_RemoveProspectDoc",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "doc_id",
            "in": "path",
            "description": "Document identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "/api/v1/crm/prospect/doc/update": {
      "post": {
        "tags": [
          "CRM"
        ],
        "summary": "Update prospect document metadata.",
        "operationId": "CRM_UpdateProspectDoc",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "d",
            "in": "body",
            "description": "Document metadata payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Prospect_Doc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Prospect_Doc"
            }
          }
        }
      }
    },
    "/api/v1/insights/logs/hours/person": {
      "post": {
        "tags": [
          "Insights"
        ],
        "summary": "Get aggregated hours for a person between a start and end date.",
        "operationId": "Insights_GetHoursByPerson",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "ireq",
            "in": "body",
            "description": "Request containing user_id, start and end dates.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InsightsRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/insights/logs/account/daterange": {
      "post": {
        "tags": [
          "Insights"
        ],
        "summary": "Retrieves time logs for an account within a specified date range",
        "operationId": "Insights_GetTimeLogByCompany",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "ireq",
            "in": "body",
            "description": "Request parameters containing start and end dates",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InsightsRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of time logs",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LOG_Time"
              }
            }
          },
          "400": {
            "description": "Invalid request parameters or server error"
          }
        }
      }
    },
    "/api/v1/insights/logs/hours/person/service": {
      "post": {
        "tags": [
          "Insights"
        ],
        "summary": "Get aggregated hours for a person and services performed.",
        "operationId": "Insights_GetHoursHOSByPerson",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "ireq",
            "in": "body",
            "description": "Request containing user_id, start and end dates.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InsightsRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/insights/logs/hours/alltime/person/service": {
      "post": {
        "tags": [
          "Insights"
        ],
        "summary": "Get all-time aggregated hours per service for a person.",
        "operationId": "Insights_GetAllTimeHoursHOSByPerson",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "ireq",
            "in": "body",
            "description": "Request containing user_id and account context.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InsightsRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/insights/person/stats": {
      "post": {
        "tags": [
          "Insights"
        ],
        "summary": "Get aggregated statistics for a person.",
        "operationId": "Insights_GetPersonStats",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "ireq",
            "in": "body",
            "description": "Request containing user_id.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InsightsRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/insights/logs/project/hours/service": {
      "post": {
        "tags": [
          "Insights"
        ],
        "summary": "Get aggregated hours per service for a project between a start and end date.",
        "operationId": "Insights_GetHoursHOSByProject",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "ireq",
            "in": "body",
            "description": "Request containing project (user_id used as group id), start and end dates.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InsightsRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/insights/logs/account/hours/service": {
      "post": {
        "tags": [
          "Insights"
        ],
        "summary": "Get aggregated hours per service for an account between a start and end date.",
        "operationId": "Insights_GetHoursHOSByAccount",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "ireq",
            "in": "body",
            "description": "Request containing user_id (context), start and end dates.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InsightsRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/insights/export/insights/logs/account/hours/services": {
      "post": {
        "tags": [
          "Insights"
        ],
        "operationId": "Insights_GetExportHoursHOSByAccount",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "ereq",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ExportRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/insights/ai/log/summary": {
      "post": {
        "tags": [
          "Insights"
        ],
        "operationId": "Insights_GetAIHoursHOSByAccount",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "ereq",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ExportRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/insights/insights/eval/person/week/{userid}": {
      "get": {
        "tags": [
          "Insights"
        ],
        "operationId": "Insights_GetTimeByPersonByWeek",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "userid",
            "in": "path",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/insights/eval/person/month/{userid}": {
      "get": {
        "tags": [
          "Insights"
        ],
        "operationId": "Insights_GetTimeByPersonByMonth",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "userid",
            "in": "path",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/insights/eval/person/lastmonth/{userid}": {
      "get": {
        "tags": [
          "Insights"
        ],
        "operationId": "Insights_GetTimeByPersonByLastMonth",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "userid",
            "in": "path",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/insights/eval/project/all/{project_id}": {
      "get": {
        "tags": [
          "Insights"
        ],
        "operationId": "Insights_GetTimeByProjectByLastMonth",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/insights/eval/users/all": {
      "get": {
        "tags": [
          "Insights"
        ],
        "operationId": "Insights_GetTimeByUsers",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/me": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Get notes for the current user.",
        "operationId": "Notes_GetNotes",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/account": {
      "post": {
        "tags": [
          "Notes"
        ],
        "summary": "Get notes for the specified account.",
        "operationId": "Notes_GetNotesByAccount",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "nr",
            "in": "body",
            "description": "NotesRequest where `company_id` is optional (defaults to 0). The `account_id` and `user_id` will be populated from request headers.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NotesRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Note"
              }
            }
          }
        }
      }
    },
    "/api/v1/notes/query": {
      "post": {
        "tags": [
          "Notes"
        ],
        "operationId": "Notes_GetNoteSearch",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "vr",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/MediaVectorRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/add": {
      "post": {
        "tags": [
          "Notes"
        ],
        "summary": "Add a new note.",
        "operationId": "Notes_AddNote",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "body",
            "description": "Note object to create.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Note"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/update": {
      "post": {
        "tags": [
          "Notes"
        ],
        "summary": "Update an existing note.",
        "operationId": "Notes_UpdateNote",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "body",
            "description": "Note object with updates.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Note"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/featured/upload/{note_id}": {
      "post": {
        "tags": [
          "Notes"
        ],
        "summary": "Upload a featured photo for a note.",
        "operationId": "Notes_UpdateFeaturePhoto",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "note_id",
            "in": "path",
            "description": "Note identifier.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/remove/{note_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Remove a note.",
        "operationId": "Notes_RemoveNote",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "note_id",
            "in": "path",
            "description": "Note identifier.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/id/{note_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Get a note by id.",
        "operationId": "Notes_GetNote",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "note_id",
            "in": "path",
            "description": "Note identifier.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/company/add": {
      "post": {
        "tags": [
          "Notes"
        ],
        "summary": "Add a company assignment to a note.",
        "operationId": "Notes_AddNoteCompany",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "body",
            "description": "The {ClockWyzWeb.Models.NoteCompany} object representing the company assignment to add.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NoteCompany"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/NoteUser"
            }
          }
        }
      }
    },
    "/api/v1/notes/company/remove/{assignment_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Remove a company assignment from a note.",
        "operationId": "Notes_RemoveNoteCompany",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "assignment_id",
            "in": "path",
            "description": "The assignment identifier to remove.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "boolean"
            }
          }
        }
      }
    },
    "/api/v1/notes/companies/{note_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Get companies assigned to a specific note.",
        "operationId": "Notes_GetNoteCompanies",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "note_id",
            "in": "path",
            "description": "The note identifier for which to retrieve assigned companies.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NoteCompany"
              }
            }
          }
        }
      }
    },
    "/api/v1/notes/users/{note_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Get users assigned to a note.",
        "operationId": "Notes_GetNoteUsers",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "note_id",
            "in": "path",
            "description": "Note identifier.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/user/add": {
      "post": {
        "tags": [
          "Notes"
        ],
        "summary": "Add a user to a note.",
        "operationId": "Notes_AddNoteUser",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "body",
            "description": "NoteUser assignment to add.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NoteUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/user/update": {
      "post": {
        "tags": [
          "Notes"
        ],
        "summary": "Update a note user assignment.",
        "operationId": "Notes_UpdateNoteUser",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "body",
            "description": "NoteUser object with updates.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NoteUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/user/remove/{assignment_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Remove a user assignment from a note.",
        "operationId": "Notes_RemoveNoteUsers",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "assignment_id",
            "in": "path",
            "description": "Assignment identifier.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/tags/add": {
      "post": {
        "tags": [
          "Notes"
        ],
        "summary": "Add a tag to a note.",
        "operationId": "Notes_AddNoteTag",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "body",
            "description": "Tag to add.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NoteTag"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/tag/remove/{tag_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Remove a tag from a note.",
        "operationId": "Notes_UpdateNoteTag",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "tag_id",
            "in": "path",
            "description": "Tag identifier.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/tags/{note_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Get tags for a note.",
        "operationId": "Notes_GetNoteTags",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "note_id",
            "in": "path",
            "description": "Note identifier.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/book/add": {
      "post": {
        "tags": [
          "Notes"
        ],
        "summary": "Add a notebook.",
        "operationId": "Notes_AddNoteBook",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "b",
            "in": "body",
            "description": "Notebook to add.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NoteBook"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/book/update": {
      "post": {
        "tags": [
          "Notes"
        ],
        "summary": "Update a notebook.",
        "operationId": "Notes_UpdateNoteBook",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "b",
            "in": "body",
            "description": "Notebook with updates.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NoteBook"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/books/user/{user_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Get notebooks for a user.",
        "operationId": "Notes_GetNotebooksByUser",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "description": "User identifier for which to list notebooks.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/book/remove/{book_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Remove a notebook.",
        "operationId": "Notes_RemoveNoteBook",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "book_id",
            "in": "path",
            "description": "Notebook identifier.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/book/user/add": {
      "post": {
        "tags": [
          "Notes"
        ],
        "summary": "Add a user to a notebook.",
        "operationId": "Notes_AddNoteBookUser",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "b",
            "in": "body",
            "description": "Notebook user assignment.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NoteBookUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/book/user/update": {
      "post": {
        "tags": [
          "Notes"
        ],
        "summary": "Update a notebook user assignment.",
        "operationId": "Notes_UpdateNoteBookUser",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "b",
            "in": "body",
            "description": "Notebook user with updates.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NoteBookUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/book/users/{book_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Get users assigned to a notebook.",
        "operationId": "Notes_GetNoteBookUsers",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "book_id",
            "in": "path",
            "description": "Notebook identifier.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/book/user/remove/{assign_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Remove a user assignment from a notebook.",
        "operationId": "Notes_RemoveNoteBookUser",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "assign_id",
            "in": "path",
            "description": "Assignment identifier.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/notes/book/notes/{book_id}": {
      "get": {
        "tags": [
          "Notes"
        ],
        "summary": "Get notes inside a notebook.",
        "operationId": "Notes_GetNotebookNotes",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "book_id",
            "in": "path",
            "description": "Notebook identifier.",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/projects/account/tasks/open": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Retrieves open tasks for an account with optional filtering",
        "operationId": "Projects_GetAccountOpenTasks",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "creq",
            "in": "body",
            "description": "Task request parameters including account ID and filter options",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CompleteTasksRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of open tasks",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Group_Task"
              }
            }
          },
          "400": {
            "description": "Invalid request parameters"
          }
        }
      }
    },
    "/api/v1/projects/company/tasks": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Retrieves all tasks associated with a specific company",
        "operationId": "Projects_GetTaskByAccount",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "company_id",
            "in": "query",
            "description": "The unique identifier of the company",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of company tasks",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Group_Task"
              }
            }
          },
          "400": {
            "description": "Invalid company ID"
          }
        }
      }
    },
    "/api/v1/projects/user/projects": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get all projects for a user and account.",
        "operationId": "Projects_GetGroups",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/GEN_Group"
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/user/projects/company": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get all projects for a user and account, optionally filtered by company.",
        "operationId": "Projects_GetGroups",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "query",
            "description": "User identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "companyid",
            "in": "query",
            "description": "Company id to filter projects (optional).",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/GEN_Group"
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/user/projects/active": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get active projects for a user/account.",
        "operationId": "Projects_GetActiveGroups",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "query",
            "description": "User identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/GEN_Group"
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/id": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get project by id.",
        "operationId": "Projects_GetGroupByID",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "query",
            "description": "project / Project id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GEN_Group"
            }
          }
        }
      }
    },
    "/api/v1/projects/project/staff": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get staff members assigned to a project/group.",
        "operationId": "Projects_getGroupStaff",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "query",
            "description": "project / Project id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/GroupStaff"
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/task/add": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Create a new project task.",
        "operationId": "Projects_AddTask",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "t",
            "in": "body",
            "description": "Task payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Group_Task"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Group_Task"
            }
          }
        }
      }
    },
    "/api/v1/projects/task/update": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Update an existing project task.",
        "operationId": "Projects_UpdateTask",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "t",
            "in": "body",
            "description": "Task payload with updates.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Group_Task"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Group_Task"
            }
          }
        }
      }
    },
    "/api/v1/projects/tasks/project": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get tasks for a given project/group.",
        "operationId": "Projects_GetTasksByGroup",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "query",
            "description": "Project / project id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Group_Task"
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/tasks/milestones": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get tasks for a milestone.",
        "operationId": "Projects_GetTasksByMilestone",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "milestone_id",
            "in": "query",
            "description": "Milestone id.",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Group_Task"
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/tasks/group/user": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get tasks for a project assigned to a specific user.",
        "operationId": "Projects_GetTasksByGroupByUser",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "group_id",
            "in": "query",
            "description": "project id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "user_id",
            "in": "query",
            "description": "User id.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Group_Task"
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/user/tasks/pending": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get pending tasks for a user/account.",
        "operationId": "Projects_GetPendingTasks",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "query",
            "description": "User identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Group_Task"
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/task/get": {
      "get": {
        "tags": [
          "Projects"
        ],
        "operationId": "Projects_GetTask",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "task_id",
            "in": "query",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/projects/task/logs/add": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Add a time log to a task.",
        "operationId": "Projects_AddTaskLog",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "log",
            "in": "body",
            "description": "Time log payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LOG_Time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/LOG_Time"
            }
          }
        }
      }
    },
    "/api/v1/projects/task/logs/update": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Update an existing time log.",
        "operationId": "Projects_UpdateTaskLog",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "log",
            "in": "body",
            "description": "Time log payload with updates.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LOG_Time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/LOG_Time"
            }
          }
        }
      }
    },
    "/api/v1/projects/task/complete": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Complete a task by marking its status as completed.",
        "operationId": "Projects_CompleteTask",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "task_id",
            "in": "query",
            "description": "Task identifier.",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "user_id",
            "in": "query",
            "description": "User completing the task.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Group_Task"
            }
          }
        }
      }
    },
    "/api/v1/projects/task/pin/add": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Pin a task for a user.",
        "operationId": "Projects_AddTaskPin",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "pin",
            "in": "body",
            "description": "Pin payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GroupTaskPin"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/GroupTaskPin"
            }
          }
        }
      }
    },
    "/api/v1/projects/task/pin/remove/{task_id}/{user_id}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Remove a pinned task for a user.",
        "operationId": "Projects_RemoveTaskPin",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "description": "Task identifier.",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "user_id",
            "in": "path",
            "description": "User identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/projects/user/tasks/pinned": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get pinned tasks for a user.",
        "operationId": "Projects_GetPinnedTasks",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "query",
            "description": "User identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Group_Task"
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/log/progress/start": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Start work-in-progress tracking for a task.",
        "operationId": "Projects_StartProgress",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "wip",
            "in": "body",
            "description": "Work in progress payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LOGWorkInProgress"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/LOGWorkInProgress"
            }
          }
        }
      }
    },
    "/api/v1/projects/log/progress/complete": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Complete an active work-in-progress log.",
        "operationId": "Projects_CompleteProgress",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "wip",
            "in": "body",
            "description": "Work in progress payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LOGWorkInProgress"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/LOGWorkInProgress"
            }
          }
        }
      }
    },
    "/api/v1/projects/personal/logs/user/{user_id}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get personal time logs for a user.",
        "operationId": "Projects_GetPersonalLogs",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "description": "User identifier.",
            "required": true,
            "type": "integer",
            "format": "int32"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LOG_PersonalTime"
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/personal/log/remove/{log_id}": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Remove a personal time log entry.",
        "operationId": "Projects_RemovePersonalLog",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "log_id",
            "in": "path",
            "description": "Log identifier.",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/projects/personal/log/quick/add": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Add a quick personal time log.",
        "operationId": "Projects_AddQuickLog",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "log",
            "in": "body",
            "description": "Personal time log payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LOG_PersonalTime"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/LOG_PersonalTime"
            }
          }
        }
      }
    },
    "/api/v1/projects/personal/log/ai/add": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Add a personal time log with AI-generated note.",
        "operationId": "Projects_AddPersonalLogAI",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "log",
            "in": "body",
            "description": "Personal time log payload.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LOG_PersonalTime"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/LOG_PersonalTime"
            }
          }
        }
      }
    },
    "/api/v1/projects/discord/ai/request": {
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Send an AI request from Discord.",
        "operationId": "Projects_DiscordAIRequest",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "payload",
            "in": "body",
            "description": "AI request with discord_id and input.",
            "required": true,
            "schema": {
              "type": "object"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object"
            }
          }
        }
      }
    },
    "/api/v1/support/tickets/get": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Retrieves open/active tickets for the current account.",
        "operationId": "Support_GetTicket",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "task_id",
            "in": "query",
            "description": "The ticket/task ID",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the ticket",
            "schema": {
              "$ref": "#/definitions/Group_Task"
            }
          },
          "400": {
            "description": "If the server request fails"
          }
        }
      }
    },
    "/api/v1/support/tickets/lookup": {
      "post": {
        "tags": [
          "Support"
        ],
        "operationId": "Support_GetTickets",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "tq",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TicketRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Group_Task"
              }
            }
          }
        }
      }
    },
    "/api/v1/support/tickets/completed/lookup": {
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Retrieves completed tickets for the current account within a date range.",
        "operationId": "Support_GetCompletedTickets",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "tq",
            "in": "body",
            "description": "Ticket query parameters including start/end dates",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TicketRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of completed tickets",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Group_Task"
              }
            }
          },
          "400": {
            "description": "If the server request fails"
          }
        }
      }
    },
    "/api/v1/support/tickets/add": {
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Creates a new support ticket.",
        "operationId": "Support_AddTicket",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "t",
            "in": "body",
            "description": "The ticket details",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Group_Task"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the created ticket",
            "schema": {
              "$ref": "#/definitions/Group_Task"
            }
          },
          "400": {
            "description": "If the server request fails"
          }
        }
      }
    },
    "/api/v1/support/tickets/update": {
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Updates an existing support ticket.",
        "operationId": "Support_UpdateTicket",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "t",
            "in": "body",
            "description": "The ticket details to update",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Group_Task"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the updated ticket",
            "schema": {
              "$ref": "#/definitions/Group_Task"
            }
          },
          "400": {
            "description": "If the server request fails"
          }
        }
      }
    },
    "/api/v1/support/tickets/comment/add": {
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Adds a comment to a support ticket.",
        "operationId": "Support_AddTicketComment",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml"
        ],
        "parameters": [
          {
            "name": "comment",
            "in": "body",
            "description": "The comment details",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GroupTaskComment"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the created comment",
            "schema": {
              "$ref": "#/definitions/GroupTaskComment"
            }
          },
          "400": {
            "description": "If the server request fails"
          }
        }
      }
    }
  },
  "definitions": {
    "SRV_Service": {
      "type": "object",
      "properties": {
        "intServiceID": {
          "format": "int32",
          "type": "integer"
        },
        "strService": {
          "type": "string"
        },
        "intPayoutAccount": {
          "format": "int32",
          "type": "integer"
        },
        "strAccountName": {
          "type": "string"
        },
        "decFundGoal": {
          "format": "double",
          "type": "number"
        },
        "dtmStart": {
          "format": "date-time",
          "type": "string"
        },
        "dtmEnd": {
          "format": "date-time",
          "type": "string"
        },
        "bitActive": {
          "type": "boolean"
        },
        "bitPublic": {
          "type": "boolean"
        },
        "decTotalFunded": {
          "format": "double",
          "type": "number"
        },
        "decAvailablePayout": {
          "format": "double",
          "type": "number"
        },
        "strImage": {
          "type": "string"
        },
        "strThumb": {
          "type": "string"
        },
        "strDesc": {
          "type": "string"
        },
        "intSort": {
          "format": "int32",
          "type": "integer"
        },
        "strMeta": {
          "type": "string"
        },
        "decCost": {
          "format": "double",
          "type": "number"
        },
        "decListPrice": {
          "format": "double",
          "type": "number"
        },
        "bitSubscription": {
          "type": "boolean"
        },
        "intInterval": {
          "format": "int32",
          "type": "integer"
        },
        "strMobileDesc": {
          "type": "string"
        },
        "intType": {
          "format": "int32",
          "type": "integer"
        },
        "intAppointments": {
          "format": "int32",
          "type": "integer"
        },
        "bitRenewAppointments": {
          "type": "boolean"
        },
        "intAccountID": {
          "format": "int32",
          "type": "integer"
        },
        "intSECAccountID": {
          "format": "int64",
          "type": "integer"
        },
        "service_type": {
          "type": "string"
        },
        "loggable": {
          "type": "boolean"
        },
        "event_available": {
          "type": "boolean"
        },
        "customer": {
          "type": "boolean"
        }
      }
    },
    "PlatformAccount": {
      "type": "object",
      "properties": {
        "account_id": {
          "format": "int64",
          "type": "integer"
        },
        "creator_id": {
          "format": "int32",
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "address1": {
          "type": "string"
        },
        "address2": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "zip": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "primary_contact": {
          "type": "string"
        },
        "st_connect_id": {
          "type": "string"
        },
        "industry": {
          "type": "string"
        },
        "product": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "st_customer_id": {
          "type": "string"
        },
        "st_subscription_id": {
          "type": "string"
        },
        "st_plan_id": {
          "type": "string"
        },
        "owner_id": {
          "format": "int32",
          "type": "integer"
        },
        "plan_type": {
          "type": "string"
        },
        "seats": {
          "format": "int32",
          "type": "integer"
        },
        "is_default": {
          "type": "boolean"
        },
        "role": {
          "type": "string"
        },
        "create_date": {
          "format": "date-time",
          "type": "string"
        },
        "invoice_terms": {
          "type": "string"
        },
        "invoice_terms_days": {
          "format": "int32",
          "type": "integer"
        },
        "ai_token_usage": {
          "format": "int32",
          "type": "integer"
        },
        "ai_token_allownance": {
          "format": "int32",
          "type": "integer"
        },
        "additional_seats": {
          "format": "int32",
          "type": "integer"
        },
        "billing_mode": {
          "type": "string"
        },
        "logo_file": {
          "type": "string"
        },
        "logo_url": {
          "type": "string"
        },
        "qbo_id": {
          "type": "string"
        },
        "qbo_access_token": {
          "type": "string"
        },
        "qbo_refresh_token": {
          "type": "string"
        }
      }
    },
    "PlatformAccountUser": {
      "type": "object",
      "properties": {
        "account_user_id": {
          "format": "int64",
          "type": "integer"
        },
        "account_id": {
          "format": "int64",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "role": {
          "type": "string"
        },
        "first_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "mobile_phone": {
          "type": "string"
        },
        "callback": {
          "type": "string"
        },
        "product": {
          "type": "string"
        },
        "pay_rate": {
          "format": "double",
          "type": "number"
        },
        "available_weekly_hours": {
          "format": "double",
          "type": "number"
        },
        "reseturltemplate": {
          "type": "string"
        },
        "is_default": {
          "type": "boolean"
        },
        "assign_date": {
          "format": "date-time",
          "type": "string"
        },
        "agent_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "support": {
          "type": "boolean"
        }
      }
    },
    "LoginToken": {
      "type": "object",
      "properties": {
        "intUserID": {
          "format": "int32",
          "type": "integer"
        },
        "strFirstName": {
          "type": "string"
        },
        "strLastName": {
          "type": "string"
        },
        "strAddress": {
          "type": "string"
        },
        "strCity": {
          "type": "string"
        },
        "strState": {
          "type": "string"
        },
        "strZip": {
          "type": "string"
        },
        "strMobilePhone": {
          "type": "string"
        },
        "strEmail": {
          "type": "string"
        },
        "intUserType": {
          "format": "int32",
          "type": "integer"
        },
        "intCompanyID": {
          "format": "int32",
          "type": "integer"
        },
        "intLocationID": {
          "format": "int32",
          "type": "integer"
        },
        "bitChangePass": {
          "type": "boolean"
        },
        "bitPrimary": {
          "type": "boolean"
        },
        "intRole": {
          "format": "int32",
          "type": "integer"
        },
        "bitEdge": {
          "type": "boolean"
        },
        "bitCoordinator": {
          "type": "boolean"
        },
        "bitCommuter": {
          "type": "boolean"
        },
        "bitChatter": {
          "type": "boolean"
        },
        "bitFitTrac": {
          "type": "boolean"
        },
        "bitVirtualThon": {
          "type": "boolean"
        },
        "dtmLastLogin": {
          "format": "date-time",
          "type": "string"
        },
        "intStaffID": {
          "format": "int32",
          "type": "integer"
        },
        "strExternalKey": {
          "type": "string"
        },
        "primarybgcolor": {
          "type": "string"
        },
        "primarybgcolorhover": {
          "type": "string"
        },
        "secondbgcolor": {
          "type": "string"
        },
        "secondbgcolorhover": {
          "type": "string"
        },
        "primarytextcolor": {
          "type": "string"
        },
        "secondtextcolor": {
          "type": "string"
        },
        "linkcolor": {
          "type": "string"
        },
        "memberwelcomecontent": {
          "type": "string"
        },
        "logo2bg": {
          "type": "string"
        },
        "bitHealthKit": {
          "type": "boolean"
        },
        "privacy_signed": {
          "type": "boolean"
        },
        "hipaa_signed": {
          "type": "boolean"
        },
        "changepassword": {
          "type": "boolean"
        },
        "firsttime": {
          "type": "boolean"
        },
        "error_message": {
          "type": "string"
        },
        "default_account_id": {
          "format": "int32",
          "type": "integer"
        },
        "default_account": {
          "type": "string"
        },
        "flytrap_user_id": {
          "type": "string"
        },
        "flytrap_user": {
          "type": "object"
        },
        "auto_reset": {
          "type": "boolean"
        },
        "strPassword": {
          "type": "string"
        },
        "strCompany": {
          "type": "string"
        },
        "account_id": {
          "format": "int32",
          "type": "integer"
        },
        "clockwyz_pro": {
          "type": "boolean"
        },
        "clockwyz_projects": {
          "format": "int32",
          "type": "integer"
        },
        "selected": {
          "type": "boolean"
        },
        "stripe_token": {
          "type": "string"
        },
        "plan": {
          "type": "string"
        },
        "plan_type": {
          "type": "string"
        },
        "coupon": {
          "type": "string"
        },
        "seats": {
          "format": "int32",
          "type": "integer"
        },
        "product": {
          "type": "string"
        },
        "customkey": {
          "type": "string"
        },
        "platform_account_id": {
          "format": "int64",
          "type": "integer"
        },
        "plaftorm_account_name": {
          "type": "string"
        },
        "platform_accounts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PlatformAccount"
          }
        },
        "discord_id": {
          "type": "string"
        },
        "discord_name": {
          "type": "string"
        },
        "ms_id": {
          "type": "string"
        },
        "mode": {
          "type": "string"
        }
      }
    },
    "GEN_Company": {
      "type": "object",
      "properties": {
        "intCompanyID": {
          "format": "int32",
          "type": "integer"
        },
        "intDBID": {
          "format": "int32",
          "type": "integer"
        },
        "intUserID": {
          "format": "int32",
          "type": "integer"
        },
        "intUpdateUserID": {
          "format": "int32",
          "type": "integer"
        },
        "intUpdateType": {
          "format": "int32",
          "type": "integer"
        },
        "intUpdateUser": {
          "format": "int32",
          "type": "integer"
        },
        "intClients": {
          "format": "int32",
          "type": "integer"
        },
        "updateGUID": {
          "type": "string"
        },
        "dtmLastUpdated": {
          "format": "date-time",
          "type": "string"
        },
        "strDateAquired": {
          "format": "date-time",
          "type": "string"
        },
        "strEmail": {
          "type": "string"
        },
        "binLogo": {
          "format": "byte",
          "type": "string"
        },
        "strCompanyName": {
          "type": "string"
        },
        "strDBName": {
          "type": "string"
        },
        "strAddress": {
          "type": "string"
        },
        "strCity": {
          "type": "string"
        },
        "strState": {
          "type": "string"
        },
        "strZip": {
          "type": "string"
        },
        "strPhone": {
          "type": "string"
        },
        "strFax": {
          "type": "string"
        },
        "bitActive": {
          "type": "boolean"
        },
        "bitAccess": {
          "type": "boolean"
        },
        "bitDefault": {
          "type": "boolean"
        },
        "intCountryID": {
          "format": "int32",
          "type": "integer"
        },
        "strCountry": {
          "type": "string"
        },
        "intStaffContactID": {
          "format": "int32",
          "type": "integer"
        },
        "intGroups": {
          "format": "int32",
          "type": "integer"
        },
        "strCoordinator": {
          "type": "string"
        },
        "strCoach": {
          "type": "string"
        },
        "default_provider": {
          "format": "int32",
          "type": "integer"
        },
        "create_timestamp": {
          "type": "string"
        },
        "enabletheming": {
          "type": "boolean"
        },
        "primarybgcolor": {
          "type": "string"
        },
        "primarybgcolorhover": {
          "type": "string"
        },
        "secondbgcolor": {
          "type": "string"
        },
        "secondbgcolorhover": {
          "type": "string"
        },
        "primarytextcolor": {
          "type": "string"
        },
        "secondtextcolor": {
          "type": "string"
        },
        "linkcolor": {
          "type": "string"
        },
        "memberwelcomecontent": {
          "type": "string"
        },
        "logo2bg": {
          "type": "string"
        },
        "strCompanyLogo": {
          "type": "string"
        },
        "strCompanySplash": {
          "type": "string"
        },
        "strCompanyNavImage": {
          "type": "string"
        },
        "strSubDomain": {
          "type": "string"
        },
        "navbgcolor": {
          "type": "string"
        },
        "navbuttoncolor": {
          "type": "string"
        },
        "navbuttonhovercolor": {
          "type": "string"
        },
        "navaltbuttoncolor": {
          "type": "string"
        },
        "navaltbuttonhovercolor": {
          "type": "string"
        },
        "navbuttontextcolor": {
          "type": "string"
        },
        "navbuttonhovertextcolor": {
          "type": "string"
        },
        "topbarbgcolor": {
          "type": "string"
        },
        "topbarbuttoncolor": {
          "type": "string"
        },
        "topbarbuttonhovercolor": {
          "type": "string"
        },
        "topbaraltbuttoncolor": {
          "type": "string"
        },
        "topbaraltbuttonhovercolor": {
          "type": "string"
        },
        "topbarbuttontextcolor": {
          "type": "string"
        },
        "topbarbuttonhovertextcolor": {
          "type": "string"
        },
        "intUpdateRequiredFrequency": {
          "format": "int32",
          "type": "integer"
        },
        "bitUpdateProfileNewAccount": {
          "type": "boolean"
        },
        "strUpdateProfileMessage": {
          "type": "string"
        },
        "bitWaitListEnabled": {
          "type": "boolean"
        },
        "bitSchedulingLockoutEnabled": {
          "type": "boolean"
        },
        "intMaxFaultOccurences": {
          "format": "int32",
          "type": "integer"
        },
        "intLockoutDuration": {
          "format": "int32",
          "type": "integer"
        },
        "intFaultTimeSpan": {
          "format": "int32",
          "type": "integer"
        },
        "intFaultPeriod": {
          "format": "int32",
          "type": "integer"
        },
        "bitSchedulingLimitsEnabled": {
          "type": "boolean"
        },
        "intMaxAppointmentsPerPeriod": {
          "format": "int32",
          "type": "integer"
        },
        "intAppointmentLockPeriod": {
          "format": "int32",
          "type": "integer"
        },
        "customwelcomeenabled": {
          "type": "boolean"
        },
        "customwelcome": {
          "type": "string"
        },
        "customwelcomesubject": {
          "type": "string"
        },
        "customwelcometext": {
          "type": "string"
        },
        "ntrinsx_licenses": {
          "format": "int32",
          "type": "integer"
        },
        "ntrinsx_licenses_used": {
          "format": "int32",
          "type": "integer"
        },
        "ntrinsx_company_licenses": {
          "format": "int32",
          "type": "integer"
        },
        "ntrinsx_company_licenses_used": {
          "format": "int32",
          "type": "integer"
        },
        "ntrinsx_enabled": {
          "type": "boolean"
        },
        "default_location": {
          "format": "int32",
          "type": "integer"
        },
        "allow_location_reg": {
          "type": "boolean"
        },
        "allow_reg": {
          "type": "boolean"
        },
        "brand_def": {
          "type": "string"
        },
        "account_id": {
          "format": "int32",
          "type": "integer"
        },
        "platform_account_id": {
          "format": "int64",
          "type": "integer"
        },
        "auto_user_reactivate": {
          "type": "boolean"
        },
        "contact_first_name": {
          "type": "string"
        },
        "contact_last_name": {
          "type": "string"
        },
        "contact_email": {
          "type": "string"
        },
        "time_zone": {
          "type": "string"
        },
        "test_company": {
          "type": "boolean"
        },
        "intUsers": {
          "format": "int32",
          "type": "integer"
        },
        "plan": {
          "type": "string"
        },
        "max_clients": {
          "format": "int32",
          "type": "integer"
        },
        "max_users": {
          "format": "int32",
          "type": "integer"
        },
        "st_customer_id": {
          "type": "string"
        },
        "st_subscription_id": {
          "type": "string"
        },
        "plan_name": {
          "type": "string"
        },
        "plantype": {
          "type": "string"
        },
        "members_url": {
          "type": "string"
        },
        "members_reg_url": {
          "type": "string"
        },
        "log_time": {
          "type": "string"
        },
        "log_time_str": {
          "type": "string"
        },
        "remaining_time": {
          "type": "string"
        },
        "selected": {
          "type": "boolean"
        },
        "isadmin": {
          "type": "boolean"
        },
        "monthly_hours": {
          "format": "double",
          "type": "number"
        },
        "monthly_budget": {
          "format": "double",
          "type": "number"
        },
        "current_month_hours": {
          "format": "double",
          "type": "number"
        },
        "current_month_costs": {
          "format": "double",
          "type": "number"
        },
        "last_month_hours": {
          "format": "double",
          "type": "number"
        },
        "last_month_costs": {
          "format": "double",
          "type": "number"
        },
        "current_month_revenue": {
          "format": "double",
          "type": "number"
        },
        "last_month_revenue": {
          "format": "double",
          "type": "number"
        },
        "remaining_time_str": {
          "type": "string"
        },
        "available_time_str": {
          "type": "string"
        },
        "remaining_time_minutes": {
          "format": "int64",
          "type": "integer"
        },
        "available_time_minutes": {
          "format": "int64",
          "type": "integer"
        },
        "active_projects": {
          "format": "int32",
          "type": "integer"
        },
        "open_tasks": {
          "format": "int32",
          "type": "integer"
        },
        "open_tickets": {
          "format": "int32",
          "type": "integer"
        },
        "open_workorders": {
          "format": "int32",
          "type": "integer"
        },
        "agent_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "qbo_customer_id": {
          "type": "string"
        },
        "email_domain": {
          "type": "string"
        }
      }
    },
    "CompanyEmailDomainRequest": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        }
      }
    },
    "VIEW_ClientsHome": {
      "type": "object",
      "properties": {
        "strUserName": {
          "type": "string"
        },
        "strFirstName": {
          "type": "string"
        },
        "strMiddleInitial": {
          "type": "string"
        },
        "strLastName": {
          "type": "string"
        },
        "strEmail": {
          "type": "string"
        },
        "strAddress": {
          "type": "string"
        },
        "strVirtualEmail": {
          "type": "string"
        },
        "strPhone": {
          "type": "string"
        },
        "strCompanyName": {
          "type": "string"
        },
        "intClientID": {
          "format": "int32",
          "type": "integer"
        },
        "intCompanyID": {
          "format": "int32",
          "type": "integer"
        },
        "dtmDateAdded": {
          "format": "date-time",
          "type": "string"
        },
        "dtmLastUpdated": {
          "format": "date-time",
          "type": "string"
        },
        "bitActive": {
          "type": "boolean"
        },
        "bitAccess": {
          "type": "boolean"
        },
        "dtmLastAssessment": {
          "format": "date-time",
          "type": "string"
        },
        "dtmLastBio": {
          "format": "date-time",
          "type": "string"
        },
        "dtmDOB": {
          "format": "date-time",
          "type": "string"
        },
        "strDOB": {
          "type": "string"
        },
        "strLastBio": {
          "type": "string"
        },
        "intLocationID": {
          "format": "int32",
          "type": "integer"
        },
        "strLocation": {
          "type": "string"
        },
        "strAddress2": {
          "type": "string"
        },
        "intGender": {
          "format": "int32",
          "type": "integer"
        },
        "intClientType": {
          "format": "int32",
          "type": "integer"
        },
        "bitInsured": {
          "type": "boolean"
        },
        "strCity": {
          "type": "string"
        },
        "strState": {
          "type": "string"
        },
        "strZip": {
          "type": "string"
        },
        "intCoachID": {
          "format": "int32",
          "type": "integer"
        },
        "strCoach": {
          "type": "string"
        },
        "strNickName": {
          "type": "string"
        },
        "bitMarketing": {
          "type": "boolean"
        },
        "bitCompayContact": {
          "type": "boolean"
        },
        "bitMobileOptIn": {
          "type": "boolean"
        },
        "strMobilePhone": {
          "type": "string"
        },
        "strCompanyRelation": {
          "type": "string"
        },
        "strOtherProvider": {
          "type": "string"
        },
        "wellness_team": {
          "type": "array",
          "items": {
            "format": "int32",
            "type": "integer"
          }
        },
        "Groups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Group"
          }
        },
        "intAccountID": {
          "format": "int32",
          "type": "integer"
        },
        "strAccount": {
          "type": "string"
        },
        "sg_recipient_id": {
          "format": "int64",
          "type": "integer"
        },
        "bitDiabetic": {
          "type": "boolean"
        },
        "dblHeight": {
          "format": "double",
          "type": "number"
        },
        "strFriendlyName": {
          "type": "string"
        },
        "age": {
          "format": "int32",
          "type": "integer"
        },
        "pin": {
          "type": "string"
        },
        "create_at": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "Group": {
      "type": "object",
      "properties": {
        "_caps": {
          "type": "array",
          "items": {
            "format": "int32",
            "type": "integer"
          }
        },
        "_capcount": {
          "format": "int32",
          "type": "integer"
        },
        "_capcoll": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "_name": {
          "type": "string"
        },
        "_text": {
          "type": "string"
        },
        "_index": {
          "format": "int32",
          "type": "integer"
        },
        "_length": {
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "GEN_Client": {
      "required": [
        "strFirstName",
        "strLastName",
        "strEmail",
        "intClientID",
        "intGender",
        "intCompanyID",
        "account_id"
      ],
      "type": "object",
      "properties": {
        "strUserName": {
          "type": "string"
        },
        "strCompanyNumber": {
          "type": "string"
        },
        "strAltCompany": {
          "type": "string"
        },
        "strFirstName": {
          "type": "string"
        },
        "strMInitial": {
          "type": "string"
        },
        "strLastName": {
          "type": "string"
        },
        "strEmail": {
          "type": "string"
        },
        "strVirtualEmail": {
          "type": "string"
        },
        "strAddress": {
          "type": "string"
        },
        "strAddress2": {
          "type": "string"
        },
        "strCity": {
          "type": "string"
        },
        "strState": {
          "type": "string"
        },
        "strZip": {
          "type": "string"
        },
        "strPhone": {
          "type": "string"
        },
        "strMobilePhone": {
          "type": "string"
        },
        "strBusinessPhone": {
          "type": "string"
        },
        "strBusinessExt": {
          "type": "string"
        },
        "create_timestamp": {
          "type": "string"
        },
        "strNickName": {
          "type": "string"
        },
        "strContactMethod": {
          "type": "string"
        },
        "strFriendlyName": {
          "type": "string"
        },
        "strCompanyName": {
          "type": "string"
        },
        "location": {
          "type": "string"
        },
        "coaching_freq": {
          "type": "string"
        },
        "intClientID": {
          "format": "int32",
          "type": "integer"
        },
        "unique_id": {
          "type": "string"
        },
        "provider_key": {
          "type": "string"
        },
        "intCoachID": {
          "format": "int32",
          "type": "integer"
        },
        "intClientType": {
          "format": "int32",
          "type": "integer"
        },
        "intCompany": {
          "format": "int32",
          "type": "integer"
        },
        "strPin": {
          "type": "string"
        },
        "intStatus": {
          "format": "int32",
          "type": "integer"
        },
        "intUpdateType": {
          "format": "int32",
          "type": "integer"
        },
        "intUpdateUserID": {
          "format": "int32",
          "type": "integer"
        },
        "intGender": {
          "format": "int32",
          "type": "integer"
        },
        "intUpdateUser": {
          "format": "int32",
          "type": "integer"
        },
        "intCompanyID": {
          "format": "int32",
          "type": "integer"
        },
        "updateGUID": {
          "type": "string"
        },
        "dtmDOB": {
          "format": "date-time",
          "type": "string"
        },
        "strDOB": {
          "type": "string"
        },
        "dtmDateAdded": {
          "format": "date-time",
          "type": "string"
        },
        "dtmLastUpdated": {
          "format": "date-time",
          "type": "string"
        },
        "bitPrimaryContact": {
          "type": "boolean"
        },
        "bitInsured": {
          "type": "boolean"
        },
        "bitActive": {
          "type": "boolean"
        },
        "binPassword": {
          "format": "byte",
          "type": "string"
        },
        "dtmLastAssessment": {
          "format": "date-time",
          "type": "string"
        },
        "intUserID": {
          "format": "int32",
          "type": "integer"
        },
        "intQ1": {
          "format": "int32",
          "type": "integer"
        },
        "intQ2": {
          "format": "int32",
          "type": "integer"
        },
        "strA1": {
          "type": "string"
        },
        "strA2": {
          "type": "string"
        },
        "intContactMethod": {
          "format": "int32",
          "type": "integer"
        },
        "intContactTime": {
          "format": "int32",
          "type": "integer"
        },
        "bitChangePass": {
          "type": "boolean"
        },
        "strMedicalID": {
          "type": "string"
        },
        "intSurveyID": {
          "format": "int32",
          "type": "integer"
        },
        "intLocationID": {
          "format": "int32",
          "type": "integer"
        },
        "bitMarketing": {
          "type": "boolean"
        },
        "intLangID": {
          "format": "int32",
          "type": "integer"
        },
        "strTomTomToken": {
          "type": "string"
        },
        "strTomTomRefreshToken": {
          "type": "string"
        },
        "bitTomTomEnabled": {
          "type": "boolean"
        },
        "strFitBitID": {
          "type": "string"
        },
        "strFitBitToken": {
          "type": "string"
        },
        "strFitBitRefreshToken": {
          "type": "string"
        },
        "binFitBitToken": {
          "format": "byte",
          "type": "string"
        },
        "binFitBitSecret": {
          "format": "byte",
          "type": "string"
        },
        "bitFitBitEnabled": {
          "type": "boolean"
        },
        "strSkypeName": {
          "type": "string"
        },
        "strVision": {
          "type": "string"
        },
        "intPlan": {
          "format": "int32",
          "type": "integer"
        },
        "strPayPalSubID": {
          "type": "string"
        },
        "binPhoto": {
          "format": "byte",
          "type": "string"
        },
        "strVideoConferenceID": {
          "type": "string"
        },
        "dtmLastLogin": {
          "format": "date-time",
          "type": "string"
        },
        "intCountryID": {
          "format": "int32",
          "type": "integer"
        },
        "strCountry": {
          "type": "string"
        },
        "intEmmaID": {
          "format": "int32",
          "type": "integer"
        },
        "Groups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/GEN_Group"
          }
        },
        "strStripeCustID": {
          "type": "string"
        },
        "strStripeSubID": {
          "type": "string"
        },
        "strCardNum": {
          "type": "string"
        },
        "strExpDate": {
          "type": "string"
        },
        "dtmCardExp": {
          "format": "date-time",
          "type": "string"
        },
        "strAltEmail": {
          "type": "string"
        },
        "strTitle": {
          "type": "string"
        },
        "strPrimaryPhysician": {
          "type": "string"
        },
        "strDevieType": {
          "type": "string"
        },
        "strDeviceID": {
          "type": "string"
        },
        "decBioScore": {
          "format": "double",
          "type": "number"
        },
        "decPoints": {
          "format": "double",
          "type": "number"
        },
        "intStaffID": {
          "format": "int32",
          "type": "integer"
        },
        "intCredits": {
          "format": "int32",
          "type": "integer"
        },
        "jbuserid": {
          "type": "string"
        },
        "jbaccess": {
          "type": "string"
        },
        "jbrefresh": {
          "type": "string"
        },
        "jblastupdate": {
          "format": "date-time",
          "type": "string"
        },
        "jbenabled": {
          "type": "boolean"
        },
        "ttenabled": {
          "type": "boolean"
        },
        "bitHealthKit": {
          "type": "boolean"
        },
        "primarybgcolor": {
          "type": "string"
        },
        "primarybgcolorhover": {
          "type": "string"
        },
        "secondbgcolor": {
          "type": "string"
        },
        "secondbgcolorhover": {
          "type": "string"
        },
        "primarytextcolor": {
          "type": "string"
        },
        "secondtextcolor": {
          "type": "string"
        },
        "linkcolor": {
          "type": "string"
        },
        "memberwelcomecontent": {
          "type": "string"
        },
        "logo2bg": {
          "type": "string"
        },
        "strCompanySplash": {
          "type": "string"
        },
        "strCompanyNavImage": {
          "type": "string"
        },
        "enabletheming": {
          "type": "boolean"
        },
        "navbgcolor": {
          "type": "string"
        },
        "navbuttoncolor": {
          "type": "string"
        },
        "navbuttonhovercolor": {
          "type": "string"
        },
        "navaltbuttoncolor": {
          "type": "string"
        },
        "navaltbuttonhovercolor": {
          "type": "string"
        },
        "navbuttontextcolor": {
          "type": "string"
        },
        "navbuttonhovertextcolor": {
          "type": "string"
        },
        "sg_recipient_id": {
          "format": "int64",
          "type": "integer"
        },
        "topbarbgcolor": {
          "type": "string"
        },
        "topbarbuttoncolor": {
          "type": "string"
        },
        "topbarbuttonhovercolor": {
          "type": "string"
        },
        "topbaraltbuttoncolor": {
          "type": "string"
        },
        "topbaraltbuttonhovercolor": {
          "type": "string"
        },
        "topbarbuttontextcolor": {
          "type": "string"
        },
        "topbarbuttonhovertextcolor": {
          "type": "string"
        },
        "companylogo": {
          "type": "string"
        },
        "strExternalKey": {
          "type": "string"
        },
        "strNTXID": {
          "type": "string"
        },
        "ntrinsx_company_licenses": {
          "format": "int32",
          "type": "integer"
        },
        "ntrinsx_company_licenses_used": {
          "format": "int32",
          "type": "integer"
        },
        "ntrinsx_licenses_available": {
          "format": "int32",
          "type": "integer"
        },
        "strSSOToken": {
          "type": "string"
        },
        "strSSORefresh": {
          "type": "string"
        },
        "bitProfileUpdateNeeded": {
          "type": "boolean"
        },
        "strBTCustomerID": {
          "type": "string"
        },
        "strBTCardToken": {
          "type": "string"
        },
        "appointsmentsasof": {
          "format": "date-time",
          "type": "string"
        },
        "appointmentscurrentperiod": {
          "format": "int32",
          "type": "integer"
        },
        "appointmentsleft": {
          "format": "int32",
          "type": "integer"
        },
        "companyappointmentpolicy": {
          "format": "int32",
          "type": "integer"
        },
        "schedulelocktil": {
          "format": "date-time",
          "type": "string"
        },
        "schedulefaults": {
          "format": "int32",
          "type": "integer"
        },
        "companyfaultpolicy": {
          "format": "int32",
          "type": "integer"
        },
        "faultsallowed": {
          "format": "int32",
          "type": "integer"
        },
        "error_message": {
          "type": "string"
        },
        "coach_first_name": {
          "type": "string"
        },
        "coach_last_name": {
          "type": "string"
        },
        "coach_email": {
          "type": "string"
        },
        "privacy_signed": {
          "type": "boolean"
        },
        "hipaa_signed": {
          "type": "boolean"
        },
        "bitMobileOptIn": {
          "type": "boolean"
        },
        "intProvider": {
          "format": "int32",
          "type": "integer"
        },
        "strSignatureToken": {
          "type": "string"
        },
        "strSignatureRefresh": {
          "type": "string"
        },
        "strNTToken": {
          "type": "string"
        },
        "human_id": {
          "type": "string"
        },
        "human_access": {
          "type": "string"
        },
        "human_enabled": {
          "type": "boolean"
        },
        "human_pub": {
          "type": "string"
        },
        "location_time_offset": {
          "format": "double",
          "type": "number"
        },
        "location_time_offset_abbr": {
          "type": "string"
        },
        "strTempPassword": {
          "type": "string"
        },
        "account_id": {
          "format": "int32",
          "type": "integer"
        },
        "account_name": {
          "type": "string"
        },
        "csettings": {
          "type": "string"
        },
        "whats_new": {
          "type": "boolean"
        },
        "strOtherProvider": {
          "type": "string"
        },
        "diabetic": {
          "type": "boolean"
        },
        "height": {
          "format": "double",
          "type": "number"
        },
        "auto_reset": {
          "type": "boolean"
        },
        "rtid": {
          "type": "string"
        },
        "lastconnected": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "GEN_Group": {
      "type": "object",
      "properties": {
        "intGroupId": {
          "format": "int32",
          "type": "integer"
        },
        "intPostPermission": {
          "format": "int32",
          "type": "integer"
        },
        "intGroupTypeId": {
          "format": "int32",
          "type": "integer"
        },
        "intCompanyId": {
          "format": "int32",
          "type": "integer"
        },
        "intEventId": {
          "format": "int32",
          "type": "integer"
        },
        "intGroupBeacon": {
          "format": "int32",
          "type": "integer"
        },
        "decBalance": {
          "format": "double",
          "type": "number"
        },
        "strImage": {
          "type": "string"
        },
        "strImageThumb": {
          "type": "string"
        },
        "strGroupName": {
          "type": "string"
        },
        "strGroupShortDescription": {
          "type": "string"
        },
        "strGroupDescription": {
          "type": "string"
        },
        "strGroupLink": {
          "type": "string"
        },
        "bitActive": {
          "type": "boolean"
        },
        "bitPublic": {
          "type": "boolean"
        },
        "intCapacity": {
          "format": "int32",
          "type": "integer"
        },
        "intStaff": {
          "format": "int32",
          "type": "integer"
        },
        "intMembers": {
          "format": "int32",
          "type": "integer"
        },
        "intPayoutAccountId": {
          "format": "int32",
          "type": "integer"
        },
        "Clients": {
          "type": "array",
          "items": {
            "format": "int32",
            "type": "integer"
          }
        },
        "Staff": {
          "type": "array",
          "items": {
            "format": "int32",
            "type": "integer"
          }
        },
        "strCompany": {
          "type": "string"
        },
        "isLeader": {
          "type": "boolean"
        },
        "isContact": {
          "type": "boolean"
        },
        "enabledWelcome": {
          "type": "boolean"
        },
        "enabledGoodbye": {
          "type": "boolean"
        },
        "showClients": {
          "type": "boolean"
        },
        "welcomeMessage": {
          "type": "string"
        },
        "goodbyeMessage": {
          "type": "string"
        },
        "account_id": {
          "format": "int32",
          "type": "integer"
        },
        "platform_account_id": {
          "format": "int64",
          "type": "integer"
        },
        "account_name": {
          "type": "string"
        },
        "tele_key": {
          "type": "string"
        },
        "tw_video_sid": {
          "type": "string"
        },
        "tw_video_room": {
          "type": "string"
        },
        "thumb_image": {
          "type": "string"
        },
        "full_image": {
          "type": "string"
        },
        "enablelr": {
          "type": "boolean"
        },
        "lrvideo": {
          "type": "boolean"
        },
        "lraudio": {
          "type": "boolean"
        },
        "lrss": {
          "type": "boolean"
        },
        "lrchat": {
          "type": "boolean"
        },
        "enable_conf": {
          "type": "boolean"
        },
        "conf_pin": {
          "type": "string"
        },
        "conf_id": {
          "format": "int32",
          "type": "integer"
        },
        "conf_phone": {
          "type": "string"
        },
        "reg_fee": {
          "format": "double",
          "type": "number"
        },
        "registered": {
          "type": "boolean"
        },
        "client_id": {
          "format": "int32",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "enabletelecon": {
          "type": "boolean"
        },
        "enablechat": {
          "type": "boolean"
        },
        "enablevideo": {
          "type": "boolean"
        },
        "enabless": {
          "type": "boolean"
        },
        "enableaudio": {
          "type": "boolean"
        },
        "enablevc": {
          "type": "boolean"
        },
        "youtube": {
          "type": "string"
        },
        "create_date": {
          "format": "date-time",
          "type": "string"
        },
        "target_date": {
          "format": "date-time",
          "type": "string"
        },
        "complete_date": {
          "format": "date-time",
          "type": "string"
        },
        "total_duration": {
          "type": "string"
        },
        "total_duration_str": {
          "type": "string"
        },
        "total_estimated": {
          "type": "string"
        },
        "estimated_minutes": {
          "format": "int32",
          "type": "integer"
        },
        "total_minutes": {
          "format": "int32",
          "type": "integer"
        },
        "total_estimated_str": {
          "type": "string"
        },
        "virtual_email": {
          "type": "string"
        },
        "tasks": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Group_Task"
          }
        },
        "logs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/LOG_Time"
          }
        },
        "group_type": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "agg_cost": {
          "format": "double",
          "type": "number"
        },
        "agg_rate": {
          "format": "double",
          "type": "number"
        },
        "total_tasks": {
          "format": "int32",
          "type": "integer"
        },
        "total_tasks_onhold": {
          "format": "int32",
          "type": "integer"
        },
        "total_tasks_open": {
          "format": "int32",
          "type": "integer"
        },
        "total_tasks_completed": {
          "format": "int32",
          "type": "integer"
        },
        "percentage": {
          "format": "int32",
          "type": "integer"
        },
        "cost": {
          "format": "double",
          "type": "number"
        },
        "revenue": {
          "format": "double",
          "type": "number"
        },
        "net": {
          "format": "double",
          "type": "number"
        },
        "budget": {
          "format": "double",
          "type": "number"
        },
        "billable": {
          "type": "boolean"
        },
        "assignment_meta": {
          "type": "string"
        },
        "logs_meta": {
          "type": "string"
        },
        "agent_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        }
      }
    },
    "Group_Task": {
      "type": "object",
      "properties": {
        "service_id": {
          "format": "int32",
          "type": "integer"
        },
        "service_name": {
          "type": "string"
        },
        "task_id": {
          "format": "int64",
          "type": "integer"
        },
        "milestone_id": {
          "format": "int64",
          "type": "integer"
        },
        "milestone": {
          "type": "string"
        },
        "creator_id": {
          "format": "int32",
          "type": "integer"
        },
        "client_id": {
          "format": "int32",
          "type": "integer"
        },
        "creator": {
          "type": "string"
        },
        "group_id": {
          "format": "int32",
          "type": "integer"
        },
        "event_id": {
          "format": "int32",
          "type": "integer"
        },
        "account_id": {
          "format": "int64",
          "type": "integer"
        },
        "group_name": {
          "type": "string"
        },
        "company_id": {
          "format": "int32",
          "type": "integer"
        },
        "company_name": {
          "type": "string"
        },
        "event_name": {
          "type": "string"
        },
        "task_guid": {
          "type": "string"
        },
        "task": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "notes": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "leader_name": {
          "type": "string"
        },
        "status_description": {
          "type": "string"
        },
        "start": {
          "format": "date-time",
          "type": "string"
        },
        "end": {
          "format": "date-time",
          "type": "string"
        },
        "creation_date": {
          "format": "date-time",
          "type": "string"
        },
        "complete_date": {
          "format": "date-time",
          "type": "string"
        },
        "last_log_date": {
          "format": "date-time",
          "type": "string"
        },
        "meta": {
          "type": "string"
        },
        "percentage": {
          "format": "int32",
          "type": "integer"
        },
        "priority": {
          "type": "string"
        },
        "priority_rank": {
          "format": "int32",
          "type": "integer"
        },
        "attention": {
          "type": "boolean"
        },
        "staff_assignees": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Group_Task_Assignee"
          }
        },
        "client_assignees": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Group_Task_Assignee"
          }
        },
        "task_files": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Group_Task_File"
          }
        },
        "logs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/LOG_Time"
          }
        },
        "total_duration": {
          "type": "string"
        },
        "total_duration_str": {
          "type": "string"
        },
        "estimated_ticks": {
          "format": "int64",
          "type": "integer"
        },
        "estimated_time": {
          "type": "string"
        },
        "pastdue_time": {
          "type": "string"
        },
        "pastdue_ticks": {
          "format": "int64",
          "type": "integer"
        },
        "pastdue": {
          "type": "boolean"
        },
        "duetoday": {
          "type": "boolean"
        },
        "contact_card_entry_id": {
          "format": "int32",
          "type": "integer"
        },
        "assign_all_staff": {
          "type": "boolean"
        },
        "agg_cost": {
          "format": "double",
          "type": "number"
        },
        "agg_rate": {
          "format": "double",
          "type": "number"
        },
        "pinned": {
          "type": "boolean"
        },
        "isbillable": {
          "type": "boolean"
        },
        "task_type": {
          "type": "string"
        },
        "attention_name": {
          "type": "string"
        },
        "deadline": {
          "type": "string"
        },
        "predecessor_id": {
          "format": "int64",
          "type": "integer"
        },
        "predecessor_complete": {
          "type": "boolean"
        },
        "predecessor_name": {
          "type": "string"
        },
        "assignment_meta": {
          "type": "string"
        },
        "logs_meta": {
          "type": "string"
        },
        "lat": {
          "format": "double",
          "type": "number"
        },
        "lng": {
          "format": "double",
          "type": "number"
        },
        "location": {
          "type": "string"
        },
        "address1": {
          "type": "string"
        },
        "address2": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "zip": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "reftype1": {
          "type": "string"
        },
        "ref1": {
          "type": "string"
        },
        "reftype2": {
          "type": "string"
        },
        "ref2": {
          "type": "string"
        },
        "reftype3": {
          "type": "string"
        },
        "ref3": {
          "type": "string"
        },
        "reftype4": {
          "type": "string"
        },
        "ref4": {
          "type": "string"
        },
        "solution": {
          "type": "string"
        },
        "agent_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "unit_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "vin": {
          "type": "string"
        },
        "manufacturer": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "unit_class": {
          "type": "string"
        },
        "year": {
          "format": "int32",
          "type": "integer"
        },
        "parts": {
          "type": "string"
        },
        "reviewer_id": {
          "format": "int32",
          "type": "integer"
        },
        "review_required": {
          "type": "boolean"
        },
        "reviewer": {
          "type": "string"
        },
        "age_friendly": {
          "type": "string"
        }
      }
    },
    "LOG_Time": {
      "type": "object",
      "properties": {
        "log_id": {
          "format": "int32",
          "type": "integer"
        },
        "account_id": {
          "format": "int64",
          "type": "integer"
        },
        "service_id": {
          "format": "int32",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "company_id": {
          "format": "int32",
          "type": "integer"
        },
        "client_id": {
          "format": "int32",
          "type": "integer"
        },
        "group_id": {
          "format": "int32",
          "type": "integer"
        },
        "event_id": {
          "format": "int32",
          "type": "integer"
        },
        "topic_id": {
          "format": "int32",
          "type": "integer"
        },
        "thread_id": {
          "format": "int32",
          "type": "integer"
        },
        "task_id": {
          "format": "int64",
          "type": "integer"
        },
        "duration": {
          "type": "string"
        },
        "allowance": {
          "type": "string"
        },
        "allowance_ticks": {
          "format": "int64",
          "type": "integer"
        },
        "note": {
          "type": "string"
        },
        "log_date": {
          "format": "date-time",
          "type": "string"
        },
        "date_added": {
          "format": "date-time",
          "type": "string"
        },
        "expire_date": {
          "format": "date-time",
          "type": "string"
        },
        "log_time_str": {
          "type": "string"
        },
        "log_time": {
          "type": "string"
        },
        "allowance_time": {
          "type": "string"
        },
        "client_name": {
          "type": "string"
        },
        "group_name": {
          "type": "string"
        },
        "company_name": {
          "type": "string"
        },
        "event_name": {
          "type": "string"
        },
        "user_name": {
          "type": "string"
        },
        "topic_name": {
          "type": "string"
        },
        "thread_name": {
          "type": "string"
        },
        "task_name": {
          "type": "string"
        },
        "total_minutes": {
          "format": "double",
          "type": "number"
        },
        "allowance_total_minutes": {
          "format": "double",
          "type": "number"
        },
        "service_name": {
          "type": "string"
        },
        "isnoteonly": {
          "type": "boolean"
        },
        "cost": {
          "format": "double",
          "type": "number"
        },
        "rate": {
          "format": "double",
          "type": "number"
        },
        "net": {
          "format": "double",
          "type": "number"
        },
        "progress_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "staff": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Group_Task_Assignee"
          }
        },
        "exclude": {
          "type": "boolean"
        },
        "billable": {
          "type": "boolean"
        },
        "invoiced": {
          "type": "boolean"
        },
        "invoice_id": {
          "format": "int64",
          "type": "integer"
        },
        "lat": {
          "format": "double",
          "type": "number"
        },
        "lng": {
          "format": "double",
          "type": "number"
        },
        "total_cost": {
          "format": "double",
          "type": "number"
        },
        "total_revenue": {
          "format": "double",
          "type": "number"
        },
        "total_margin": {
          "format": "double",
          "type": "number"
        },
        "agent_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        }
      }
    },
    "Group_Task_Assignee": {
      "type": "object",
      "properties": {
        "assignee_id": {
          "format": "int32",
          "type": "integer"
        },
        "task_id": {
          "format": "int64",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "client_id": {
          "format": "int32",
          "type": "integer"
        },
        "first_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "assignee": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "mobile_optin": {
          "type": "boolean"
        },
        "task_sms_optin": {
          "type": "boolean"
        },
        "active": {
          "type": "boolean"
        },
        "activitys": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/LOG_TimeExtended"
          }
        },
        "duration": {
          "type": "string"
        },
        "duration_friendly": {
          "type": "string"
        },
        "leader": {
          "type": "boolean"
        },
        "attention": {
          "type": "boolean"
        },
        "promoting": {
          "type": "boolean"
        },
        "pinned": {
          "type": "boolean"
        },
        "notify": {
          "type": "boolean"
        }
      }
    },
    "Group_Task_File": {
      "type": "object",
      "properties": {
        "task_file_id": {
          "format": "int32",
          "type": "integer"
        },
        "task_id": {
          "format": "int64",
          "type": "integer"
        },
        "file_id": {
          "format": "int32",
          "type": "integer"
        },
        "filename": {
          "type": "string"
        },
        "file_path": {
          "type": "string"
        },
        "file_size": {
          "type": "string"
        },
        "creator": {
          "type": "string"
        },
        "create_date": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "LOG_TimeExtended": {
      "type": "object",
      "properties": {
        "log_id": {
          "format": "int32",
          "type": "integer"
        },
        "account_id": {
          "format": "int64",
          "type": "integer"
        },
        "service_id": {
          "format": "int32",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "company_id": {
          "format": "int32",
          "type": "integer"
        },
        "client_id": {
          "format": "int32",
          "type": "integer"
        },
        "group_id": {
          "format": "int32",
          "type": "integer"
        },
        "event_id": {
          "format": "int32",
          "type": "integer"
        },
        "topic_id": {
          "format": "int32",
          "type": "integer"
        },
        "thread_id": {
          "format": "int32",
          "type": "integer"
        },
        "task_id": {
          "format": "int64",
          "type": "integer"
        },
        "duration": {
          "type": "string"
        },
        "allowance": {
          "type": "string"
        },
        "allowance_ticks": {
          "format": "int64",
          "type": "integer"
        },
        "note": {
          "type": "string"
        },
        "log_date": {
          "format": "date-time",
          "type": "string"
        },
        "date_added": {
          "format": "date-time",
          "type": "string"
        },
        "expire_date": {
          "format": "date-time",
          "type": "string"
        },
        "log_time_str": {
          "type": "string"
        },
        "log_time": {
          "type": "string"
        },
        "allowance_time": {
          "type": "string"
        },
        "client_name": {
          "type": "string"
        },
        "group_name": {
          "type": "string"
        },
        "company_name": {
          "type": "string"
        },
        "event_name": {
          "type": "string"
        },
        "user_name": {
          "type": "string"
        },
        "topic_name": {
          "type": "string"
        },
        "thread_name": {
          "type": "string"
        },
        "task_name": {
          "type": "string"
        },
        "total_minutes": {
          "format": "double",
          "type": "number"
        },
        "allowance_total_minutes": {
          "format": "double",
          "type": "number"
        },
        "service_name": {
          "type": "string"
        },
        "isnoteonly": {
          "type": "boolean"
        },
        "cost": {
          "format": "double",
          "type": "number"
        },
        "rate": {
          "format": "double",
          "type": "number"
        },
        "net": {
          "format": "double",
          "type": "number"
        },
        "progress_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "staff": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Group_Task_Assignee"
          }
        },
        "exclude": {
          "type": "boolean"
        },
        "billable": {
          "type": "boolean"
        },
        "invoiced": {
          "type": "boolean"
        },
        "invoice_id": {
          "format": "int64",
          "type": "integer"
        },
        "lat": {
          "format": "double",
          "type": "number"
        },
        "lng": {
          "format": "double",
          "type": "number"
        },
        "total_cost": {
          "format": "double",
          "type": "number"
        },
        "total_revenue": {
          "format": "double",
          "type": "number"
        },
        "total_margin": {
          "format": "double",
          "type": "number"
        },
        "agent_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        }
      }
    },
    "ClientLookupRequest": {
      "description": "Request model for client email lookup",
      "type": "object",
      "properties": {
        "email": {
          "description": "Client email address",
          "type": "string"
        }
      }
    },
    "Prospect": {
      "type": "object",
      "properties": {
        "prospect_id": {
          "format": "int32",
          "type": "integer"
        },
        "org": {
          "type": "string"
        },
        "outcome": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "client_id": {
          "format": "int32",
          "type": "integer"
        },
        "company_id": {
          "format": "int32",
          "type": "integer"
        },
        "first_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "mobile": {
          "type": "string"
        },
        "address1": {
          "type": "string"
        },
        "address2": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "zip": {
          "type": "string"
        },
        "create_at": {
          "format": "date-time",
          "type": "string"
        },
        "last_contact": {
          "format": "date-time",
          "type": "string"
        },
        "remind_date": {
          "format": "date-time",
          "type": "string"
        },
        "last_remind": {
          "format": "date-time",
          "type": "string"
        },
        "lastchange": {
          "format": "date-time",
          "type": "string"
        },
        "lastchange_user_id": {
          "format": "int32",
          "type": "integer"
        },
        "priority": {
          "format": "int32",
          "type": "integer"
        },
        "close_date": {
          "format": "date-time",
          "type": "string"
        },
        "rep_id": {
          "format": "int32",
          "type": "integer"
        },
        "account_id": {
          "format": "int64",
          "type": "integer"
        },
        "rep": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "source_url": {
          "type": "string"
        },
        "referred_by": {
          "type": "string"
        },
        "company": {
          "type": "string"
        },
        "platform_account_id": {
          "format": "int64",
          "type": "integer"
        }
      }
    },
    "AccountRequest": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string"
        },
        "account_id": {
          "format": "int64",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "stages": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "Prospect_Note": {
      "type": "object",
      "properties": {
        "note_id": {
          "format": "int64",
          "type": "integer"
        },
        "prospect_id": {
          "format": "int32",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "note": {
          "type": "string"
        },
        "author": {
          "type": "string"
        },
        "prospect_first_name": {
          "type": "string"
        },
        "prospect_last_name": {
          "type": "string"
        },
        "prospect_email": {
          "type": "string"
        },
        "note_date": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "Prospect_Followup": {
      "type": "object",
      "properties": {
        "followup_id": {
          "format": "int64",
          "type": "integer"
        },
        "prospect_id": {
          "format": "int32",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "contact_method_id": {
          "format": "int32",
          "type": "integer"
        },
        "contact_method": {
          "type": "string"
        },
        "outcome": {
          "type": "string"
        },
        "subject": {
          "type": "string"
        },
        "content": {
          "type": "string"
        },
        "sgid": {
          "type": "string"
        },
        "twid": {
          "type": "string"
        },
        "followup_date": {
          "format": "date-time",
          "type": "string"
        },
        "author": {
          "type": "string"
        },
        "prospect_first_name": {
          "type": "string"
        },
        "prospect_last_name": {
          "type": "string"
        },
        "prospect_email": {
          "type": "string"
        }
      }
    },
    "Prospect_Notification_User": {
      "type": "object",
      "properties": {
        "account_id": {
          "format": "int32",
          "type": "integer"
        },
        "setup_id": {
          "format": "int32",
          "type": "integer"
        },
        "stage": {
          "type": "string"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "email": {
          "type": "boolean"
        },
        "sms": {
          "type": "boolean"
        },
        "default_assign": {
          "type": "boolean"
        },
        "first_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "full_name": {
          "type": "string"
        },
        "user_email": {
          "type": "string"
        },
        "user_mobile": {
          "type": "string"
        },
        "user_mobile_opt_in": {
          "type": "boolean"
        },
        "create_at": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "Prospect_Doc": {
      "type": "object",
      "properties": {
        "doc_id": {
          "format": "int32",
          "type": "integer"
        },
        "prospect_id": {
          "format": "int32",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "filename": {
          "type": "string"
        },
        "file_url": {
          "type": "string"
        },
        "create_at": {
          "format": "date-time",
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "author": {
          "type": "string"
        },
        "prospect_first_name": {
          "type": "string"
        },
        "prospect_last_name": {
          "type": "string"
        },
        "prospect_email": {
          "type": "string"
        }
      }
    },
    "InsightsRequest": {
      "type": "object",
      "properties": {
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "start": {
          "format": "date-time",
          "type": "string"
        },
        "end": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "ExportRequest": {
      "type": "object",
      "properties": {
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "account_id": {
          "format": "int64",
          "type": "integer"
        },
        "start": {
          "format": "date-time",
          "type": "string"
        },
        "end": {
          "format": "date-time",
          "type": "string"
        },
        "query": {
          "type": "string"
        }
      }
    },
    "NotesRequest": {
      "description": "Request model for fetching notes by account.",
      "type": "object",
      "properties": {
        "account_id": {
          "format": "int64",
          "description": "Platform account identifier. This will be overridden by the `pid` header on the request.",
          "type": "integer"
        },
        "company_id": {
          "format": "int32",
          "description": "Optional company identifier. Defaults to 0 when not supplied.",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "description": "Requesting user id. This will be overridden by the `user_id` header on the request.",
          "type": "integer"
        }
      }
    },
    "Note": {
      "type": "object",
      "properties": {
        "note_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "title": {
          "type": "string"
        },
        "book_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "creator_id": {
          "format": "int32",
          "type": "integer"
        },
        "last_update_user_id": {
          "format": "int32",
          "type": "integer"
        },
        "last_update_user_name": {
          "type": "string"
        },
        "creator": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "account_id": {
          "format": "int64",
          "type": "integer"
        },
        "knowledge": {
          "type": "boolean"
        },
        "trained": {
          "type": "boolean"
        },
        "firefly_transcript_id": {
          "type": "string"
        },
        "is_public": {
          "type": "boolean"
        },
        "public_link": {
          "type": "string"
        },
        "note_key": {
          "type": "string"
        },
        "feature_file": {
          "type": "string"
        },
        "feature_url": {
          "type": "string"
        },
        "summary": {
          "type": "string"
        },
        "create_summary": {
          "type": "boolean"
        },
        "last_update": {
          "format": "date-time",
          "type": "string"
        },
        "create_date": {
          "format": "date-time",
          "type": "string"
        },
        "assigned_users": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/NoteUser"
          }
        },
        "tags": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/NoteTag"
          }
        },
        "agent_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        }
      }
    },
    "NoteUser": {
      "type": "object",
      "properties": {
        "assignment_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "note_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "user_name": {
          "type": "string"
        },
        "permission": {
          "type": "string"
        },
        "assign_date": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "NoteTag": {
      "type": "object",
      "properties": {
        "tag_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "note_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "tag": {
          "type": "string"
        },
        "tag_date": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "MediaVectorRequest": {
      "type": "object",
      "properties": {
        "aiengine": {
          "type": "string"
        },
        "thread_module": {
          "type": "string"
        },
        "module": {
          "type": "string"
        },
        "query": {
          "type": "string"
        },
        "account_id": {
          "format": "int64",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "company_id": {
          "format": "int32",
          "type": "integer"
        },
        "use_notes": {
          "type": "boolean"
        },
        "use_tasks": {
          "type": "boolean"
        },
        "use_knowledge": {
          "type": "boolean"
        },
        "schedule_date": {
          "format": "date-time",
          "type": "string"
        },
        "use_log_activity": {
          "type": "boolean"
        },
        "include_costs": {
          "type": "boolean"
        },
        "log_start": {
          "format": "date-time",
          "type": "string"
        },
        "log_end": {
          "format": "date-time",
          "type": "string"
        },
        "note_type": {
          "type": "string"
        },
        "note_start": {
          "format": "date-time",
          "type": "string"
        },
        "note_end": {
          "format": "date-time",
          "type": "string"
        },
        "notebooks": {
          "type": "array",
          "items": {
            "format": "uuid",
            "type": "string",
            "example": "00000000-0000-0000-0000-000000000000"
          }
        },
        "thread_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "team_member_id": {
          "format": "int32",
          "type": "integer"
        },
        "instructions": {
          "type": "string"
        },
        "response_style": {
          "type": "string"
        },
        "include_time_logs": {
          "type": "boolean"
        },
        "room_id": {
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "NoteCompany": {
      "type": "object",
      "properties": {
        "assignment_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "note_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "assign_user_id": {
          "format": "int32",
          "type": "integer"
        },
        "user_name": {
          "type": "string"
        },
        "company_id": {
          "format": "int32",
          "type": "integer"
        },
        "company_name": {
          "type": "string"
        },
        "assign_date": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "NoteBook": {
      "type": "object",
      "properties": {
        "book_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "creator_id": {
          "format": "int32",
          "type": "integer"
        },
        "creator": {
          "type": "string"
        },
        "notes": {
          "format": "int32",
          "type": "integer"
        },
        "last_update": {
          "format": "date-time",
          "type": "string"
        },
        "create_date": {
          "format": "date-time",
          "type": "string"
        },
        "account_id": {
          "format": "int64",
          "type": "integer"
        }
      }
    },
    "NoteBookUser": {
      "type": "object",
      "properties": {
        "assignment_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "book_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "user_name": {
          "type": "string"
        },
        "permission": {
          "type": "string"
        },
        "assign_date": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "CompleteTasksRequest": {
      "type": "object",
      "properties": {
        "account_id": {
          "format": "int64",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "start": {
          "format": "date-time",
          "type": "string"
        },
        "end": {
          "format": "date-time",
          "type": "string"
        },
        "company_id": {
          "format": "int32",
          "type": "integer"
        },
        "teamfilter": {
          "type": "string"
        },
        "onlymytasks": {
          "type": "boolean"
        }
      }
    },
    "GroupStaff": {
      "type": "object",
      "properties": {
        "assign_id": {
          "format": "int32",
          "type": "integer"
        },
        "group_id": {
          "format": "int32",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "first_name": {
          "type": "string"
        },
        "last_name": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "mobile": {
          "type": "string"
        },
        "cost": {
          "format": "double",
          "type": "number"
        },
        "rate": {
          "format": "double",
          "type": "number"
        },
        "leader": {
          "type": "boolean"
        },
        "contact": {
          "type": "boolean"
        }
      }
    },
    "GroupTaskPin": {
      "type": "object",
      "properties": {
        "pin_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "client_id": {
          "format": "int32",
          "type": "integer"
        },
        "task_id": {
          "format": "int64",
          "type": "integer"
        },
        "sort": {
          "format": "int32",
          "type": "integer"
        },
        "create_date": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "LOGWorkInProgress": {
      "type": "object",
      "properties": {
        "progress_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "task_id": {
          "format": "int64",
          "type": "integer"
        },
        "service_id": {
          "format": "int32",
          "type": "integer"
        },
        "group_id": {
          "format": "int32",
          "type": "integer"
        },
        "company_id": {
          "format": "int32",
          "type": "integer"
        },
        "task": {
          "type": "string"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "start_date": {
          "format": "date-time",
          "type": "string"
        },
        "duration": {
          "type": "string"
        },
        "minutes": {
          "format": "int32",
          "type": "integer"
        },
        "pretty_time": {
          "type": "string"
        },
        "user_name": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "break_duration": {
          "format": "int64",
          "type": "integer"
        },
        "last_event_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "type": {
          "type": "string"
        },
        "break_minutes": {
          "format": "int32",
          "type": "integer"
        },
        "break_start_date": {
          "format": "date-time",
          "type": "string"
        }
      }
    },
    "LOG_PersonalTime": {
      "type": "object",
      "properties": {
        "log_id": {
          "format": "int64",
          "type": "integer"
        },
        "account_id": {
          "format": "int64",
          "type": "integer"
        },
        "service_id": {
          "format": "int32",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "duration": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "log_date": {
          "format": "date-time",
          "type": "string"
        },
        "start_date": {
          "format": "date-time",
          "type": "string"
        },
        "end_date": {
          "format": "date-time",
          "type": "string"
        },
        "log_time_str": {
          "type": "string"
        },
        "log_time": {
          "type": "string"
        },
        "date_added": {
          "format": "date-time",
          "type": "string"
        },
        "lat": {
          "format": "double",
          "type": "number"
        },
        "lng": {
          "format": "double",
          "type": "number"
        },
        "user_name": {
          "type": "string"
        },
        "service_name": {
          "type": "string"
        }
      }
    },
    "TicketRequest": {
      "description": "Request model for ticket lookups.",
      "type": "object",
      "properties": {
        "platform_account_id": {
          "format": "int64",
          "description": "Platform account ID (set automatically).",
          "type": "integer"
        },
        "company_id": {
          "format": "int32",
          "description": "Optional company ID filter.",
          "type": "integer"
        },
        "status": {
          "description": "Status filter (single).",
          "type": "string"
        },
        "statuses": {
          "description": "Status filter (multiple).",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "query": {
          "description": "Search query.",
          "type": "string"
        },
        "start": {
          "format": "date-time",
          "description": "Start date range.",
          "type": "string"
        },
        "end": {
          "format": "date-time",
          "description": "End date range.",
          "type": "string"
        }
      }
    },
    "GroupTaskComment": {
      "type": "object",
      "properties": {
        "comment_id": {
          "format": "uuid",
          "type": "string",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "task_id": {
          "format": "int64",
          "type": "integer"
        },
        "user_id": {
          "format": "int32",
          "type": "integer"
        },
        "client_id": {
          "format": "int32",
          "type": "integer"
        },
        "creator": {
          "type": "string"
        },
        "comment": {
          "type": "string"
        },
        "attachment_file": {
          "type": "string"
        },
        "attachment_url": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "comment_date": {
          "format": "date-time",
          "type": "string"
        }
      }
    }
  }
}