{
  "openapi": "3.0.0",
  "info": {
    "title": "wisible api",
    "version": "1.0.x",
    "description": "master api for wisible",
    "contact": {}
  },
  "paths": {
    "/activities/count": {
      "get": {
        "x-controller-name": "ActivityController",
        "x-operation-name": "count",
        "tags": [
          "ActivityController"
        ],
        "responses": {
          "200": {
            "description": "Count activities. Use query params dealId, type, or where filter. Returns the number of matching records.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "activities.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Activity>"
                }
              }
            }
          },
          {
            "name": "dealId",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ActivityController.count"
      }
    },
    "/activities/{id}": {
      "get": {
        "x-controller-name": "ActivityController",
        "x-operation-name": "findById",
        "tags": [
          "ActivityController"
        ],
        "responses": {
          "200": {
            "description": "Get a single activity by ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/activities.Filter"
                }
              }
            }
          }
        ],
        "operationId": "ActivityController.findById"
      }
    },
    "/activities": {
      "get": {
        "x-controller-name": "ActivityController",
        "x-operation-name": "find",
        "tags": [
          "ActivityController"
        ],
        "responses": {
          "200": {
            "description": "List activities. If dealId is omitted, results are capped at 100. If dealId is provided, all matching activities are returned. Supports type and filter (where, order, offset).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivityWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/activities.Filter1"
                }
              }
            }
          },
          {
            "name": "dealId",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ActivityController.find"
      }
    },
    "/activity-facebook-chat-logs/count": {
      "get": {
        "x-controller-name": "ActivityFacebookChatLogController",
        "x-operation-name": "count",
        "tags": [
          "ActivityFacebookChatLogController"
        ],
        "responses": {
          "200": {
            "description": "ActivityFacebookChatLog model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "activity_facebook_chat_log.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<ActivityFacebookChatLog>"
                }
              }
            }
          }
        ],
        "operationId": "ActivityFacebookChatLogController.count"
      }
    },
    "/activity-facebook-chat-logs/{id}": {
      "patch": {
        "x-controller-name": "ActivityFacebookChatLogController",
        "x-operation-name": "updateById",
        "tags": [
          "ActivityFacebookChatLogController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "ActivityFacebookChatLog PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityFacebookChatLogPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ActivityFacebookChatLogController.updateById"
      },
      "get": {
        "x-controller-name": "ActivityFacebookChatLogController",
        "x-operation-name": "findById",
        "tags": [
          "ActivityFacebookChatLogController"
        ],
        "responses": {
          "200": {
            "description": "ActivityFacebookChatLog model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityFacebookChatLogWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/activity_facebook_chat_log.Filter"
                }
              }
            }
          }
        ],
        "operationId": "ActivityFacebookChatLogController.findById"
      },
      "delete": {
        "x-controller-name": "ActivityFacebookChatLogController",
        "x-operation-name": "deleteById",
        "tags": [
          "ActivityFacebookChatLogController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "ActivityFacebookChatLog DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "ActivityFacebookChatLogController.deleteById"
      }
    },
    "/activity-facebook-chat-logs": {
      "post": {
        "x-controller-name": "ActivityFacebookChatLogController",
        "x-operation-name": "create",
        "tags": [
          "ActivityFacebookChatLogController"
        ],
        "responses": {
          "200": {
            "description": "ActivityFacebookChatLog model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityFacebookChatLog"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewActivityFacebookChatLog"
              }
            }
          }
        },
        "operationId": "ActivityFacebookChatLogController.create"
      },
      "get": {
        "x-controller-name": "ActivityFacebookChatLogController",
        "x-operation-name": "find",
        "tags": [
          "ActivityFacebookChatLogController"
        ],
        "responses": {
          "200": {
            "description": "Array of ActivityFacebookChatLog model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivityFacebookChatLogWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/activity_facebook_chat_log.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "ActivityFacebookChatLogController.find"
      }
    },
    "/activity-line-chat-logs/count": {
      "get": {
        "x-controller-name": "ActivityLineChatLogController",
        "x-operation-name": "count",
        "tags": [
          "ActivityLineChatLogController"
        ],
        "responses": {
          "200": {
            "description": "ActivityLineChatLog model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "activity_line_chat_log.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<ActivityLineChatLog>"
                }
              }
            }
          }
        ],
        "operationId": "ActivityLineChatLogController.count"
      }
    },
    "/activity-line-chat-logs/{id}": {
      "patch": {
        "x-controller-name": "ActivityLineChatLogController",
        "x-operation-name": "updateById",
        "tags": [
          "ActivityLineChatLogController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "ActivityLineChatLog PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityLineChatLogPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ActivityLineChatLogController.updateById"
      },
      "get": {
        "x-controller-name": "ActivityLineChatLogController",
        "x-operation-name": "findById",
        "tags": [
          "ActivityLineChatLogController"
        ],
        "responses": {
          "200": {
            "description": "ActivityLineChatLog model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityLineChatLogWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/activity_line_chat_log.Filter"
                }
              }
            }
          }
        ],
        "operationId": "ActivityLineChatLogController.findById"
      },
      "delete": {
        "x-controller-name": "ActivityLineChatLogController",
        "x-operation-name": "deleteById",
        "tags": [
          "ActivityLineChatLogController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "ActivityLineChatLog DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "ActivityLineChatLogController.deleteById"
      }
    },
    "/activity-line-chat-logs": {
      "post": {
        "x-controller-name": "ActivityLineChatLogController",
        "x-operation-name": "create",
        "tags": [
          "ActivityLineChatLogController"
        ],
        "responses": {
          "200": {
            "description": "ActivityLineChatLog model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityLineChatLog"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewActivityLineChatLog"
              }
            }
          }
        },
        "operationId": "ActivityLineChatLogController.create"
      },
      "get": {
        "x-controller-name": "ActivityLineChatLogController",
        "x-operation-name": "find",
        "tags": [
          "ActivityLineChatLogController"
        ],
        "responses": {
          "200": {
            "description": "Array of ActivityLineChatLog model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivityLineChatLogWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/activity_line_chat_log.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "ActivityLineChatLogController.find"
      }
    },
    "/activityTask/{id}/done": {
      "post": {
        "x-controller-name": "ActivityTaskControllerController",
        "x-operation-name": "markAsDoneById",
        "tags": [
          "ActivityTaskControllerController"
        ],
        "responses": {
          "200": {
            "description": "Mark activity task as done (GraphQL activityTaskMarkAsDone). Optional feedback in body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityTaskWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "feedback": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "required": false,
          "x-parameter-index": 1
        },
        "operationId": "ActivityTaskControllerController.markAsDoneById"
      }
    },
    "/activityTask/{id}": {
      "patch": {
        "x-controller-name": "ActivityTaskControllerController",
        "x-operation-name": "updateById",
        "tags": [
          "ActivityTaskControllerController"
        ],
        "responses": {
          "200": {
            "description": "Update an activity task by ID. PATCH body may omit fields; stored task values are merged before the GraphQL update so partial updates (e.g. title only) are supported. Returns the updated task.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityTaskWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityTaskUpdateInput"
              },
              "example": {
                "taskInput": {
                  "assignBy": 1,
                  "title": "Updated task title",
                  "note": "Updated notes",
                  "dueDate": "2025-03-25T17:00:00.000Z",
                  "assignees": [
                    1,
                    2
                  ]
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ActivityTaskControllerController.updateById"
      },
      "get": {
        "x-controller-name": "ActivityTaskControllerController",
        "x-operation-name": "findById",
        "tags": [
          "ActivityTaskControllerController"
        ],
        "responses": {
          "200": {
            "description": "Get a single activity task by ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityTaskWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/activity_tasks.Filter"
                }
              }
            }
          }
        ],
        "operationId": "ActivityTaskControllerController.findById"
      },
      "delete": {
        "x-controller-name": "ActivityTaskControllerController",
        "x-operation-name": "deleteById",
        "tags": [
          "ActivityTaskControllerController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete an activity task by ID. No response body."
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "ActivityTaskControllerController.deleteById"
      }
    },
    "/activityTask": {
      "post": {
        "x-controller-name": "ActivityTaskControllerController",
        "x-operation-name": "create",
        "tags": [
          "ActivityTaskControllerController"
        ],
        "responses": {
          "200": {
            "description": "Create activity task (todo). Body: ActivityTaskInput (taskInput, checklists, comments, labelIds). Returns the created task.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityTask"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityTaskInput"
              },
              "example": {
                "taskInput": {
                  "dealId": 1,
                  "customerId": 2,
                  "assignBy": 1,
                  "assignees": [
                    1,
                    2
                  ],
                  "stageId": 1,
                  "title": "Follow-up task",
                  "note": "Review proposal",
                  "dueDate": "2025-03-20T17:00:00.000Z"
                },
                "checklists": [
                  {
                    "text": "Prepare document",
                    "type": "pre"
                  },
                  {
                    "text": "Send to client",
                    "type": "post"
                  }
                ],
                "comments": [
                  {
                    "taskId": 0,
                    "text": "Waiting for approval",
                    "isChecked": false
                  }
                ],
                "labelIds": [
                  1,
                  2
                ]
              }
            }
          }
        },
        "operationId": "ActivityTaskControllerController.create"
      },
      "get": {
        "x-controller-name": "ActivityTaskControllerController",
        "x-operation-name": "find",
        "tags": [
          "ActivityTaskControllerController"
        ],
        "responses": {
          "200": {
            "description": "List activity tasks. Use query params dealId, state, automateConfigId, haveAutomateConfigId, or filter (where, order, limit, offset). Returns array of tasks.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityTaskWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "automateConfigId",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "haveAutomateConfigId",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "dealId",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/activity_tasks.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "ActivityTaskControllerController.find"
      }
    },
    "/automate": {
      "post": {
        "x-controller-name": "WisibleAutomateController",
        "x-operation-name": "automate",
        "tags": [
          "WisibleAutomateController"
        ],
        "responses": {
          "200": {
            "description": "Return value of WisibleAutomateController.automate"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "WisibleAutomateController.automate"
      }
    },
    "/call/rating/{id}": {
      "post": {
        "x-controller-name": "CallController",
        "x-operation-name": "callRating",
        "tags": [
          "CallController"
        ],
        "responses": {
          "200": {
            "description": "Submit or update a call rating (e.g. feedback, rating). Returns the updated call.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Call"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CallPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "CallController.callRating"
      }
    },
    "/call/{id}": {
      "patch": {
        "x-controller-name": "CallController",
        "x-operation-name": "updateById",
        "tags": [
          "CallController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update call by ID (partial). No response body."
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CallPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "CallController.updateById"
      },
      "get": {
        "x-controller-name": "CallController",
        "x-operation-name": "findById",
        "tags": [
          "CallController"
        ],
        "responses": {
          "200": {
            "description": "Get a single call by ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CallWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/call.Filter"
                }
              }
            }
          }
        ],
        "operationId": "CallController.findById"
      },
      "delete": {
        "x-controller-name": "CallController",
        "x-operation-name": "deleteById",
        "tags": [
          "CallController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete call by ID. No response body."
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "CallController.deleteById"
      }
    },
    "/call": {
      "post": {
        "x-controller-name": "CallController",
        "x-operation-name": "create",
        "tags": [
          "CallController"
        ],
        "responses": {
          "200": {
            "description": "Create a call (todo). Body: TodoCallCreateInput. Returns the created call.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Call"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TodoCallCreateInput"
              },
              "example": {
                "todoCallInput": {
                  "dealId": 1,
                  "customerId": 2,
                  "contactPersonId": null,
                  "assignBy": 1,
                  "assignTo": 2,
                  "title": "Follow-up call",
                  "description": "Call notes",
                  "status": "created",
                  "callAt": "2025-03-12T10:00:00.000Z",
                  "phoneNumber": "+66812345678",
                  "phone": {
                    "countryCode": "+66",
                    "dialCode": "66",
                    "phone": "812345678",
                    "extension": null
                  }
                },
                "checklists": [
                  {
                    "callId": 0,
                    "text": "Prepare agenda",
                    "isChecked": false
                  },
                  {
                    "callId": 0,
                    "text": "Send recap",
                    "isChecked": true
                  }
                ],
                "comments": [
                  {
                    "callId": 0,
                    "text": "Customer requested callback"
                  }
                ],
                "labelIds": [
                  1,
                  2
                ]
              }
            }
          }
        },
        "operationId": "CallController.create"
      }
    },
    "/calls": {
      "get": {
        "x-controller-name": "CallController",
        "x-operation-name": "getCalls",
        "tags": [
          "CallController"
        ],
        "responses": {
          "200": {
            "description": "List calls (paginated). Use query params deal_id, assign_to, assign_by, status, call_at_from/to, etc., or filter (where, order, limit, offset). Returns total, limit, offset, and calls array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "number"
                    },
                    "limit": {
                      "type": "number"
                    },
                    "offset": {
                      "type": "number"
                    },
                    "calls": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number"
                          },
                          "dealId": {
                            "type": "number"
                          },
                          "customerId": {
                            "type": "number"
                          },
                          "contactPersonId": {
                            "type": "number"
                          },
                          "assignBy": {
                            "type": "number"
                          },
                          "assignTo": {
                            "type": "number"
                          },
                          "title": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "callAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "stageId": {
                            "type": "number"
                          },
                          "phoneNumber": {
                            "type": "string"
                          },
                          "phone": {
                            "type": "string"
                          },
                          "extension": {
                            "type": "string"
                          },
                          "countryCode": {
                            "type": "string"
                          },
                          "dialCode": {
                            "type": "string"
                          },
                          "feedback": {
                            "type": "string"
                          },
                          "feedbackRating": {
                            "type": "string"
                          },
                          "feedbackDuration": {
                            "type": "number"
                          },
                          "statusAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "closedAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "archivedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "assign_to",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "assign_by",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "created_at_from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "created_at_to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "call_at_from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "call_at_to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "automate_config_id",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "have_automate_config_id",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "deal_id",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/call.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "CallController.getCalls"
      }
    },
    "/customers/count": {
      "get": {
        "x-controller-name": "CustomerController",
        "x-operation-name": "count",
        "tags": [
          "CustomerController"
        ],
        "summary": "Count customers",
        "responses": {
          "200": {
            "description": "Count customers. Use filter (where) to narrow results.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "customers.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Customer>"
                }
              }
            }
          }
        ],
        "operationId": "CustomerController.count"
      }
    },
    "/customers/{source}/{refId}": {
      "patch": {
        "x-controller-name": "CustomerController",
        "x-operation-name": "updateBySourceAndRefId",
        "tags": [
          "CustomerController"
        ],
        "summary": "Update a customer by source and refId",
        "responses": {
          "204": {
            "description": "Update a customer by source and refId (partial). No response body."
          }
        },
        "parameters": [
          {
            "name": "source",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "description": "Customer source identifier (Customer.source)",
            "required": true
          },
          {
            "name": "refId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "description": "External reference ID (Customer.refId)",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewCustomer"
              },
              "example": {
                "name": "Updated via external reference",
                "note": "Synced from external system"
              }
            }
          },
          "description": "Partial customer fields to update when matched by source and refId.",
          "x-parameter-index": 2
        },
        "operationId": "CustomerController.updateBySourceAndRefId"
      }
    },
    "/customers/{id}": {
      "patch": {
        "x-controller-name": "CustomerController",
        "x-operation-name": "updateById",
        "tags": [
          "CustomerController"
        ],
        "summary": "Update a customer by ID",
        "responses": {
          "204": {
            "description": "Update a customer by ID (partial). No response body."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "description": "Customer ID",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerInputPartial"
              },
              "example": {
                "name": "Wisible Corporation (Updated)",
                "phoneInput": [
                  {
                    "id": 1,
                    "value": "021234567"
                  },
                  {
                    "value": "0898765432"
                  }
                ],
                "emailInput": [
                  {
                    "value": "contact@wisible.com"
                  }
                ],
                "customFieldInput": [
                  {
                    "name": "Industry",
                    "value": "Finance"
                  }
                ],
                "socialMediaInput": [
                  {
                    "socialMediaName": "linkedIn",
                    "url": "https://linkedin.com/company/wisible"
                  }
                ],
                "addressInput": [
                  {
                    "companyName": "Wisible HQ",
                    "address": "123 Main St",
                    "province": "Bangkok",
                    "postalCode": "10110"
                  }
                ],
                "organizationInfoInput": {
                  "taxId": "0123456789012",
                  "website": "https://wisible.com"
                }
              }
            }
          },
          "description": "Partial customer update. Only include fields to change. Omit nested arrays to leave them unchanged.",
          "x-parameter-index": 1
        },
        "operationId": "CustomerController.updateById"
      },
      "get": {
        "x-controller-name": "CustomerController",
        "x-operation-name": "findById",
        "tags": [
          "CustomerController"
        ],
        "summary": "Get a customer by ID",
        "responses": {
          "200": {
            "description": "Get a single customer by ID with custom fields.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerWithCustomFieldRespondWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "description": "Customer ID",
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/customers.Filter"
                }
              }
            }
          }
        ],
        "operationId": "CustomerController.findById"
      },
      "delete": {
        "x-controller-name": "CustomerController",
        "x-operation-name": "deleteById",
        "tags": [
          "CustomerController"
        ],
        "summary": "Delete a customer by ID",
        "responses": {
          "204": {
            "description": "Delete a customer by ID. No response body."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "description": "Customer ID",
            "required": true
          }
        ],
        "operationId": "CustomerController.deleteById"
      }
    },
    "/customers": {
      "post": {
        "x-controller-name": "CustomerController",
        "x-operation-name": "create",
        "tags": [
          "CustomerController"
        ],
        "summary": "Create a customer",
        "responses": {
          "200": {
            "description": "Create a customer. Returns the created customer.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewCustomer"
              },
              "example": {
                "name": "Wisible Corporation",
                "type": "organization",
                "phoneInput": [
                  "021234567",
                  "0812345678"
                ],
                "emailInput": [
                  "info@wisible.com",
                  "sales@wisible.com"
                ],
                "customFieldInput": [
                  {
                    "name": "Industry",
                    "value": "Technology"
                  },
                  {
                    "name": "Employees",
                    "value": "50-200"
                  }
                ],
                "socialMediaInput": [
                  {
                    "socialMediaName": "facebook",
                    "url": "https://facebook.com/wisible"
                  },
                  {
                    "socialMediaName": "linkedIn",
                    "url": "https://linkedin.com/company/wisible"
                  }
                ]
              }
            }
          },
          "description": "Customer creation payload with optional phones, emails, custom fields, and social media."
        },
        "operationId": "CustomerController.create"
      },
      "get": {
        "x-controller-name": "CustomerController",
        "x-operation-name": "find",
        "tags": [
          "CustomerController"
        ],
        "summary": "List customers",
        "responses": {
          "200": {
            "description": "List customers. Use filter (where, order, limit, offset) to sort and paginate.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/customers.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "CustomerController.find"
      }
    },
    "/deal/{id}/quotations": {
      "get": {
        "x-controller-name": "QuotationController",
        "x-operation-name": "find",
        "tags": [
          "QuotationController"
        ],
        "responses": {
          "200": {
            "description": "List quotations for a deal. Use deal id in path. Returns quotations with products.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/QuotationWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "QuotationController.find"
      }
    },
    "/deal/{id}": {
      "get": {
        "x-controller-name": "DealController",
        "x-operation-name": "findById",
        "tags": [
          "DealController"
        ],
        "summary": "Get a single deal by ID",
        "responses": {
          "200": {
            "description": "Get a single deal by ID. User must have permission to view the deal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DealWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "description": "Deal ID",
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/deals.Filter"
                }
              }
            }
          }
        ],
        "operationId": "DealController.findById"
      }
    },
    "/dealDynamicAction": {
      "post": {
        "x-controller-name": "DealDynamicActionController",
        "x-operation-name": "createDealDynamicAction",
        "tags": [
          "DealDynamicActionController"
        ],
        "summary": "create a deal dynamic action",
        "responses": {
          "200": {
            "description": "id of created deal dynamic action",
            "content": {
              "application/json": {
                "schema": {
                  "type": "number"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dealId": {
                    "type": "number"
                  },
                  "stageId": {
                    "type": "number"
                  }
                }
              }
            }
          }
        },
        "operationId": "DealDynamicActionController.createDealDynamicAction"
      }
    },
    "/dealMeeting/{id}": {
      "patch": {
        "x-controller-name": "DealMeetingController",
        "x-operation-name": "updateById",
        "tags": [
          "DealMeetingController"
        ],
        "responses": {
          "200": {
            "description": "Update a deal meeting via GraphQL updateDealMeeting. Body is partial DealMeetingInput. When omitted, start, end, dealId, customerId, and members are taken from the existing meeting; other fields are sent as provided. Response mirrors the mutation payload plus flat dealId / customerId for logging.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "title": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "start": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "end": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "allDay": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "string"
                    },
                    "deal": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number"
                        },
                        "name": {
                          "type": "string"
                        }
                      }
                    },
                    "customer": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number"
                        },
                        "name": {
                          "type": "string"
                        },
                        "profileImageUrl": {
                          "type": "string"
                        }
                      }
                    },
                    "dealId": {
                      "type": "number"
                    },
                    "customerId": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DealMeetingInputPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "DealMeetingController.updateById"
      },
      "get": {
        "x-controller-name": "DealMeetingController",
        "x-operation-name": "getMeetingById",
        "tags": [
          "DealMeetingController"
        ],
        "responses": {
          "200": {
            "description": "Get a single deal meeting by id from GraphQL. Returns the same shape as list items.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "title": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "start": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "end": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "allDay": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "string"
                    },
                    "overdue": {
                      "type": "boolean"
                    },
                    "wonNote": {
                      "type": "string"
                    },
                    "stars": {
                      "type": "number"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "checkInStatus": {
                      "type": "boolean"
                    },
                    "deal": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        }
                      }
                    },
                    "customer": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "profileImageUrl": {
                          "type": "string"
                        }
                      }
                    },
                    "location": {
                      "type": "object",
                      "properties": {
                        "lat": {
                          "type": "string"
                        },
                        "lng": {
                          "type": "string"
                        },
                        "mapUrl": {
                          "type": "string"
                        },
                        "address": {
                          "type": "string"
                        }
                      }
                    },
                    "members": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "imageUrl": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "createdBy": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "imageUrl": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Deal meeting not found"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "DealMeetingController.getMeetingById"
      },
      "delete": {
        "x-controller-name": "DealMeetingController",
        "x-operation-name": "deleteById",
        "tags": [
          "DealMeetingController"
        ],
        "responses": {
          "200": {
            "description": "Cancel a deal meeting via GraphQL. Returns the canceled meeting (nested deal and customer, plus flat dealId / customerId from the mutation payload).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "title": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "start": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "end": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "allDay": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "string"
                    },
                    "deal": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number"
                        },
                        "name": {
                          "type": "string"
                        }
                      }
                    },
                    "customer": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number"
                        },
                        "name": {
                          "type": "string"
                        },
                        "profileImageUrl": {
                          "type": "string"
                        }
                      }
                    },
                    "dealId": {
                      "type": "number"
                    },
                    "customerId": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "DealMeetingController.deleteById"
      }
    },
    "/dealMeeting": {
      "post": {
        "x-controller-name": "DealMeetingController",
        "x-operation-name": "create",
        "tags": [
          "DealMeetingController"
        ],
        "responses": {
          "200": {
            "description": "Create a deal meeting via GraphQL. Body: DealMeetingCreateInput (meetingInput, checklists, comments, labelIds, utcOffset). Returns the created meeting.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "title": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "start": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "end": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "allDay": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "string"
                    },
                    "dealId": {
                      "type": "number"
                    },
                    "customerId": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DealMeetingCreateInput"
              },
              "example": {
                "meetingInput": {
                  "dealId": 1,
                  "customerId": 2,
                  "title": "Project kickoff",
                  "note": "Discuss scope and timeline",
                  "start": "2025-03-15T09:00:00.000Z",
                  "end": "2025-03-15T10:00:00.000Z",
                  "allDay": false,
                  "memberIds": [
                    1,
                    2
                  ],
                  "guestIds": [],
                  "location": {
                    "lat": "13.7563",
                    "lng": "100.5018",
                    "mapUrl": "https://maps.example.com/...",
                    "address": "Bangkok, Thailand"
                  }
                },
                "checklists": [
                  {
                    "text": "Send agenda",
                    "type": "pre"
                  },
                  {
                    "text": "Prepare slides",
                    "type": "pre"
                  }
                ],
                "comments": [
                  {
                    "text": "Please confirm attendance",
                    "mentionUserIds": [
                      1
                    ]
                  }
                ],
                "labelIds": [
                  1,
                  2
                ],
                "utcOffset": 420
              }
            }
          }
        },
        "operationId": "DealMeetingController.create"
      },
      "get": {
        "x-controller-name": "DealMeetingController",
        "x-operation-name": "getMeetings",
        "tags": [
          "DealMeetingController"
        ],
        "responses": {
          "200": {
            "description": "List deal meetings with filters (dealId, status, fromDate, toDate, orderBy, orderDirection). Optional `status` filters the GraphQL list; create/update do not accept status on meeting input.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "number"
                      },
                      "title": {
                        "type": "string"
                      },
                      "note": {
                        "type": "string"
                      },
                      "start": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "end": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "allDay": {
                        "type": "boolean"
                      },
                      "status": {
                        "type": "string"
                      },
                      "overdue": {
                        "type": "boolean"
                      },
                      "wonNote": {
                        "type": "string"
                      },
                      "stars": {
                        "type": "number"
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "checkInStatus": {
                        "type": "boolean"
                      },
                      "deal": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          }
                        }
                      },
                      "customer": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "profileImageUrl": {
                            "type": "string"
                          }
                        }
                      },
                      "location": {
                        "type": "object",
                        "properties": {
                          "lat": {
                            "type": "string"
                          },
                          "lng": {
                            "type": "string"
                          },
                          "mapUrl": {
                            "type": "string"
                          },
                          "address": {
                            "type": "string"
                          }
                        }
                      },
                      "members": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "imageUrl": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "createdBy": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "imageUrl": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "dealId",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fromDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderDirection",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "DealMeetingController.getMeetings"
      }
    },
    "/deals/{dealId}/customField": {
      "patch": {
        "x-controller-name": "DealController",
        "x-operation-name": "updateCustomField",
        "tags": [
          "DealController"
        ],
        "summary": "Update deal custom fields",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "dealId",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "description": "Deal ID",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DealCustomFieldsInput"
                }
              },
              "example": [
                {
                  "name": "Lead source",
                  "value": "Referral"
                }
              ]
            }
          },
          "description": "Custom fields to upsert by name. Creates a new value if the field does not exist.",
          "x-parameter-index": 1
        },
        "operationId": "DealController.updateCustomField"
      }
    },
    "/deals/{dealId}/description": {
      "patch": {
        "x-controller-name": "DealController",
        "x-operation-name": "updateDescription",
        "tags": [
          "DealController"
        ],
        "summary": "Update deal description",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "dealId",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "description": "Deal ID",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              },
              "example": "Updated after quarterly review with the customer."
            }
          },
          "description": "Deal description text. Skips update if unchanged from the latest description.",
          "x-parameter-index": 1
        },
        "operationId": "DealController.updateDescription"
      }
    },
    "/deals/{dealId}/markAsWon": {
      "post": {
        "x-controller-name": "DealController",
        "x-operation-name": "markDealAsWon",
        "tags": [
          "DealController"
        ],
        "summary": "Mark deal as won",
        "responses": {
          "200": {
            "description": "deal",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Deal"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "dealId",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "description": "Deal ID",
            "required": true
          }
        ],
        "operationId": "DealController.markDealAsWon"
      }
    },
    "/deals/{id}/pipeline/{pipelineId}": {
      "post": {
        "x-controller-name": "DealController",
        "x-operation-name": "moveDealAcrossPipeline",
        "tags": [
          "DealController"
        ],
        "summary": "Move deal to another pipeline",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "pipelineId",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "stageId",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "description": "0 = auto select"
          },
          {
            "name": "ownerId",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "description": "0 = auto select"
          }
        ],
        "operationId": "DealController.moveDealAcrossPipeline"
      }
    },
    "/deals/{id}/salesStage/{stageId}": {
      "post": {
        "x-controller-name": "DealController",
        "x-operation-name": "updateDealSalesStage",
        "tags": [
          "DealController"
        ],
        "summary": "Update deal sales stage",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "description": "Deal ID",
            "required": true
          },
          {
            "name": "stageId",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "description": "Target sales stage ID",
            "required": true
          }
        ],
        "operationId": "DealController.updateDealSalesStage"
      }
    },
    "/deals/{id}": {
      "patch": {
        "x-controller-name": "DealController",
        "x-operation-name": "updateDeal",
        "tags": [
          "DealController"
        ],
        "summary": "Update a deal by ID",
        "responses": {
          "204": {
            "description": "Update a deal by ID. No response body. User must have edit permission."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "description": "Deal ID",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DealUpdateInput"
              },
              "example": {
                "dealDatabaseInput": {
                  "name": "Updated deal name",
                  "value": 150000,
                  "stageId": 2,
                  "closingDate": "2025-09-30T00:00:00.000Z"
                },
                "owner": 2,
                "members": [
                  1,
                  2,
                  3
                ],
                "labels": [
                  1
                ],
                "reason": "Customer requested changes",
                "description": "Updated after follow-up meeting"
              }
            }
          },
          "description": "Partial deal update. Only include fields to change. Some fields may require approval depending on organization settings.",
          "x-parameter-index": 1
        },
        "operationId": "DealController.updateDeal"
      }
    },
    "/deals": {
      "post": {
        "x-controller-name": "DealController",
        "x-operation-name": "createDeal",
        "tags": [
          "DealController"
        ],
        "summary": "Create a deal",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Deal"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DealInput"
              },
              "example": {
                "dealDatabaseInput": {
                  "name": "Wisible Corp deal",
                  "pipelineId": 1,
                  "stageId": 1,
                  "value": 100000,
                  "closingDate": "2025-06-30T00:00:00.000Z",
                  "customerId": 1
                },
                "description": "Initial discovery call completed",
                "owner": 1,
                "members": [
                  1,
                  2
                ],
                "labels": [
                  1,
                  2
                ],
                "noteInput": {
                  "text": "Customer interested in enterprise plan"
                },
                "products": [
                  {
                    "productId": 1,
                    "quantity": 2
                  },
                  {
                    "productId": 2,
                    "quantity": 1
                  }
                ],
                "dealCustomerContacts": [
                  {
                    "customer": {
                      "name": "Contact Person",
                      "phoneInput": [
                        "0812345678"
                      ],
                      "emailInput": [
                        "contact@example.com"
                      ]
                    },
                    "role": "decision_maker"
                  }
                ],
                "customField": [
                  {
                    "name": "Lead source",
                    "value": "Website"
                  }
                ]
              }
            }
          },
          "description": "Deal creation payload. Set owner to 0 to auto-select the deal owner (ordered by user ID ascending)."
        },
        "operationId": "DealController.createDeal"
      },
      "get": {
        "x-controller-name": "DealController",
        "x-operation-name": "getDeals",
        "tags": [
          "DealController"
        ],
        "summary": "List deals with filters",
        "responses": {
          "200": {
            "description": "List deals with filters (ids, name, status, pipeline, owner, customer, source, refId, dates, etc.). Returns total count and paginated deals.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "number"
                    },
                    "limit": {
                      "type": "number"
                    },
                    "offset": {
                      "type": "number"
                    },
                    "deals": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number"
                          },
                          "customerId": {
                            "type": "number"
                          },
                          "name": {
                            "type": "string"
                          },
                          "value": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "statusAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "closingDate": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "paymentFinish": {
                            "type": "boolean"
                          },
                          "refId": {
                            "type": "number"
                          },
                          "source": {
                            "type": "string"
                          },
                          "leadSourceId": {
                            "type": "number"
                          },
                          "confidenceLevel": {
                            "type": "number"
                          },
                          "deliveryCompletedDate": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "closedAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "archivedAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "pipeline": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "number"
                              },
                              "name": {
                                "type": "string"
                              }
                            }
                          },
                          "salesStage": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "number"
                              },
                              "name": {
                                "type": "string"
                              }
                            }
                          },
                          "wonQuotation": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "number"
                              },
                              "name": {
                                "type": "string"
                              }
                            }
                          },
                          "users": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "number"
                                },
                                "name": {
                                  "type": "string"
                                },
                                "email": {
                                  "type": "string"
                                }
                              }
                            }
                          },
                          "labels": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "number"
                                },
                                "name": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated deal IDs, e.g. 100,120"
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by deal name"
          },
          {
            "name": "deal_owner_email",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by deal owner email address"
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by deal status, e.g. doing, won, lost"
          },
          {
            "name": "archived_status",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Set to \"yes\" to include archived deals"
          },
          {
            "name": "pipeline_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by pipeline name"
          },
          {
            "name": "value_from",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "description": "Minimum deal value (inclusive)"
          },
          {
            "name": "value_to",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "description": "Maximum deal value (inclusive)"
          },
          {
            "name": "created_at_from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Filter deals created on or after this date"
          },
          {
            "name": "created_at_to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Filter deals created on or before this date"
          },
          {
            "name": "updated_at_from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Filter deals updated on or after this date"
          },
          {
            "name": "updated_at_to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Filter deals updated on or before this date"
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "description": "Maximum number of deals to return"
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "description": "Number of deals to skip for pagination"
          },
          {
            "name": "customer_id",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "description": "Filter by customer ID"
          },
          {
            "name": "source",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by deal source (Deal.source)"
          },
          {
            "name": "refId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by deal ref id (Deal.refId)"
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Optional deal sort. Use id_desc for newest first."
          }
        ],
        "operationId": "DealController.getDeals"
      }
    },
    "/displaySnackbar": {
      "post": {
        "x-controller-name": "UtilController",
        "x-operation-name": "displaySnackbar",
        "tags": [
          "UtilController"
        ],
        "responses": {
          "200": {
            "description": "Trigger a snackbar notification in the app. Body: message, type (default | success | info | error | warning).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean",
                  "example": true
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DisplaySnackbar"
              }
            }
          },
          "description": "Create a new DisplaySnackbar instance type default | success | info | error | warning",
          "required": true
        },
        "operationId": "UtilController.displaySnackbar"
      }
    },
    "/extension/auth/mint": {
      "post": {
        "x-controller-name": "ExtensionAuthController",
        "x-operation-name": "mint",
        "tags": [
          "ExtensionAuthController"
        ],
        "responses": {
          "200": {
            "description": "Return value of ExtensionAuthController.mint"
          }
        },
        "operationId": "ExtensionAuthController.mint"
      }
    },
    "/extension/auth/refresh": {
      "post": {
        "x-controller-name": "ExtensionAuthController",
        "x-operation-name": "refresh",
        "tags": [
          "ExtensionAuthController"
        ],
        "responses": {
          "200": {
            "description": "Return value of ExtensionAuthController.refresh"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "renewalToken"
                ],
                "properties": {
                  "renewalToken": {
                    "type": "string",
                    "maxLength": 4096
                  }
                }
              }
            }
          }
        },
        "operationId": "ExtensionAuthController.refresh"
      }
    },
    "/flow/confirmPlan": {
      "post": {
        "x-controller-name": "FlowController",
        "x-operation-name": "confirmPlan",
        "tags": [
          "FlowController"
        ],
        "summary": "confirm plans",
        "responses": {
          "200": {
            "description": "is confirm plans successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "number"
                  },
                  "startDate": {
                    "type": "string"
                  },
                  "dueDate": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "operationId": "FlowController.confirmPlan"
      }
    },
    "/flow/createPlan": {
      "post": {
        "x-controller-name": "FlowController",
        "x-operation-name": "createPlan",
        "tags": [
          "FlowController"
        ],
        "summary": "create a plan",
        "responses": {
          "200": {
            "description": "id of created plan",
            "content": {
              "application/json": {
                "schema": {
                  "type": "number"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "number"
                  },
                  "customerId": {
                    "type": "number"
                  },
                  "templateId": {
                    "type": "number"
                  }
                }
              }
            }
          }
        },
        "operationId": "FlowController.createPlan"
      }
    },
    "/getChanels": {
      "get": {
        "x-controller-name": "UtilController",
        "x-operation-name": "getChanels",
        "tags": [
          "UtilController"
        ],
        "responses": {
          "200": {
            "description": "Get all channels (e.g. for lead source or communication).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChannelResponse"
                  }
                }
              }
            }
          }
        },
        "operationId": "UtilController.getChanels"
      }
    },
    "/getChannels": {
      "get": {
        "x-controller-name": "UtilController",
        "x-operation-name": "getChannels",
        "tags": [
          "UtilController"
        ],
        "responses": {
          "200": {
            "description": "get all channels",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChannelResponse"
                  }
                }
              }
            }
          }
        },
        "operationId": "UtilController.getChannels"
      }
    },
    "/getDeliveryStages": {
      "get": {
        "x-controller-name": "UtilController",
        "x-operation-name": "getDeliveryStages",
        "tags": [
          "UtilController"
        ],
        "responses": {
          "200": {
            "description": "Get all delivery stages. Used for delivery workflow configuration.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DeliveryStagesResponse"
                  }
                }
              }
            }
          }
        },
        "operationId": "UtilController.getDeliveryStages"
      }
    },
    "/getLabels": {
      "get": {
        "x-controller-name": "UtilController",
        "x-operation-name": "getLabels",
        "tags": [
          "UtilController"
        ],
        "responses": {
          "200": {
            "description": "Get label groups and labels. Optionally filter by type, groupName, or name.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LabelGroupResponse"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groupName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "UtilController.getLabels"
      }
    },
    "/getListCustomer": {
      "get": {
        "x-controller-name": "CustomerController",
        "x-operation-name": "getListCustomer",
        "tags": [
          "CustomerController"
        ],
        "summary": "List customers with pagination",
        "responses": {
          "200": {
            "description": "Get a list of customers with optional filters. Returns paginated list.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "number"
                    },
                    "limit": {
                      "type": "number"
                    },
                    "offset": {
                      "type": "number"
                    },
                    "customers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number"
                          },
                          "name": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "emails": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "phones": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "relatedAccounts": {
                            "type": "array",
                            "items": {
                              "id": "number",
                              "name": "string",
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "description": "Number of customers to skip for pagination"
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "description": "Maximum number of customers to return (max 100)"
          }
        ],
        "operationId": "CustomerController.getListCustomer"
      }
    },
    "/getListDealCustomField": {
      "get": {
        "x-controller-name": "DealController",
        "x-operation-name": "getListDealCustomField",
        "tags": [
          "DealController"
        ],
        "summary": "Get deal custom field structures",
        "responses": {
          "200": {
            "description": "Get list of deal custom field structures and their options. Used for building deal forms.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DealCustomFieldStructureResponse"
                  }
                }
              }
            }
          }
        },
        "operationId": "DealController.getListDealCustomField"
      }
    },
    "/getPipelines": {
      "get": {
        "x-controller-name": "UtilController",
        "x-operation-name": "getPipeline",
        "tags": [
          "UtilController"
        ],
        "responses": {
          "200": {
            "description": "Get pipelines the current user can access. Returns pipelines with sales stages.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PipelineResponse"
                  }
                }
              }
            }
          }
        },
        "operationId": "UtilController.getPipeline"
      }
    },
    "/getProfileCustomer/{customerId}": {
      "get": {
        "x-controller-name": "CustomerController",
        "x-operation-name": "getProfileCustomer",
        "tags": [
          "CustomerController"
        ],
        "summary": "Get customer profile",
        "responses": {
          "200": {
            "description": "Get customer profile by customer ID. Returns profile details.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "email": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "phone": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "organizationInfo": {
                      "type": "object",
                      "properties": {
                        "industryType": {
                          "type": "string"
                        },
                        "businessObjective": {
                          "type": "string"
                        },
                        "taxId": {
                          "type": "string"
                        },
                        "branch": {
                          "type": "string"
                        },
                        "branchId": {
                          "type": "string"
                        },
                        "website": {
                          "type": "string"
                        }
                      }
                    },
                    "personInfo": {
                      "type": "object",
                      "properties": {
                        "nickname": {
                          "type": "string"
                        },
                        "citizenId": {
                          "type": "string"
                        },
                        "birthday": {
                          "type": "string"
                        }
                      }
                    },
                    "customerSocialMedias": {
                      "type": "array",
                      "items": {
                        "socialMediaName": "string",
                        "url": "string"
                      }
                    },
                    "addresses": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string"
                          },
                          "companyName": {
                            "type": "string"
                          },
                          "address": {
                            "type": "string"
                          },
                          "subdistrict": {
                            "type": "string"
                          },
                          "district": {
                            "type": "string"
                          },
                          "province": {
                            "type": "string"
                          },
                          "country": {
                            "type": "string"
                          },
                          "postalCode": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "relatedAccounts": {
                      "type": "array",
                      "items": {
                        "id": "number",
                        "name": "string",
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "description": "Customer ID",
            "required": true
          }
        ],
        "operationId": "CustomerController.getProfileCustomer"
      }
    },
    "/getSalesStages/{pipelineId}": {
      "get": {
        "x-controller-name": "UtilController",
        "x-operation-name": "getSalesStages",
        "tags": [
          "UtilController"
        ],
        "responses": {
          "200": {
            "description": "Get sales stages for a pipeline. Requires pipelineId in path.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalesStageResponse"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "pipelineId",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "UtilController.getSalesStages"
      }
    },
    "/getSearchCustomer": {
      "get": {
        "x-controller-name": "CustomerController",
        "x-operation-name": "getSearchCustomer",
        "tags": [
          "CustomerController"
        ],
        "summary": "Search customers",
        "responses": {
          "200": {
            "description": "Search customers by name, phone, email, or customer ID. Returns matching list.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "number"
                    },
                    "limit": {
                      "type": "number"
                    },
                    "offset": {
                      "type": "number"
                    },
                    "customers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number"
                          },
                          "name": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "emails": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "number"
                                },
                                "name": {
                                  "type": "string"
                                }
                              }
                            }
                          },
                          "phones": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "number"
                                },
                                "name": {
                                  "type": "string"
                                }
                              }
                            }
                          },
                          "customerSocialMedias": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "socialMediaName": {
                                  "type": "string"
                                },
                                "url": {
                                  "type": "string"
                                }
                              }
                            }
                          },
                          "relatedAccounts": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "number"
                                },
                                "name": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string"
                                }
                              }
                            }
                          },
                          "customFields": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "number"
                                },
                                "name": {
                                  "type": "string"
                                },
                                "value": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "description": "Number of customers to skip for pagination"
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "description": "Maximum number of customers to return (max 100)"
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Search by customer name"
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by customer type: person or organization"
          },
          {
            "name": "email",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Search by customer email"
          },
          {
            "name": "phone",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Search by customer phone number"
          },
          {
            "name": "refId",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by external reference ID (Customer.refId)"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "customField": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/CustomerCustomFieldsInput"
                    }
                  },
                  "socialMediaInput": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/CustomerSocialMediaInput"
                    }
                  }
                }
              },
              "example": {
                "customField": [
                  {
                    "name": "Industry",
                    "value": "Technology"
                  }
                ],
                "socialMediaInput": [
                  {
                    "socialMediaName": "facebook",
                    "url": "https://facebook.com/wisible"
                  }
                ]
              }
            }
          },
          "description": "Optional filters for custom fields and social media. Sent as JSON body on GET.",
          "required": false,
          "x-parameter-index": 7
        },
        "operationId": "CustomerController.getSearchCustomer"
      }
    },
    "/getUserFromPipeline": {
      "get": {
        "x-controller-name": "UtilController",
        "x-operation-name": "getUserFromPipeline",
        "tags": [
          "UtilController"
        ],
        "responses": {
          "200": {
            "description": "Get users assigned to a pipeline. Requires pipelineId query param. Returns pipeline with its members.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "number"
                      },
                      "pipelineName": {
                        "type": "string"
                      },
                      "users": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "number"
                            },
                            "name": {
                              "type": "string"
                            },
                            "email": {
                              "type": "string"
                            },
                            "role": {
                              "type": "string"
                            },
                            "active": {
                              "type": "boolean"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "pipelineId",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "UtilController.getUserFromPipeline"
      }
    },
    "/getUsers": {
      "get": {
        "x-controller-name": "UtilController",
        "x-operation-name": "getUser",
        "tags": [
          "UtilController"
        ],
        "responses": {
          "200": {
            "description": "Get users in the organization. Optionally filter by user id.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserResponse"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "UtilController.getUser"
      }
    },
    "/micro-app-deal-dynamic-action/deals/owner": {
      "get": {
        "x-controller-name": "MicroAppDealDynamicActionController",
        "x-operation-name": "getMyOwnedDeals",
        "tags": [
          "MicroAppDealDynamicActionController"
        ],
        "responses": {
          "200": {
            "description": "Deals where current user is owner and have dynamic actions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Deal"
                  }
                }
              }
            }
          }
        },
        "operationId": "MicroAppDealDynamicActionController.getMyOwnedDeals"
      }
    },
    "/micro-app-deal-dynamic-action/deals/{dealId}/dynamicActions": {
      "get": {
        "x-controller-name": "MicroAppDealDynamicActionController",
        "x-operation-name": "getDealDynamicActions",
        "tags": [
          "MicroAppDealDynamicActionController"
        ],
        "responses": {
          "200": {
            "description": "Deal dynamic actions JSON for deal (current stage if present)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "dealId",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "MicroAppDealDynamicActionController.getDealDynamicActions"
      }
    },
    "/micro-app-deal-dynamic-action/dynamicActions/{dynamicActionId}/done": {
      "post": {
        "x-controller-name": "MicroAppDealDynamicActionController",
        "x-operation-name": "doneDynamicAction",
        "tags": [
          "MicroAppDealDynamicActionController"
        ],
        "responses": {
          "200": {
            "description": "Mark a dynamic action item as done and execute nextAction if configured",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "dynamicActionId",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "key"
                ],
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "data": {
                    "type": "object"
                  },
                  "editData": {
                    "type": "object"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "MicroAppDealDynamicActionController.doneDynamicAction"
      }
    },
    "/micro-app2/sample/enabled": {
      "get": {
        "x-controller-name": "SampleController",
        "x-operation-name": "getSampleEnabled",
        "tags": [
          "SampleController"
        ],
        "summary": "Whether the demonstration-sample feature is enabled for this org (ENABLED_SAMPLE).",
        "responses": {
          "200": {
            "description": "Sample feature flag",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "SampleController.getSampleEnabled"
      }
    },
    "/micro-app2/sample/{id}/comment": {
      "post": {
        "x-controller-name": "SampleController",
        "x-operation-name": "addSampleComment",
        "tags": [
          "SampleController"
        ],
        "summary": "Add a text comment to a sample",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SampleController.addSampleComment"
      }
    },
    "/micro-app2/sample/{id}/competitor-insight": {
      "post": {
        "x-controller-name": "SampleController",
        "x-operation-name": "addSampleCompetitorInsight",
        "tags": [
          "SampleController"
        ],
        "summary": "Add a competitor insight to a sample",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SampleController.addSampleCompetitorInsight"
      }
    },
    "/micro-app2/sample/{id}/product": {
      "post": {
        "x-controller-name": "SampleController",
        "x-operation-name": "addSampleProduct",
        "tags": [
          "SampleController"
        ],
        "summary": "Add a product line to a sample",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SampleController.addSampleProduct"
      }
    },
    "/micro-app2/sample/{id}/stage": {
      "post": {
        "x-controller-name": "SampleController",
        "x-operation-name": "moveSampleStage",
        "tags": [
          "SampleController"
        ],
        "summary": "Move a sample to a pipeline stage. Entering the \"testing\" stage schedules a 7-day follow-up task.",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SampleController.moveSampleStage"
      }
    },
    "/micro-app2/sample/{id}": {
      "patch": {
        "x-controller-name": "SampleController",
        "x-operation-name": "updateSample",
        "tags": [
          "SampleController"
        ],
        "summary": "Update a demonstration sample (product lines are managed separately)",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SampleController.updateSample"
      },
      "get": {
        "x-controller-name": "SampleController",
        "x-operation-name": "getSampleById",
        "tags": [
          "SampleController"
        ],
        "summary": "Get a demonstration sample by id",
        "responses": {
          "200": {
            "description": "Sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "SampleController.getSampleById"
      }
    },
    "/micro-app2/sample-competitor-insight/{id}/file/remove": {
      "post": {
        "x-controller-name": "SampleController",
        "x-operation-name": "removeSampleCompetitorInsightPhoto",
        "tags": [
          "SampleController"
        ],
        "summary": "Remove a file from a competitor insight",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SampleController.removeSampleCompetitorInsightPhoto"
      }
    },
    "/micro-app2/sample-competitor-insight/{id}/files": {
      "post": {
        "x-controller-name": "SampleController",
        "x-operation-name": "uploadSampleCompetitorInsightPhotos",
        "tags": [
          "SampleController"
        ],
        "summary": "Upload one or more files to a competitor insight",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "files": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "binary"
                    }
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SampleController.uploadSampleCompetitorInsightPhotos"
      }
    },
    "/micro-app2/sample-competitor-insight/{id}/remove": {
      "post": {
        "x-controller-name": "SampleController",
        "x-operation-name": "removeSampleCompetitorInsight",
        "tags": [
          "SampleController"
        ],
        "summary": "Remove a competitor insight from its sample",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "SampleController.removeSampleCompetitorInsight"
      }
    },
    "/micro-app2/sample-competitor-insight/{id}": {
      "patch": {
        "x-controller-name": "SampleController",
        "x-operation-name": "updateSampleCompetitorInsight",
        "tags": [
          "SampleController"
        ],
        "summary": "Update a competitor insight",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SampleController.updateSampleCompetitorInsight"
      }
    },
    "/micro-app2/sample-product/{id}/file/remove": {
      "post": {
        "x-controller-name": "SampleController",
        "x-operation-name": "removeSampleProductPhoto",
        "tags": [
          "SampleController"
        ],
        "summary": "Remove a file from a product line",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SampleController.removeSampleProductPhoto"
      }
    },
    "/micro-app2/sample-product/{id}/files": {
      "post": {
        "x-controller-name": "SampleController",
        "x-operation-name": "uploadSampleProductPhotos",
        "tags": [
          "SampleController"
        ],
        "summary": "Upload one or more files to a product line",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "files": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "binary"
                    }
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SampleController.uploadSampleProductPhotos"
      }
    },
    "/micro-app2/sample-product/{id}/remove": {
      "post": {
        "x-controller-name": "SampleController",
        "x-operation-name": "removeSampleProduct",
        "tags": [
          "SampleController"
        ],
        "summary": "Remove a product line from its sample",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "SampleController.removeSampleProduct"
      }
    },
    "/micro-app2/sample-product/{id}/result": {
      "post": {
        "x-controller-name": "SampleController",
        "x-operation-name": "setSampleProductResult",
        "tags": [
          "SampleController"
        ],
        "summary": "Record the lab-test result (passed/failed) for one product line",
        "responses": {
          "200": {
            "description": "Updated sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "SampleController.setSampleProductResult"
      }
    },
    "/micro-app2/sampleCount": {
      "get": {
        "x-controller-name": "SampleController",
        "x-operation-name": "getSampleCount",
        "tags": [
          "SampleController"
        ],
        "summary": "Sample counts per pipeline stage",
        "responses": {
          "200": {
            "description": "Sample counts",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "dealId",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "assignToUserIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          {
            "name": "viewAll",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "operationId": "SampleController.getSampleCount"
      }
    },
    "/micro-app2/sampleStages": {
      "get": {
        "x-controller-name": "SampleController",
        "x-operation-name": "getSampleStages",
        "tags": [
          "SampleController"
        ],
        "summary": "List the configurable sample pipeline stages, ordered by position",
        "responses": {
          "200": {
            "description": "Sample stages",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array"
                }
              }
            }
          }
        },
        "operationId": "SampleController.getSampleStages"
      }
    },
    "/micro-app2/samples": {
      "post": {
        "x-controller-name": "SampleController",
        "x-operation-name": "createSample",
        "tags": [
          "SampleController"
        ],
        "summary": "Create a demonstration sample with one or more product lines",
        "responses": {
          "200": {
            "description": "Created sample detail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "SampleController.createSample"
      },
      "get": {
        "x-controller-name": "SampleController",
        "x-operation-name": "getSamples",
        "tags": [
          "SampleController"
        ],
        "summary": "List demonstration samples visible to the current user",
        "responses": {
          "200": {
            "description": "Sample list with deal/customer/product/stage relations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "dealId",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "stageId",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "assignToUserIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          {
            "name": "viewAll",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "operationId": "SampleController.getSamples"
      }
    },
    "/organizationConfig/action/{action}": {
      "get": {
        "x-controller-name": "OrganizationConfigController",
        "x-operation-name": "findByAction",
        "tags": [
          "OrganizationConfigController"
        ],
        "responses": {
          "200": {
            "description": "Get organization configuration by action name. Use action in path (e.g. DEAL_VIEW).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "action",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OrganizationConfigController.findByAction"
      }
    },
    "/pim-ai/query": {
      "post": {
        "x-controller-name": "PimAiController",
        "x-operation-name": "query",
        "tags": [
          "PimAiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "RAG query"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "PimAiController.query"
      }
    },
    "/pim-ai/sources/{id}/resync": {
      "post": {
        "x-controller-name": "PimAiController",
        "x-operation-name": "resync",
        "tags": [
          "PimAiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Re-run ingestion for a source"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "PimAiController.resync"
      }
    },
    "/pim-ai/sources/{id}": {
      "get": {
        "x-controller-name": "PimAiController",
        "x-operation-name": "getSource",
        "tags": [
          "PimAiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Source detail"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "PimAiController.getSource"
      },
      "delete": {
        "x-controller-name": "PimAiController",
        "x-operation-name": "deleteSource",
        "tags": [
          "PimAiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete a source and its chunks"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "PimAiController.deleteSource"
      }
    },
    "/pim-ai/sources": {
      "post": {
        "x-controller-name": "PimAiController",
        "x-operation-name": "createSource",
        "tags": [
          "PimAiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Create an ingestion source"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "PimAiController.createSource"
      },
      "get": {
        "x-controller-name": "PimAiController",
        "x-operation-name": "listSources",
        "tags": [
          "PimAiController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "List sources with statuses"
                }
              }
            }
          }
        },
        "operationId": "PimAiController.listSources"
      }
    },
    "/pipelines/{id}/pipeline-members": {
      "get": {
        "x-controller-name": "PipelinePipelineMemberController",
        "x-operation-name": "find",
        "tags": [
          "PipelinePipelineMemberController"
        ],
        "responses": {
          "200": {
            "description": "Array of Pipeline has many PipelineMember",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PipelineMember"
                  }
                }
              }
            }
          }
        },
        "x-visibility": "documented",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/pipeline_member.Filter"
                }
              }
            }
          }
        ],
        "operationId": "PipelinePipelineMemberController.find"
      }
    },
    "/productCategories/{id}": {
      "patch": {
        "x-controller-name": "ProductCategoryController",
        "x-operation-name": "updateById",
        "tags": [
          "ProductCategoryController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Product category PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductCategoryPartialExcluding_id-archivedAt-archivedBy-createdAt-createdBy-parentCategoryId-remark-updatedAt-updatedBy_"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ProductCategoryController.updateById"
      }
    },
    "/productCategories": {
      "post": {
        "x-controller-name": "ProductCategoryController",
        "x-operation-name": "createProductCategories",
        "tags": [
          "ProductCategoryController"
        ],
        "responses": {
          "200": {
            "description": "Product category model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategory"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewProductCategory"
              }
            }
          }
        },
        "operationId": "ProductCategoryController.createProductCategories"
      },
      "get": {
        "x-controller-name": "ProductCategoryController",
        "x-operation-name": "findCat",
        "tags": [
          "ProductCategoryController"
        ],
        "responses": {
          "200": {
            "description": "Array of product category",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "number"
                    },
                    "limit": {
                      "type": "number"
                    },
                    "offset": {
                      "type": "number"
                    },
                    "categories": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ProductCategoryExcluding_archivedAt-archivedBy-createdAt-createdBy-parentCategoryId-remark-updatedAt-updatedBy_"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "ProductCategoryController.findCat"
      }
    },
    "/productSubcategories": {
      "post": {
        "x-controller-name": "ProductCategoryController",
        "x-operation-name": "createProductSubcategories",
        "tags": [
          "ProductCategoryController"
        ],
        "responses": {
          "200": {
            "description": "Product subcategory model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductCategory"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "parentCategoryId": {
                    "type": "number"
                  }
                },
                "required": [
                  "parentCategoryId"
                ]
              }
            }
          }
        },
        "operationId": "ProductCategoryController.createProductSubcategories"
      },
      "get": {
        "x-controller-name": "ProductCategoryController",
        "x-operation-name": "findSubcat",
        "tags": [
          "ProductCategoryController"
        ],
        "responses": {
          "200": {
            "description": "Array of product subcategory",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "number"
                    },
                    "limit": {
                      "type": "number"
                    },
                    "offset": {
                      "type": "number"
                    },
                    "subcategories": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ProductCategoryExcluding_archivedAt-archivedBy-createdAt-createdBy-parentCategoryId-remark-updatedAt-updatedBy_"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "operationId": "ProductCategoryController.findSubcat"
      }
    },
    "/products/count": {
      "get": {
        "x-controller-name": "ProductController",
        "x-operation-name": "count",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "200": {
            "description": "Count products. Use filter (where) to narrow results.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sku",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ProductController.count"
      }
    },
    "/products/{source}/{refId}": {
      "patch": {
        "x-controller-name": "ProductController",
        "x-operation-name": "updateBySourceAndRefId",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update a product by source and refId (partial). No response body."
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "source",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "refId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewProduct"
              }
            }
          },
          "x-parameter-index": 2
        },
        "operationId": "ProductController.updateBySourceAndRefId"
      }
    },
    "/products/{id}": {
      "put": {
        "x-controller-name": "ProductController",
        "x-operation-name": "replaceById",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Replace a product by ID (full). No response body."
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Product"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ProductController.replaceById"
      },
      "patch": {
        "x-controller-name": "ProductController",
        "x-operation-name": "updateById",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Update a product by ID (partial). No response body."
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "ProductController.updateById"
      },
      "get": {
        "x-controller-name": "ProductController",
        "x-operation-name": "findById",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "200": {
            "description": "Get a single product by ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "ProductController.findById"
      },
      "delete": {
        "x-controller-name": "ProductController",
        "x-operation-name": "deleteById",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete a product by ID. No response body."
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "ProductController.deleteById"
      }
    },
    "/products": {
      "post": {
        "x-controller-name": "ProductController",
        "x-operation-name": "create",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "200": {
            "description": "Create a product. Returns the created product.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewProduct"
              }
            }
          }
        },
        "operationId": "ProductController.create"
      },
      "patch": {
        "x-controller-name": "ProductController",
        "x-operation-name": "updateAll",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "200": {
            "description": "Update multiple products matching the where filter. Returns how many were updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "products.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Product>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductPartial"
              }
            }
          }
        },
        "operationId": "ProductController.updateAll"
      },
      "get": {
        "x-controller-name": "ProductController",
        "x-operation-name": "find",
        "tags": [
          "ProductController"
        ],
        "responses": {
          "200": {
            "description": "List products. Use filter (where, order, limit, offset) to sort and paginate.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sku",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ProductController.find"
      }
    },
    "/quotation/{id}": {
      "get": {
        "x-controller-name": "QuotationController",
        "x-operation-name": "findById",
        "tags": [
          "QuotationController"
        ],
        "responses": {
          "200": {
            "description": "Get a single quotation by ID. Returns quotation with product line items.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuotationWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "QuotationController.findById"
      }
    },
    "/v4/deal/v4_customers": {
      "post": {
        "x-controller-name": "CustomerV4Controller",
        "x-operation-name": "createCustomer",
        "tags": [
          "CustomerV4Controller"
        ],
        "summary": "Create a customer",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V4CustomerInput"
              }
            }
          },
          "description": "Customer creation payload. "
        },
        "operationId": "CustomerV4Controller.createCustomer"
      }
    },
    "/v4/deal/v4_deals": {
      "post": {
        "x-controller-name": "DealV4Controller",
        "x-operation-name": "createDeal",
        "tags": [
          "DealV4Controller"
        ],
        "summary": "Create a deal",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V4CreateDealInput"
              }
            }
          },
          "description": "Deal creation payload. "
        },
        "operationId": "DealV4Controller.createDeal"
      }
    },
    "/visit/{id}/checkin": {
      "post": {
        "x-controller-name": "VisitController",
        "x-operation-name": "checkinById",
        "tags": [
          "VisitController"
        ],
        "responses": {
          "200": {
            "description": "Checkin visit via GraphQL checkinVisit(id, checkinInput, comment).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitPlan"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "checkinInput"
                ],
                "properties": {
                  "checkinInput": {
                    "$ref": "#/components/schemas/VisitCheckinInput"
                  },
                  "comment": {
                    "$ref": "#/components/schemas/TodoCommentInput"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "VisitController.checkinById"
      }
    },
    "/visit/{id}/checkout": {
      "post": {
        "x-controller-name": "VisitController",
        "x-operation-name": "checkoutById",
        "tags": [
          "VisitController"
        ],
        "responses": {
          "200": {
            "description": "Checkout visit via GraphQL checkoutVisit(id, checkoutInput, comment).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitPlan"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "checkoutInput"
                ],
                "properties": {
                  "checkoutInput": {
                    "$ref": "#/components/schemas/VisitCheckinInput"
                  },
                  "comment": {
                    "$ref": "#/components/schemas/TodoCommentInput"
                  }
                }
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "VisitController.checkoutById"
      }
    },
    "/visit/{id}/done": {
      "post": {
        "x-controller-name": "VisitController",
        "x-operation-name": "markAsDoneById",
        "tags": [
          "VisitController"
        ],
        "responses": {
          "200": {
            "description": "Complete visit via GraphQL markAsDoneVisit(id).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitPlan"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "VisitController.markAsDoneById"
      }
    },
    "/visit/{id}": {
      "patch": {
        "x-controller-name": "VisitController",
        "x-operation-name": "updateById",
        "tags": [
          "VisitController"
        ],
        "responses": {
          "200": {
            "description": "Update visit via GraphQL updateVisit(id, visitInput).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitPlan"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VisitUpdateInput"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "VisitController.updateById"
      },
      "get": {
        "x-controller-name": "VisitController",
        "x-operation-name": "findById",
        "tags": [
          "VisitController"
        ],
        "responses": {
          "200": {
            "description": "Get a visit by ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitPlanWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "VisitController.findById"
      },
      "delete": {
        "x-controller-name": "VisitController",
        "x-operation-name": "deleteById",
        "tags": [
          "VisitController"
        ],
        "responses": {
          "200": {
            "description": "Cancel visit via GraphQL markAsCanceledVisit(id).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitPlan"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "number"
            },
            "required": true
          }
        ],
        "operationId": "VisitController.deleteById"
      }
    },
    "/visit": {
      "post": {
        "x-controller-name": "VisitController",
        "x-operation-name": "create",
        "tags": [
          "VisitController"
        ],
        "responses": {
          "200": {
            "description": "Create visit via GraphQL createVisit(visitInput, checklists, comments, labelIds).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VisitPlan"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VisitCreateInput"
              }
            }
          }
        },
        "operationId": "VisitController.create"
      },
      "get": {
        "x-controller-name": "VisitController",
        "x-operation-name": "find",
        "tags": [
          "VisitController"
        ],
        "responses": {
          "200": {
            "description": "List all visits.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VisitPlanWithRelations"
                  }
                }
              }
            }
          }
        },
        "operationId": "VisitController.find"
      }
    },
    "/x-agent/approval/apply": {
      "post": {
        "x-controller-name": "ConversationController",
        "x-operation-name": "apply",
        "tags": [
          "ConversationController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "apply the CRM writes a human approved"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ConversationController.apply"
      }
    },
    "/x-agent/approval/reject": {
      "post": {
        "x-controller-name": "ConversationController",
        "x-operation-name": "reject",
        "tags": [
          "ConversationController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "close the proposal a human rejected"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ConversationController.reject"
      }
    },
    "/x-agent/conversation/decide": {
      "post": {
        "x-controller-name": "ConversationController",
        "x-operation-name": "decide",
        "tags": [
          "ConversationController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "what one synced email should do to the CRM"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "ConversationController.decide"
      }
    },
    "/x-chat/email/apply": {
      "post": {
        "x-controller-name": "EmailDecideController",
        "x-operation-name": "apply",
        "tags": [
          "EmailDecideController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "apply the CRM writes a human approved"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "EmailDecideController.apply"
      }
    },
    "/x-chat/email/decide": {
      "post": {
        "x-controller-name": "EmailDecideController",
        "x-operation-name": "decide",
        "tags": [
          "EmailDecideController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "what one synced email should do to the CRM"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "EmailDecideController.decide"
      }
    },
    "/x-revenue-leak/report": {
      "post": {
        "x-controller-name": "RevenueLeakController",
        "x-operation-name": "report",
        "tags": [
          "RevenueLeakController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Generate a revenue leak report from form answers"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "RevenueLeakController.report"
      }
    }
  },
  "security": [
    {
      "apiKey": [],
      "jwt": []
    }
  ],
  "components": {
    "securitySchemes": {
      "apiKey": {
        "type": "apiKey",
        "name": "x-api-key",
        "in": "header"
      },
      "jwt": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "Product_for_Learn": {
        "title": "Product_for_Learn",
        "type": "object",
        "description": "(tsType: Omit<Product, 'createdAt' | 'createdBy' | 'updatedAt' | 'updatedBy' | 'archivedAt' | 'archivedBy'>, schemaOptions: { exclude: [ 'createdAt', 'createdBy', 'updatedAt', 'updatedBy', 'archivedAt', 'archivedBy' ], title: 'Product_for_Learn' })",
        "properties": {
          "ref": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "unit_type": {
            "type": "string"
          },
          "sell_price": {
            "type": "number"
          }
        },
        "required": [
          "sku",
          "name",
          "sell_price"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Product, 'createdAt' | 'createdBy' | 'updatedAt' | 'updatedBy' | 'archivedAt' | 'archivedBy'>"
      },
      "NewProduct_for_Learn": {
        "title": "NewProduct_for_Learn",
        "type": "object",
        "description": "(tsType: Omit<Product, 'createdAt' | 'createdBy' | 'updatedAt' | 'updatedBy' | 'archivedAt' | 'archivedBy' | 'ref'>, schemaOptions: { title: 'NewProduct_for_Learn', exclude: [ 'createdAt', 'createdBy', 'updatedAt', 'updatedBy', 'archivedAt', 'archivedBy', 'ref' ] })",
        "properties": {
          "sku": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "unit_type": {
            "type": "string"
          },
          "sell_price": {
            "type": "number"
          }
        },
        "required": [
          "sku",
          "name",
          "sell_price"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Product, 'createdAt' | 'createdBy' | 'updatedAt' | 'updatedBy' | 'archivedAt' | 'archivedBy' | 'ref'>"
      },
      "ProductOptional_sku-name-description-sell_price-unit_type_Excluding_createdAt-createdBy-updatedAt-updatedBy-archivedAt-archivedBy_": {
        "title": "ProductOptional_sku-name-description-sell_price-unit_type_Excluding_createdAt-createdBy-updatedAt-updatedBy-archivedAt-archivedBy_",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<Product, 'createdAt' | 'createdBy' | 'updatedAt' | 'updatedBy' | 'archivedAt' | 'archivedBy'>, 'sku' | 'name' | 'description' | 'sell_price' | 'unit_type'>, schemaOptions: { exclude: [ 'createdAt', 'createdBy', 'updatedAt', 'updatedBy', 'archivedAt', 'archivedBy' ], optional: [ 'sku', 'name', 'description', 'sell_price', 'unit_type' ] })",
        "properties": {
          "ref": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "unit_type": {
            "type": "string"
          },
          "sell_price": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<Product, 'createdAt' | 'createdBy' | 'updatedAt' | 'updatedBy' | 'archivedAt' | 'archivedBy'>, 'sku' | 'name' | 'description' | 'sell_price' | 'unit_type'>"
      },
      "Product": {
        "title": "Product",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "imageFileId": {
            "type": "number"
          },
          "categoryId": {
            "type": "number"
          },
          "unitType": {
            "type": "string"
          },
          "unitTypeTh": {
            "type": "string"
          },
          "vat": {
            "type": "string"
          },
          "priceBeforeVat": {
            "type": "number"
          },
          "sellPrice": {
            "type": "number"
          },
          "availableStock": {
            "type": "number"
          },
          "forecastSales": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "sku",
          "name",
          "sellPrice"
        ],
        "additionalProperties": false
      },
      "RequestContext": {},
      "ContextUser": {},
      "UserDetailRepository": {},
      "OrganizationRepository": {},
      "CustomerSocialMedia": {
        "title": "CustomerSocialMedia",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "socialMediaName": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Account": {
        "title": "Account",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "firstName": {
            "type": "string",
            "minLength": 1
          },
          "lastName": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "customerSocialMedias": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerSocialMedia"
            }
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "firstName"
        ],
        "additionalProperties": false
      },
      "CustomerController": {},
      "DropdownItem": {
        "title": "DropdownItem",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "PipelineRepository": {},
      "PipelineController": {},
      "CreateDealResult": {
        "title": "CreateDealResult",
        "type": "object",
        "properties": {
          "dealDetailUrl": {
            "type": "string"
          },
          "dealId": {
            "type": "number"
          }
        },
        "required": [
          "dealDetailUrl"
        ],
        "additionalProperties": false
      },
      "ZapierCreateDeal": {
        "title": "ZapierCreateDeal",
        "type": "object",
        "properties": {
          "pipelineId": {
            "type": "number"
          },
          "customerName": {
            "type": "string"
          },
          "customerType": {
            "type": "string",
            "enum": [
              "company",
              "organization",
              "organisation",
              "บริษัท",
              "องค์กร",
              "นิติบุคคล",
              "person",
              "retail",
              "individual",
              "บุคคล"
            ]
          },
          "customerContactName": {
            "type": "string"
          },
          "phones": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "emails": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "value": {
            "type": "number"
          },
          "note": {
            "type": "string"
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "pipelineId",
          "customerType"
        ],
        "additionalProperties": false
      },
      "DealRepository": {},
      "DealUserRepository": {},
      "SalesStageRepository": {},
      "CustomerRepository": {},
      "CustomerJobRepository": {},
      "ActivityNoteRepository": {},
      "ActivityRepository": {},
      "LabelRepository": {},
      "DealLabelRepository": {},
      "OrganizationConfigRepository": {},
      "LabelGroupMappingRepository": {},
      "CreateAccount": {
        "title": "CreateAccount",
        "type": "object",
        "description": "(tsType: Omit<Account, 'id'>, schemaOptions: { title: 'CreateAccount', exclude: [ 'id' ] })",
        "properties": {
          "firstName": {
            "type": "string",
            "minLength": 1
          },
          "lastName": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "customerSocialMedias": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerSocialMedia"
            }
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "firstName"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Account, 'id'>"
      },
      "Organization": {
        "title": "Organization",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "User": {
        "title": "User",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "organization": {
            "$ref": "#/components/schemas/Organization"
          },
          "imageUrl": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Login": {
        "title": "Login",
        "type": "object",
        "properties": {
          "token": {
            "type": "string"
          },
          "refreshToken": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "user": {
            "$ref": "#/components/schemas/User"
          }
        },
        "additionalProperties": false
      },
      "LoginInput": {
        "title": "LoginInput",
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "authGoogle": {
            "type": "string"
          },
          "authLine": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UserOrganization": {
        "title": "UserOrganization",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "subDomain": {
            "type": "string"
          },
          "appEndpoint": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "plan": {
            "type": "string"
          },
          "day": {
            "type": "number"
          },
          "active": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UserJWT": {},
      "authenticateToOrganization": {
        "title": "authenticateToOrganization",
        "type": "object",
        "description": "(tsType: OrganizationKey, schemaOptions: { title: 'authenticateToOrganization' })",
        "properties": {
          "token": {
            "type": "string"
          },
          "refreshToken": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "OrganizationKey"
      },
      "Descriptions": {
        "title": "Descriptions",
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "DescriptionsHistory": {
        "title": "DescriptionsHistory",
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "createdBy": {
            "$ref": "#/components/schemas/User"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Deal": {
        "title": "Deal",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "number"
          },
          "wonQuotationId": {
            "type": "number"
          },
          "pos": {
            "type": "number"
          },
          "pin": {
            "type": "boolean"
          },
          "closingDate": {
            "type": "string",
            "format": "date-time"
          },
          "estDeliveryDate": {
            "type": "string",
            "format": "date-time"
          },
          "pipelineId": {
            "type": "number"
          },
          "stageId": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "statusAt": {
            "type": "string",
            "format": "date-time"
          },
          "paymentFinish": {
            "type": "boolean"
          },
          "channelId": {
            "type": "number"
          },
          "refId": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "leadSourceId": {
            "type": "number"
          },
          "referralToUserId": {
            "type": "number"
          },
          "referralToPipelineId": {
            "type": "number"
          },
          "isReferralAccepted": {
            "type": "boolean"
          },
          "confidenceLevel": {
            "type": "number"
          },
          "deliveryCompletedDate": {
            "type": "string",
            "format": "date-time"
          },
          "explanation": {
            "type": "string"
          },
          "closedAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "pipelineId"
        ],
        "additionalProperties": false
      },
      "ActivityTask": {
        "title": "ActivityTask",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "dealId": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "state": {
            "type": "string",
            "enum": [
              "added",
              "done",
              "canceled"
            ]
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "stageId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "feedback": {
            "type": "string"
          },
          "workflowConfigId": {
            "type": "number"
          },
          "automateConfigId": {
            "type": "number"
          },
          "hide": {
            "type": "boolean"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "state"
        ],
        "additionalProperties": false
      },
      "Date": {},
      "Quotation": {
        "title": "Quotation",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "pdfLink": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ActivityRequestApprovals": {
        "title": "ActivityRequestApprovals",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "oldData": {
            "type": "string"
          },
          "newData": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "$ref": "#/components/schemas/User"
          },
          "deal": {
            "$ref": "#/components/schemas/Deal"
          },
          "approvedBy": {
            "$ref": "#/components/schemas/User"
          },
          "quotation": {
            "$ref": "#/components/schemas/Quotation"
          },
          "approvedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Customer": {
        "title": "Customer",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "string"
          },
          "relatedToUserId": {
            "type": "number"
          },
          "type": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ],
            "description": "Customer type: person or organization"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Customer display name"
          },
          "hashAlphabet": {
            "type": "string"
          },
          "profileImageUrl": {
            "type": "string"
          },
          "profileImageId": {
            "type": "number"
          },
          "taxId": {
            "type": "string"
          },
          "industry": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "noteCreatedBy": {
            "type": "number"
          },
          "noteCreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "segment": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "jobTitle": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "segmentEndUserId": {
            "type": "string"
          },
          "creditNote": {
            "type": "string"
          },
          "accountReceivableBalance": {
            "type": "string"
          },
          "priorityValue": {
            "type": "number"
          },
          "buyingCircle": {
            "type": "number"
          },
          "lastWonDate": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "Guest": {
        "title": "Guest",
        "type": "object",
        "properties": {
          "customer": {
            "$ref": "#/components/schemas/Customer"
          },
          "email": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Location": {
        "title": "Location",
        "type": "object",
        "properties": {
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "mapUrl": {
            "type": "string"
          },
          "address": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CheckinLocation": {
        "title": "CheckinLocation",
        "type": "object",
        "properties": {
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "DealMeetings": {
        "title": "DealMeetings",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "format": "date-time"
          },
          "allDay": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "overdue": {
            "type": "boolean"
          },
          "wonNote": {
            "type": "string"
          },
          "stars": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "checkInStatus": {
            "type": "boolean"
          },
          "deal": {
            "$ref": "#/components/schemas/Deal"
          },
          "guests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Guest"
            }
          },
          "customer": {
            "$ref": "#/components/schemas/Customer"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          },
          "createdBy": {
            "$ref": "#/components/schemas/User"
          },
          "checkinLocation": {
            "$ref": "#/components/schemas/CheckinLocation"
          }
        },
        "additionalProperties": false
      },
      "Note": {
        "title": "Note",
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Comment": {
        "title": "Comment",
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Notifications": {
        "title": "Notifications",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "message": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "read": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "$ref": "#/components/schemas/User"
          },
          "deal": {
            "$ref": "#/components/schemas/Deal"
          },
          "activityTask": {
            "$ref": "#/components/schemas/ActivityTask"
          },
          "dealMeeting": {
            "$ref": "#/components/schemas/DealMeetings"
          },
          "note": {
            "$ref": "#/components/schemas/Note"
          },
          "comment": {
            "$ref": "#/components/schemas/Comment"
          }
        },
        "additionalProperties": false
      },
      "Label": {
        "title": "Label",
        "type": "object",
        "properties": {
          "color": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "color",
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "AiyaCreateDealResult": {
        "title": "AiyaCreateDealResult",
        "type": "object",
        "properties": {
          "dealDetailUrl": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "number"
          },
          "accountId": {
            "type": "number"
          },
          "accountName": {
            "type": "string"
          },
          "phones": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "emails": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Label"
            }
          }
        },
        "required": [
          "dealDetailUrl",
          "name",
          "value",
          "accountId",
          "accountName"
        ],
        "additionalProperties": false
      },
      "AiyaCreateDeal": {
        "title": "AiyaCreateDeal",
        "type": "object",
        "properties": {
          "pipelineId": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "customerId": {
            "type": "number"
          },
          "contactId": {
            "type": "number"
          },
          "value": {
            "type": "number"
          },
          "note": {
            "type": "string"
          },
          "labelIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "ownerId": {
            "type": "number"
          },
          "memberIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          }
        },
        "required": [
          "pipelineId",
          "name",
          "refId",
          "customerId",
          "contactId",
          "ownerId"
        ],
        "additionalProperties": false
      },
      "AiyaAddMessageResult": {
        "title": "AiyaAddMessageResult",
        "type": "object",
        "properties": {
          "dealDetailUrl": {
            "type": "string"
          },
          "dealId": {
            "type": "number"
          }
        },
        "required": [
          "dealDetailUrl"
        ],
        "additionalProperties": false
      },
      "AiyaMessage": {
        "title": "AiyaMessage",
        "type": "object",
        "properties": {
          "ref_room_id": {
            "type": "string"
          },
          "from": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "platform": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          }
        },
        "required": [
          "ref_room_id",
          "from",
          "type",
          "message",
          "platform",
          "created_at"
        ],
        "additionalProperties": false
      },
      "AiyaAddMessage": {
        "title": "AiyaAddMessage",
        "type": "object",
        "properties": {
          "dealId": {
            "type": "number"
          },
          "message": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AiyaMessage"
            }
          }
        },
        "required": [
          "dealId",
          "message"
        ],
        "additionalProperties": false
      },
      "ActivityLineChatLogRepository": {},
      "AiyaLabelWithRelations": {
        "title": "AiyaLabelWithRelations",
        "type": "object",
        "description": "(tsType: AiyaLabelWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "color"
        ],
        "additionalProperties": false,
        "x-typescript-type": "AiyaLabelWithRelations"
      },
      "AiyaPipeline": {
        "title": "AiyaPipeline",
        "type": "object",
        "description": "(tsType: AiyaPipeline, schemaOptions: { includeRelations: false })",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "AiyaPipeline"
      },
      "AiyaUserDetail": {
        "title": "AiyaUserDetail",
        "type": "object",
        "description": "(tsType: AiyaUserDetail, schemaOptions: { includeRelations: false })",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "avatar": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "email",
          "avatar"
        ],
        "additionalProperties": false,
        "x-typescript-type": "AiyaUserDetail"
      },
      "AiyaAccount": {
        "title": "AiyaAccount",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "firstName": {
            "type": "string",
            "minLength": 1
          },
          "lastName": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "customerSocialMedias": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerSocialMedia"
            }
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "firstName"
        ],
        "additionalProperties": false
      },
      "CreateAiyaAccount": {
        "title": "CreateAiyaAccount",
        "type": "object",
        "description": "(tsType: Omit<AiyaAccount, 'id'>, schemaOptions: { title: 'CreateAiyaAccount', exclude: [ 'id' ] })",
        "properties": {
          "firstName": {
            "type": "string",
            "minLength": 1
          },
          "lastName": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "customerSocialMedias": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerSocialMedia"
            }
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "firstName"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<AiyaAccount, 'id'>"
      },
      "ApsmartCreateDeal": {
        "title": "ApsmartCreateDeal",
        "type": "object",
        "properties": {
          "pipelineId": {
            "type": "number"
          },
          "dealTitle": {
            "type": "string"
          },
          "customerName": {
            "type": "string"
          },
          "customerType": {
            "type": "string",
            "enum": [
              "company",
              "organization",
              "organisation",
              "บริษัท",
              "องค์กร",
              "นิติบุคคล",
              "person",
              "retail",
              "individual",
              "บุคคล"
            ]
          },
          "customerContactName": {
            "type": "string"
          },
          "phones": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "emails": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "value": {
            "type": "number"
          },
          "note": {
            "type": "string"
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "pipelineId",
          "dealTitle",
          "customerType"
        ],
        "additionalProperties": false
      },
      "EdtaCreateDealItem": {
        "title": "EdtaCreateDealItem",
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "qty": {
            "type": "number"
          }
        },
        "required": [
          "title",
          "price",
          "qty"
        ],
        "additionalProperties": true
      },
      "EdtaCreateDealCompose": {
        "title": "EdtaCreateDealCompose",
        "type": "object",
        "properties": {
          "customerTaxId": {
            "type": "string"
          },
          "customerName": {
            "type": "string"
          },
          "customerAddress": {
            "type": "string"
          },
          "customerPhone": {
            "type": "string"
          },
          "customerEmail": {
            "type": "string"
          },
          "CustomerBranch": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EdtaCreateDealItem"
            }
          }
        },
        "required": [
          "customerTaxId",
          "customerName",
          "customerAddress",
          "customerPhone",
          "customerEmail",
          "CustomerBranch",
          "items"
        ],
        "additionalProperties": true
      },
      "EdtaCreateDeal": {
        "title": "EdtaCreateDeal",
        "type": "object",
        "properties": {
          "TotalPrice": {
            "type": "number"
          },
          "Compose": {
            "$ref": "#/components/schemas/EdtaCreateDealCompose"
          },
          "pipelineId": {
            "type": "number"
          }
        },
        "required": [
          "TotalPrice",
          "Compose"
        ],
        "additionalProperties": true
      },
      "ProductRepository": {},
      "WebFormContactInput": {
        "title": "WebFormContactInput",
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        },
        "required": [
          "firstName"
        ],
        "additionalProperties": false
      },
      "WebFormFieldInput": {
        "title": "WebFormFieldInput",
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "customFieldStructureId": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "WebFormCreateDeal": {
        "title": "WebFormCreateDeal",
        "type": "object",
        "properties": {
          "pipelineId": {
            "type": "number"
          },
          "customerType": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ]
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "dealTitle": {
            "type": "string"
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "channelId": {
            "type": "number"
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebFormContactInput"
            }
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebFormFieldInput"
            }
          }
        },
        "required": [
          "pipelineId",
          "firstName"
        ],
        "additionalProperties": false
      },
      "DealCustomFieldRepository": {},
      "DealCustomFieldStructureRepository": {},
      "IcebearMeetingSummaryResult": {
        "title": "IcebearMeetingSummaryResult",
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "modelId": {
            "type": "string"
          }
        },
        "required": [
          "text",
          "modelId"
        ],
        "additionalProperties": false
      },
      "IcebearDealContext": {
        "title": "IcebearDealContext",
        "type": "object",
        "properties": {
          "dealId": {
            "type": "number"
          },
          "dealTitle": {
            "type": "string"
          },
          "dealValue": {
            "type": "string"
          },
          "dealStage": {
            "type": "string"
          },
          "dealOwnerDisplay": {
            "type": "string"
          },
          "dealOwnerUserId": {
            "type": "number"
          },
          "assignerDisplay": {
            "type": "string"
          },
          "assignByUserId": {
            "type": "number"
          },
          "keyContactDisplay": {
            "type": "string"
          },
          "keyContactStoredName": {
            "type": "string"
          },
          "dealCreatedDisplay": {
            "type": "string"
          },
          "dealEstClosingDisplay": {
            "type": "string"
          },
          "meetingCostPolicy": {
            "type": "string"
          },
          "quotationSummary": {
            "type": "string"
          },
          "accountId": {
            "type": "number"
          },
          "smePackMinimumPriceThb": {
            "type": "string"
          },
          "enterpriseDealThresholdThb": {
            "type": "string"
          },
          "enterprisePackagePricingNote": {
            "type": "string"
          },
          "dealInternalTeamExamples": {
            "type": "string"
          },
          "dealOwnerVoice": {
            "type": "string"
          },
          "exampleCasualThaiManagerLine": {
            "type": "string"
          },
          "exampleTaskDueDateIso": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "IcebearMeetingSummaryInput": {
        "title": "IcebearMeetingSummaryInput",
        "type": "object",
        "properties": {
          "meetingSummary": {
            "type": "string"
          },
          "activityId": {
            "type": "number"
          },
          "jobId": {
            "type": "number"
          },
          "dealContext": {
            "$ref": "#/components/schemas/IcebearDealContext"
          },
          "dealContextJson": {
            "type": "string"
          },
          "promptTemplate": {
            "type": "string",
            "description": "Optional custom prompt template. Placeholders: {{meeting_summary}}, {{deal_context}}."
          },
          "modelId": {
            "type": "string",
            "description": "Bedrock model ID. If empty, use AWS_BEDROCK_MODEL_ID or default."
          }
        },
        "additionalProperties": false
      },
      "CommentRepository": {},
      "IcebearMeetingQueue": {
        "title": "IcebearMeetingQueue",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "activityId": {
            "type": "number"
          },
          "activityNoteId": {
            "type": "number"
          },
          "meetingSummary": {
            "type": "string"
          },
          "promptTemplate": {
            "type": "string"
          },
          "dealContextJson": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "resultText": {
            "type": "string"
          },
          "errorMessage": {
            "type": "string"
          }
        },
        "required": [
          "dealId",
          "activityId",
          "activityNoteId",
          "meetingSummary",
          "status"
        ],
        "additionalProperties": false
      },
      "IcebearMeetingJobEnqueueInput": {
        "title": "IcebearMeetingJobEnqueueInput",
        "type": "object",
        "properties": {
          "dealId": {
            "type": "number"
          },
          "activityId": {
            "type": "number"
          },
          "activityNoteId": {
            "type": "number"
          },
          "meetingSummary": {
            "type": "string"
          },
          "promptTemplate": {
            "type": "string"
          },
          "dealContext": {
            "$ref": "#/components/schemas/IcebearDealContext"
          },
          "dealContextJson": {
            "type": "string"
          }
        },
        "required": [
          "dealId",
          "activityId",
          "activityNoteId",
          "meetingSummary"
        ],
        "additionalProperties": false
      },
      "IcebearMeetingJobCompleteInput": {
        "title": "IcebearMeetingJobCompleteInput",
        "type": "object",
        "properties": {
          "resultText": {
            "type": "string"
          }
        },
        "required": [
          "resultText"
        ],
        "additionalProperties": false
      },
      "IcebearMeetingJobFailInput": {
        "title": "IcebearMeetingJobFailInput",
        "type": "object",
        "properties": {
          "errorMessage": {
            "type": "string"
          }
        },
        "required": [
          "errorMessage"
        ],
        "additionalProperties": false
      },
      "ChatThreadResponse": {
        "title": "ChatThreadResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "lastActivityAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "lastActivityAt"
        ],
        "additionalProperties": false
      },
      "IcebearChatRepository": {},
      "ChatMessageResponse": {
        "title": "ChatMessageResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "assistant",
              "user"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "role"
        ],
        "additionalProperties": false
      },
      "IcebearChatConfigResponse": {
        "title": "IcebearChatConfigResponse",
        "type": "object",
        "properties": {
          "model": {
            "type": "string",
            "nullable": true,
            "enum": [
              "global.anthropic.claude-sonnet-4-6",
              "apac.amazon.nova-micro-v1:0"
            ]
          },
          "prompt": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateIcebearChatConfigRequest": {
        "title": "UpdateIcebearChatConfigRequest",
        "type": "object",
        "properties": {
          "model": {
            "type": "string",
            "nullable": true,
            "enum": [
              "global.anthropic.claude-sonnet-4-6",
              "apac.amazon.nova-micro-v1:0"
            ]
          },
          "prompt": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DealCustomerContactInput": {
        "title": "DealCustomerContactInput",
        "type": "object",
        "properties": {
          "customer": {
            "type": "object",
            "description": "Contact person to link to the deal"
          },
          "role": {
            "type": "string",
            "description": "Contact role on the deal, e.g. decision_maker"
          }
        },
        "required": [
          "customer"
        ],
        "additionalProperties": false
      },
      "V4CreateDealInput": {
        "title": "V4CreateDealInput",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Deal title"
          },
          "value": {
            "type": "number",
            "description": "Deal value"
          },
          "closingDate": {
            "type": "string",
            "description": "Estimated closing date"
          },
          "stageId": {
            "type": "number",
            "description": "Sales stage ID. Defaults to the first stage in the pipeline if omitted."
          },
          "pipelineId": {
            "type": "number",
            "description": "Pipeline ID"
          },
          "ownerId": {
            "type": "number",
            "description": "Owner user id. Set to 0 to auto-select a deal owner."
          },
          "customerId": {
            "type": "number",
            "description": "Existing customer ID to link to the deal. Optional/0 when v4_createCustomerAccount is in the same confirmed batch — server fills it."
          },
          "confidenceLevel": {
            "type": "number",
            "description": "Confidence level percentage"
          },
          "dealCustomerContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealCustomerContactInput"
            }
          }
        },
        "additionalProperties": false
      },
      "CustomerCustomFieldsInput": {
        "title": "CustomerCustomFieldsInput",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "additionalProperties": false
      },
      "CustomerSocialMediaInput": {
        "title": "CustomerSocialMediaInput",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "socialMediaName": {
            "type": "string",
            "enum": [
              "linkedIn",
              "facebook",
              "line",
              "twitter"
            ],
            "description": "Social media platform name"
          },
          "url": {
            "type": "string",
            "description": "Social media profile URL"
          }
        },
        "required": [
          "socialMediaName",
          "url"
        ],
        "additionalProperties": false
      },
      "V4CustomerInput": {
        "title": "V4CustomerInput",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ],
            "description": "Customer type: person or organization"
          },
          "customerCode": {
            "type": "string"
          },
          "taxId": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "organizationIndustry": {
            "type": "string"
          },
          "organizationBranchCode": {
            "type": "string"
          },
          "customField": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerCustomFieldsInput"
            }
          },
          "phone": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "socialMediaInput": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerSocialMediaInput"
            }
          },
          "email": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "VisitPlanWithRelations": {
        "title": "VisitPlanWithRelations",
        "type": "object",
        "description": "(tsType: VisitPlanWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "flowTemplateId": {
            "type": "number"
          },
          "flowId": {
            "type": "number"
          },
          "confirmedAt": {
            "type": "string",
            "format": "date-time"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "VisitPlanWithRelations"
      },
      "VisitPlan": {
        "title": "VisitPlan",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "flowTemplateId": {
            "type": "number"
          },
          "flowId": {
            "type": "number"
          },
          "confirmedAt": {
            "type": "string",
            "format": "date-time"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "VisitCreateInput": {
        "title": "VisitCreateInput",
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "objectiveId": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "format": "date-time"
          },
          "scheduleType": {
            "type": "string"
          },
          "allDay": {
            "type": "boolean"
          },
          "stageId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "assignTo": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "visitType": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "VisitUpdateInput": {
        "title": "VisitUpdateInput",
        "type": "object",
        "properties": {
          "visitInput": {
            "type": "object"
          }
        },
        "additionalProperties": false
      },
      "VisitCheckinInput": {
        "title": "VisitCheckinInput",
        "type": "object",
        "properties": {
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "address": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "TodoCommentInput": {
        "title": "TodoCommentInput",
        "type": "object",
        "properties": {
          "visitId": {
            "type": "number"
          },
          "caseId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "mentionsInput": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "additionalProperties": false
      },
      "UserResponse": {
        "title": "UserResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "activeStatus": {
            "type": "boolean"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "SalesStageResponse": {
        "title": "SalesStageResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PipelineResponse": {
        "title": "PipelineResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "salesStages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesStageResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "DeliveryStagesResponse": {
        "title": "DeliveryStagesResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "LabelResponse": {
        "title": "LabelResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "LabelGroupResponse": {
        "title": "LabelGroupResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "groupName": {
            "type": "string"
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "ChannelResponse": {
        "title": "ChannelResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "active": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "DisplaySnackbar": {
        "title": "DisplaySnackbar",
        "type": "object",
        "properties": {
          "userId": {
            "type": "number",
            "description": "Unique identifier for the user"
          },
          "text": {
            "type": "string",
            "description": "Text message to display in the snackbar"
          },
          "type": {
            "type": "string",
            "description": "Type of snackbar to display",
            "default": "info"
          }
        },
        "required": [
          "userId",
          "text"
        ],
        "additionalProperties": false
      },
      "ReallocateDealInput": {
        "title": "ReallocateDealInput",
        "type": "object",
        "properties": {
          "pipelineId": {
            "type": "number"
          },
          "stageNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          }
        },
        "required": [
          "pipelineId",
          "stageNames"
        ],
        "additionalProperties": false
      },
      "SubDeliveryWithRelations": {
        "title": "SubDeliveryWithRelations",
        "type": "object",
        "description": "(tsType: SubDeliveryWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "subIndex": {
            "type": "number"
          },
          "headDeliveryId": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "deliveryStageId": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "moneyCollectionAmount": {
            "type": "number"
          },
          "refId": {
            "type": "string"
          },
          "statusAt": {
            "type": "string",
            "format": "date-time"
          },
          "moneyReceivedDate": {
            "type": "string",
            "format": "date-time"
          },
          "estDeliveryDate": {
            "type": "string",
            "format": "date-time"
          },
          "hide": {
            "type": "boolean"
          }
        },
        "required": [
          "deliveryStageId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "SubDeliveryWithRelations"
      },
      "SubDeliveryPartial": {
        "title": "SubDeliveryPartial",
        "type": "object",
        "description": "(tsType: Partial<SubDelivery>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "subIndex": {
            "type": "number"
          },
          "headDeliveryId": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "deliveryStageId": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "moneyCollectionAmount": {
            "type": "number"
          },
          "refId": {
            "type": "string"
          },
          "statusAt": {
            "type": "string",
            "format": "date-time"
          },
          "moneyReceivedDate": {
            "type": "string",
            "format": "date-time"
          },
          "estDeliveryDate": {
            "type": "string",
            "format": "date-time"
          },
          "hide": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<SubDelivery>"
      },
      "SubDelivery": {
        "title": "SubDelivery",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "subIndex": {
            "type": "number"
          },
          "headDeliveryId": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "deliveryStageId": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "moneyCollectionAmount": {
            "type": "number"
          },
          "refId": {
            "type": "string"
          },
          "statusAt": {
            "type": "string",
            "format": "date-time"
          },
          "moneyReceivedDate": {
            "type": "string",
            "format": "date-time"
          },
          "estDeliveryDate": {
            "type": "string",
            "format": "date-time"
          },
          "hide": {
            "type": "boolean"
          }
        },
        "required": [
          "deliveryStageId"
        ],
        "additionalProperties": false
      },
      "NewSubDelivery": {
        "title": "NewSubDelivery",
        "type": "object",
        "description": "(tsType: Omit<SubDelivery, 'id'>, schemaOptions: { title: 'NewSubDelivery', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "subIndex": {
            "type": "number"
          },
          "headDeliveryId": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "deliveryStageId": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "moneyCollectionAmount": {
            "type": "number"
          },
          "refId": {
            "type": "string"
          },
          "statusAt": {
            "type": "string",
            "format": "date-time"
          },
          "moneyReceivedDate": {
            "type": "string",
            "format": "date-time"
          },
          "estDeliveryDate": {
            "type": "string",
            "format": "date-time"
          },
          "hide": {
            "type": "boolean"
          }
        },
        "required": [
          "deliveryStageId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<SubDelivery, 'id'>"
      },
      "LostReasonRepository": {},
      "DealLostReasonRepository": {},
      "DealMoveLogRepository": {},
      "Function": {},
      "DealProductInput": {
        "title": "DealProductInput",
        "type": "object",
        "properties": {
          "productId": {
            "type": "number",
            "description": "Product ID"
          },
          "quantity": {
            "type": "number",
            "description": "Product quantity"
          }
        },
        "required": [
          "productId",
          "quantity"
        ],
        "additionalProperties": false
      },
      "DealCustomFieldsInput": {
        "title": "DealCustomFieldsInput",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Custom field structure name"
          },
          "value": {
            "type": "string",
            "description": "Custom field value"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "additionalProperties": false
      },
      "DealInput": {
        "title": "DealInput",
        "type": "object",
        "properties": {
          "dealDatabaseInput": {
            "type": "object",
            "description": "Core deal fields"
          },
          "description": {
            "type": "string",
            "description": "Deal description text"
          },
          "newCustomer": {
            "type": "object",
            "description": "Create and link a new customer when dealDatabaseInput.customerId is not set"
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "number",
              "description": "Label IDs to attach to the deal"
            }
          },
          "owner": {
            "type": "number",
            "description": "Deal owner user ID. Set to 0 to auto-select by user ID ascending."
          },
          "members": {
            "type": "array",
            "items": {
              "type": "number",
              "description": "Member user IDs to add to the deal. May auto-populate with all pipeline members when omitted and organization DEAL_VIEW is set to public."
            }
          },
          "noteInput": {
            "type": "object",
            "description": "Initial activity note to create on the deal"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealProductInput"
            }
          },
          "dealCustomerContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealCustomerContactInput"
            }
          },
          "customField": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealCustomFieldsInput"
            }
          },
          "sendWisibleLine": {
            "type": "object",
            "description": "LINE notification settings for the new deal"
          },
          "xUihDealInput": {
            "type": "object"
          }
        },
        "required": [
          "dealDatabaseInput",
          "owner"
        ],
        "additionalProperties": false
      },
      "MoveDealByNameInput": {
        "title": "MoveDealByNameInput",
        "type": "object",
        "properties": {
          "stageName": {
            "type": "string"
          },
          "customerId": {
            "type": "string"
          },
          "trackingId": {
            "type": "string"
          },
          "route": {
            "type": "string"
          }
        },
        "required": [
          "stageName",
          "customerId",
          "trackingId",
          "route"
        ],
        "additionalProperties": false
      },
      "QuotationWithRelations": {
        "title": "QuotationWithRelations",
        "type": "object",
        "description": "(tsType: QuotationWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "docNo": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "revisionNumber": {
            "type": "number"
          },
          "fromQoId": {
            "type": "number"
          },
          "draftId": {
            "type": "number"
          },
          "fileId": {
            "type": "number"
          },
          "language": {
            "type": "string"
          },
          "includeVat": {
            "type": "boolean"
          },
          "issuer": {
            "type": "string"
          },
          "issuerImageUrl": {
            "type": "string"
          },
          "issuerTaxId": {
            "type": "string"
          },
          "issuerAddress": {
            "type": "string"
          },
          "issuerSubdistrict": {
            "type": "string"
          },
          "issuerDistrict": {
            "type": "string"
          },
          "issuerProvince": {
            "type": "string"
          },
          "issuerCountry": {
            "type": "string"
          },
          "issuerPostalCode": {
            "type": "string"
          },
          "issuerTel": {
            "type": "string"
          },
          "issuerEmail": {
            "type": "string"
          },
          "preparedBy": {
            "type": "string"
          },
          "preparedByEmail": {
            "type": "string"
          },
          "preparedByTel": {
            "type": "string"
          },
          "customer": {
            "type": "string"
          },
          "issuedDate": {
            "type": "string",
            "format": "date-time"
          },
          "validDate": {
            "type": "string",
            "format": "date-time"
          },
          "ref": {
            "type": "string"
          },
          "customerTaxId": {
            "type": "string"
          },
          "customerFullAddress": {
            "type": "string"
          },
          "customerAddress": {
            "type": "string"
          },
          "customerSubdistrict": {
            "type": "string"
          },
          "customerDistrict": {
            "type": "string"
          },
          "customerProvince": {
            "type": "string"
          },
          "customerCountry": {
            "type": "string"
          },
          "customerPostalCode": {
            "type": "string"
          },
          "attention": {
            "type": "string"
          },
          "attentionEmail": {
            "type": "string"
          },
          "attentionTel": {
            "type": "string"
          },
          "subtotal": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discountPercent": {
            "type": "number"
          },
          "hideDiscountPercent": {
            "type": "boolean"
          },
          "vatExemptedAmount": {
            "type": "number"
          },
          "taxExclusiveAmount": {
            "type": "number"
          },
          "vat": {
            "type": "number"
          },
          "netAmount": {
            "type": "number"
          },
          "quotationRemark": {
            "type": "string"
          },
          "setDealValue": {
            "type": "boolean"
          },
          "showSummaryPrice": {
            "type": "boolean"
          },
          "isFromDraft": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          },
          "quotationProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuotationProductWithRelations"
            }
          },
          "foreignKey": {}
        },
        "additionalProperties": false,
        "x-typescript-type": "QuotationWithRelations"
      },
      "NewProduct": {
        "title": "NewProduct",
        "type": "object",
        "description": "(tsType: Omit<Product, 'id'>, schemaOptions: { title: 'NewProduct', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "imageFileId": {
            "type": "number"
          },
          "categoryId": {
            "type": "number"
          },
          "unitType": {
            "type": "string"
          },
          "unitTypeTh": {
            "type": "string"
          },
          "vat": {
            "type": "string"
          },
          "priceBeforeVat": {
            "type": "number"
          },
          "sellPrice": {
            "type": "number"
          },
          "availableStock": {
            "type": "number"
          },
          "forecastSales": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "sku",
          "name",
          "sellPrice"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Product, 'id'>"
      },
      "ProductPartial": {
        "title": "ProductPartial",
        "type": "object",
        "description": "(tsType: Partial<Product>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "imageFileId": {
            "type": "number"
          },
          "categoryId": {
            "type": "number"
          },
          "unitType": {
            "type": "string"
          },
          "unitTypeTh": {
            "type": "string"
          },
          "vat": {
            "type": "string"
          },
          "priceBeforeVat": {
            "type": "number"
          },
          "sellPrice": {
            "type": "number"
          },
          "availableStock": {
            "type": "number"
          },
          "forecastSales": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Product>"
      },
      "ProductCategoryExcluding_archivedAt-archivedBy-createdAt-createdBy-parentCategoryId-remark-updatedAt-updatedBy_": {
        "title": "ProductCategoryExcluding_archivedAt-archivedBy-createdAt-createdBy-parentCategoryId-remark-updatedAt-updatedBy_",
        "type": "object",
        "description": "(tsType: Omit<ProductCategory, 'archivedAt' | 'archivedBy' | 'createdAt' | 'createdBy' | 'parentCategoryId' | 'remark' | 'updatedAt' | 'updatedBy'>, schemaOptions: { exclude: [ 'archivedAt', 'archivedBy', 'createdAt', 'createdBy', 'parentCategoryId', 'remark', 'updatedAt', 'updatedBy' ] })",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<ProductCategory, 'archivedAt' | 'archivedBy' | 'createdAt' | 'createdBy' | 'parentCategoryId' | 'remark' | 'updatedAt' | 'updatedBy'>"
      },
      "ProductCategory": {
        "title": "ProductCategory",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "parentCategoryId": {
            "type": "number"
          },
          "active": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "NewProductCategory": {
        "title": "NewProductCategory",
        "type": "object",
        "description": "(tsType: Omit<ProductCategory, 'id' | 'active' | 'archivedAt' | 'archivedBy' | 'createdAt' | 'createdBy' | 'parentCategoryId' | 'remark' | 'updatedAt' | 'updatedBy'>, schemaOptions: { title: 'NewProductCategory', exclude: [ 'id', 'active', 'archivedAt', 'archivedBy', 'createdAt', 'createdBy', 'parentCategoryId', 'remark', 'updatedAt', 'updatedBy' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<ProductCategory, 'id' | 'active' | 'archivedAt' | 'archivedBy' | 'createdAt' | 'createdBy' | 'parentCategoryId' | 'remark' | 'updatedAt' | 'updatedBy'>"
      },
      "ProductCategoryPartialExcluding_id-archivedAt-archivedBy-createdAt-createdBy-parentCategoryId-remark-updatedAt-updatedBy_": {
        "title": "ProductCategoryPartialExcluding_id-archivedAt-archivedBy-createdAt-createdBy-parentCategoryId-remark-updatedAt-updatedBy_",
        "type": "object",
        "description": "(tsType: Omit<Partial<ProductCategory>, 'id' | 'archivedAt' | 'archivedBy' | 'createdAt' | 'createdBy' | 'parentCategoryId' | 'remark' | 'updatedAt' | 'updatedBy'>, schemaOptions: { partial: true, exclude: [ 'id', 'archivedAt', 'archivedBy', 'createdAt', 'createdBy', 'parentCategoryId', 'remark', 'updatedAt', 'updatedBy' ] })",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Partial<ProductCategory>, 'id' | 'archivedAt' | 'archivedBy' | 'createdAt' | 'createdBy' | 'parentCategoryId' | 'remark' | 'updatedAt' | 'updatedBy'>"
      },
      "Pipeline": {
        "title": "Pipeline",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "NewPipeline": {
        "title": "NewPipeline",
        "type": "object",
        "description": "(tsType: Omit<Pipeline, 'id'>, schemaOptions: { title: 'NewPipeline', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<Pipeline, 'id'>"
      },
      "PipelineWithRelations": {
        "title": "PipelineWithRelations",
        "type": "object",
        "description": "(tsType: PipelineWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          },
          "pipelineMembers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PipelineMemberWithRelations"
            }
          },
          "salesStages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SalesStageWithRelations"
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "PipelineWithRelations"
      },
      "PipelinePartial": {
        "title": "PipelinePartial",
        "type": "object",
        "description": "(tsType: Partial<Pipeline>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Pipeline>"
      },
      "SalesStage": {
        "title": "SalesStage",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "pos"
        ],
        "additionalProperties": false
      },
      "NewSalesStageInPipeline": {
        "title": "NewSalesStageInPipeline",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<SalesStage, 'id'>, 'pipelineId'>, schemaOptions: { title: 'NewSalesStageInPipeline', exclude: [ 'id' ], optional: [ 'pipelineId' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "pipelineId": {
            "type": "number"
          },
          "pos": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "hide": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "pos"
        ],
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<SalesStage, 'id'>, 'pipelineId'>"
      },
      "SalesStagePartial": {
        "title": "SalesStagePartial",
        "type": "object",
        "description": "(tsType: Partial<SalesStage>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "pipelineId": {
            "type": "number"
          },
          "pos": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "hide": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<SalesStage>"
      },
      "PipelineMember": {
        "title": "PipelineMember",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "pipelineId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "role": {
            "type": "string",
            "enum": [
              "admin",
              "user"
            ]
          },
          "autoAssignedDealCount": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "role"
        ],
        "additionalProperties": false
      },
      "NewPipelineMemberInPipeline": {
        "title": "NewPipelineMemberInPipeline",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<PipelineMember, 'id'>, 'pipelineId'>, schemaOptions: { title: 'NewPipelineMemberInPipeline', exclude: [ 'id' ], optional: [ 'pipelineId' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "pipelineId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "role": {
            "type": "string",
            "enum": [
              "admin",
              "user"
            ]
          },
          "autoAssignedDealCount": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "role"
        ],
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<PipelineMember, 'id'>, 'pipelineId'>"
      },
      "PipelineMemberPartial": {
        "title": "PipelineMemberPartial",
        "type": "object",
        "description": "(tsType: Partial<PipelineMember>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "pipelineId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "role": {
            "type": "string",
            "enum": [
              "admin",
              "user"
            ]
          },
          "autoAssignedDealCount": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<PipelineMember>"
      },
      "PamCreateDealInputExcluding_owner_": {
        "title": "PamCreateDealInputExcluding_owner_",
        "type": "object",
        "description": "(tsType: Omit<PamCreateDealInput, 'owner'>, schemaOptions: { exclude: [ 'owner' ] })",
        "properties": {
          "dealDatabaseInput": {
            "type": "object",
            "description": "Core deal fields"
          },
          "description": {
            "type": "string",
            "description": "Deal description text"
          },
          "newCustomer": {
            "type": "object",
            "description": "Create and link a new customer when dealDatabaseInput.customerId is not set"
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "number",
              "description": "Label IDs to attach to the deal"
            }
          },
          "members": {
            "type": "array",
            "items": {
              "type": "number",
              "description": "Member user IDs to add to the deal. May auto-populate with all pipeline members when omitted and organization DEAL_VIEW is set to public."
            }
          },
          "noteInput": {
            "type": "object",
            "description": "Initial activity note to create on the deal"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealProductInput"
            }
          },
          "dealCustomerContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealCustomerContactInput"
            }
          },
          "customField": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealCustomFieldsInput"
            }
          },
          "sendWisibleLine": {
            "type": "object",
            "description": "LINE notification settings for the new deal"
          },
          "xUihDealInput": {
            "type": "object"
          },
          "profileName": {
            "type": "string"
          }
        },
        "required": [
          "dealDatabaseInput",
          "profileName"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<PamCreateDealInput, 'owner'>"
      },
      "PamMoveDealInput": {
        "title": "PamMoveDealInput",
        "type": "object",
        "properties": {
          "customField": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealCustomFieldsInput"
            }
          },
          "stageName": {
            "type": "string"
          }
        },
        "required": [
          "customField",
          "stageName"
        ],
        "additionalProperties": false
      },
      "PamUpdateDealCustomField": {
        "title": "PamUpdateDealCustomField",
        "type": "object",
        "properties": {
          "customField": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealCustomFieldsInput"
            }
          },
          "dealId": {
            "type": "number"
          }
        },
        "required": [
          "customField",
          "dealId"
        ],
        "additionalProperties": false
      },
      "CallLogInput": {
        "title": "CallLogInput",
        "type": "object",
        "properties": {
          "event": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "outboundPhoneNumber": {
            "type": "string"
          },
          "inboundPhoneNumber": {
            "type": "string"
          },
          "time": {
            "type": "string"
          },
          "linkVoiceFile": {
            "type": "string"
          },
          "durationTime": {
            "type": "number"
          }
        },
        "required": [
          "event",
          "status",
          "outboundPhoneNumber",
          "inboundPhoneNumber",
          "time",
          "linkVoiceFile",
          "durationTime"
        ],
        "additionalProperties": false
      },
      "TodoTaskInput": {
        "title": "TodoTaskInput",
        "type": "object",
        "properties": {
          "dealId": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "assignees": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "stageId": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "automateConfigId": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "NewCustomer": {
        "title": "NewCustomer",
        "type": "object",
        "description": "(tsType: Omit<CreateCustomerInput, 'id'>, schemaOptions: { title: 'NewCustomer', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "customerId": {
            "type": "string"
          },
          "relatedToUserId": {
            "type": "number"
          },
          "type": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ],
            "description": "Customer type: person or organization"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Customer display name"
          },
          "hashAlphabet": {
            "type": "string"
          },
          "profileImageUrl": {
            "type": "string"
          },
          "profileImageId": {
            "type": "number"
          },
          "taxId": {
            "type": "string"
          },
          "industry": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "noteCreatedBy": {
            "type": "number"
          },
          "noteCreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "segment": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "jobTitle": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "segmentEndUserId": {
            "type": "string"
          },
          "creditNote": {
            "type": "string"
          },
          "accountReceivableBalance": {
            "type": "string"
          },
          "priorityValue": {
            "type": "number"
          },
          "buyingCircle": {
            "type": "number"
          },
          "lastWonDate": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          },
          "customFieldInput": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerCustomFieldsInput"
            }
          },
          "phoneInput": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Phone numbers to create on the customer"
            }
          },
          "socialMediaInput": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerSocialMediaInput"
            }
          },
          "emailInput": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Email addresses to create on the customer"
            }
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<CreateCustomerInput, 'id'>"
      },
      "FlowDealRepository": {},
      "Contact": {
        "title": "Contact",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "phones": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "type": {
            "type": "string"
          },
          "profileImageUrl": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "phones",
          "type",
          "profileImageUrl"
        ],
        "additionalProperties": false
      },
      "SimpleCustomField": {
        "title": "SimpleCustomField",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "refId": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "value": {
            "type": "string"
          },
          "valueAsText": {
            "type": "string"
          },
          "options": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "id",
          "refId",
          "name",
          "type",
          "pos",
          "value",
          "valueAsText"
        ],
        "additionalProperties": false
      },
      "Owner": {
        "title": "Owner",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "profileImageUrl": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "profileImageUrl"
        ],
        "additionalProperties": false
      },
      "Task": {
        "title": "Task",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "assigneeUsers": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "id",
          "title",
          "note"
        ],
        "additionalProperties": false
      },
      "DealProductItem": {
        "title": "DealProductItem",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "productId": {
            "type": "number"
          },
          "productName": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "unit": {
            "type": "string"
          },
          "sellPrice": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discountType": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "DealDetailMicroAppResponse": {
        "title": "DealDetailMicroAppResponse",
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/Contact"
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Contact"
            }
          },
          "createdAt": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimpleCustomField"
            }
          },
          "estClosingDate": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Label"
            }
          },
          "name": {
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/Owner"
          },
          "value": {
            "type": "number"
          },
          "pipeline": {
            "$ref": "#/components/schemas/Pipeline"
          },
          "salesStage": {
            "$ref": "#/components/schemas/SalesStage"
          },
          "confidenceLevel": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "statusAt": {
            "type": "string"
          },
          "activityTasks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Task"
            }
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealProductItem"
            }
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "ActivityTaskRepository": {},
      "PhoneRepository": {},
      "FlowChecklistFileRepository": {},
      "FileRepository": {},
      "DealDetailResponse": {
        "title": "DealDetailResponse",
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/Contact"
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Contact"
            }
          },
          "createdAt": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimpleCustomField"
            }
          },
          "estClosingDate": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Label"
            }
          },
          "name": {
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/Owner"
          },
          "value": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "FlowCount": {
        "title": "FlowCount",
        "type": "object",
        "properties": {
          "added": {
            "type": "number"
          },
          "canceled": {
            "type": "number"
          },
          "done": {
            "type": "number"
          },
          "total": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "FlowTemplate": {
        "title": "FlowTemplate",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "configJson": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "FlowChecklistRepository": {},
      "FlowChecklistConfirmation": {
        "title": "FlowChecklistConfirmation",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "imageFileId": {
            "type": "number"
          },
          "buttonTextUncheck": {
            "type": "string"
          },
          "buttonTextChecked": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false
      },
      "UserDetail": {
        "title": "UserDetail",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "admin",
              "user"
            ]
          },
          "position": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "signatureFileId": {
            "type": "number"
          },
          "organizationId": {
            "type": "number"
          },
          "active": {
            "type": "boolean"
          },
          "lastSeenNotification": {
            "type": "number"
          },
          "lineToken": {
            "type": "string"
          },
          "googleId": {
            "type": "string"
          },
          "lineOtpId": {
            "type": "string"
          },
          "lineId": {
            "type": "string"
          },
          "zapierApiKey": {
            "type": "string"
          },
          "showOnboarding": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "PipelineMemberRepository": {},
      "LostReason": {
        "title": "LostReason",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "reason": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "active": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "LostDealInput": {
        "title": "LostDealInput",
        "type": "object",
        "properties": {
          "lostReasonIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "explanation": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "FileGroupsRepository": {},
      "DealFileRepository": {},
      "ControllerGetterService": {},
      "FlowChecklistCalendar": {
        "title": "FlowChecklistCalendar",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "timeDuration": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false
      },
      "FlowChecklistCallRequestBody": {
        "title": "FlowChecklistCallRequestBody",
        "type": "object",
        "description": "(tsType: FlowChecklistCallRequestBody, schemaOptions: { title: 'FlowChecklistCallRequestBody' })",
        "properties": {
          "phone": {
            "type": "string"
          },
          "callAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistCallRequestBody"
      },
      "FlowCommentRepository": {},
      "FlowCommentFileRepository": {},
      "FlowChecklistLocationRequestBody": {
        "title": "FlowChecklistLocationRequestBody",
        "type": "object",
        "description": "(tsType: FlowChecklistLocationRequestBody, schemaOptions: { title: 'FlowChecklistLocationRequestBody' })",
        "properties": {
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "locationTime": {
            "type": "string",
            "format": "date-time"
          },
          "locationText": {
            "type": "string"
          },
          "note": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistLocationRequestBody"
      },
      "FlowChecklistMultiSelectOption": {
        "title": "FlowChecklistMultiSelectOption",
        "type": "object",
        "properties": {
          "value": {
            "type": "number"
          },
          "label": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "FlowChecklistMultiSelect": {
        "title": "FlowChecklistMultiSelect",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowChecklistMultiSelectOption"
            }
          },
          "value": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false
      },
      "FlowChecklistNote": {
        "title": "FlowChecklistNote",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false
      },
      "FlowChecklistRating": {
        "title": "FlowChecklistRating",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "value": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false
      },
      "Flow": {
        "title": "Flow",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "customerId": {
            "type": "number"
          },
          "flowTemplateId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "state": {
            "type": "string"
          },
          "stageId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "feedback": {
            "type": "string"
          },
          "workflowConfigId": {
            "type": "number"
          },
          "automateConfigId": {
            "type": "number"
          },
          "automateConfigJson": {
            "type": "string"
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "hide": {
            "type": "boolean"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "state"
        ],
        "additionalProperties": false
      },
      "AddFlowToCustomerInput": {
        "title": "AddFlowToCustomerInput",
        "type": "object",
        "properties": {
          "customerId": {
            "type": "number"
          },
          "newCustomer": {
            "type": "object"
          },
          "flowTemplateId": {
            "type": "number"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "flowTemplateId"
        ],
        "additionalProperties": false
      },
      "DealDatabaseInput": {
        "title": "DealDatabaseInput",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Deal title"
          },
          "value": {
            "type": "number",
            "description": "Deal monetary value"
          },
          "closingDate": {
            "type": "string",
            "format": "date-time",
            "description": "Estimated closing date"
          },
          "stageId": {
            "type": "number",
            "description": "Sales stage ID. Defaults to the first stage in the pipeline if omitted."
          },
          "pipelineId": {
            "type": "number",
            "description": "Pipeline ID"
          },
          "customerId": {
            "type": "number",
            "description": "Existing customer ID to link to the deal"
          },
          "pos": {
            "type": "number"
          },
          "refId": {
            "type": "string",
            "description": "External reference ID"
          },
          "source": {
            "type": "string",
            "description": "Deal source identifier"
          },
          "leadSourceId": {
            "type": "number",
            "description": "Lead source ID"
          },
          "referralToUserId": {
            "type": "number",
            "description": "User ID to refer the deal to"
          },
          "referralToPipelineId": {
            "type": "number",
            "description": "Pipeline ID to refer the deal to"
          },
          "confidenceLevel": {
            "type": "number",
            "description": "Confidence level percentage"
          },
          "channelId": {
            "type": "number"
          },
          "explanation": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "pipelineId"
        ],
        "additionalProperties": false
      },
      "CreateCustomerInput": {
        "title": "CreateCustomerInput",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "string"
          },
          "relatedToUserId": {
            "type": "number"
          },
          "type": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ],
            "description": "Customer type: person or organization"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Customer display name"
          },
          "hashAlphabet": {
            "type": "string"
          },
          "profileImageUrl": {
            "type": "string"
          },
          "profileImageId": {
            "type": "number"
          },
          "taxId": {
            "type": "string"
          },
          "industry": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "noteCreatedBy": {
            "type": "number"
          },
          "noteCreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "segment": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "jobTitle": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "segmentEndUserId": {
            "type": "string"
          },
          "creditNote": {
            "type": "string"
          },
          "accountReceivableBalance": {
            "type": "string"
          },
          "priorityValue": {
            "type": "number"
          },
          "buyingCircle": {
            "type": "number"
          },
          "lastWonDate": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          },
          "customFieldInput": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerCustomFieldsInput"
            }
          },
          "phoneInput": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Phone numbers to create on the customer"
            }
          },
          "socialMediaInput": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerSocialMediaInput"
            }
          },
          "emailInput": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Email addresses to create on the customer"
            }
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "CreateDealInputForFlow": {
        "title": "CreateDealInputForFlow",
        "type": "object",
        "properties": {
          "dealDatabaseInput": {
            "$ref": "#/components/schemas/DealDatabaseInput"
          },
          "note": {
            "type": "string"
          },
          "newCustomer": {
            "$ref": "#/components/schemas/CreateCustomerInput"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealProductInput"
            }
          }
        },
        "required": [
          "dealDatabaseInput"
        ],
        "additionalProperties": false
      },
      "CustomerWithLastEngage": {
        "title": "CustomerWithLastEngage",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "string"
          },
          "relatedToUserId": {
            "type": "number"
          },
          "type": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ],
            "description": "Customer type: person or organization"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Customer display name"
          },
          "hashAlphabet": {
            "type": "string"
          },
          "profileImageUrl": {
            "type": "string"
          },
          "profileImageId": {
            "type": "number"
          },
          "taxId": {
            "type": "string"
          },
          "industry": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "noteCreatedBy": {
            "type": "number"
          },
          "noteCreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "segment": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "jobTitle": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "segmentEndUserId": {
            "type": "string"
          },
          "creditNote": {
            "type": "string"
          },
          "accountReceivableBalance": {
            "type": "string"
          },
          "priorityValue": {
            "type": "number"
          },
          "buyingCircle": {
            "type": "number"
          },
          "lastWonDate": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          },
          "lastEngage": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "FlowWithCustomerLastEngage": {
        "title": "FlowWithCustomerLastEngage",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "customerId": {
            "type": "number"
          },
          "flowTemplateId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "state": {
            "type": "string"
          },
          "stageId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "feedback": {
            "type": "string"
          },
          "workflowConfigId": {
            "type": "number"
          },
          "automateConfigId": {
            "type": "number"
          },
          "automateConfigJson": {
            "type": "string"
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "hide": {
            "type": "boolean"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          },
          "customer": {
            "$ref": "#/components/schemas/CustomerWithLastEngage"
          }
        },
        "required": [
          "title",
          "state"
        ],
        "additionalProperties": false
      },
      "VisitPlanRepository": {},
      "DealDynamicActionRepository": {},
      "DealDynamicActionConfigRepository": {},
      "DealMeetingRepository": {},
      "CallRepository": {},
      "DealDescriptionRepository": {},
      "DealProduct": {
        "title": "DealProduct",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "productId": {
            "type": "number"
          },
          "quantity": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "showImage": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discountType": {
            "type": "string",
            "enum": [
              "value",
              "percent"
            ]
          },
          "unitPrice": {
            "type": "number"
          },
          "preTaxAmount": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "sellPrice": {
            "type": "number"
          },
          "priceBeforeVat": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "dealId"
        ],
        "additionalProperties": false
      },
      "DealProductRepository": {},
      "PhoneInput": {
        "title": "PhoneInput",
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "description": "Existing phone record ID (omit to create new)"
          },
          "value": {
            "type": "string",
            "description": "Phone number"
          }
        },
        "required": [
          "value"
        ],
        "additionalProperties": false
      },
      "CustomerEmailInput": {
        "title": "CustomerEmailInput",
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "description": "Existing email record ID (omit to create new)"
          },
          "value": {
            "type": "string",
            "description": "Email address"
          }
        },
        "required": [
          "value"
        ],
        "additionalProperties": false
      },
      "PersonInfoInput": {
        "title": "PersonInfoInput",
        "type": "object",
        "properties": {
          "nickname": {
            "type": "string",
            "description": "Person nickname"
          },
          "birthday": {
            "type": "string",
            "description": "Birthday as ISO date string"
          },
          "citizenId": {
            "type": "string",
            "description": "Citizen ID / national ID number"
          }
        },
        "additionalProperties": false
      },
      "OrganizationInfoInput": {
        "title": "OrganizationInfoInput",
        "type": "object",
        "properties": {
          "industryType": {
            "type": "string",
            "description": "Industry type"
          },
          "businessObjective": {
            "type": "string",
            "description": "Business objective"
          },
          "taxId": {
            "type": "string",
            "description": "Tax ID"
          },
          "branch": {
            "type": "string",
            "description": "Branch name"
          },
          "branchId": {
            "type": "string",
            "description": "Branch ID"
          },
          "website": {
            "type": "string",
            "description": "Organization website URL"
          }
        },
        "additionalProperties": false
      },
      "CustomerJob": {
        "title": "CustomerJob",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "jobTitle": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "companyId": {
            "type": "number"
          },
          "primary": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CustomerAddressInput": {
        "title": "CustomerAddressInput",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "receiverName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "companyName": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "subdistrict": {
            "type": "string"
          },
          "subdistrictId": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "districtId": {
            "type": "string"
          },
          "province": {
            "type": "string"
          },
          "provinceId": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "countryId": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "postalCodeId": {
            "type": "string"
          },
          "primary": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "vatNo": {
            "type": "string"
          },
          "note": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UpdateCustomerInputPartial": {
        "title": "UpdateCustomerInputPartial",
        "type": "object",
        "description": "(tsType: Partial<UpdateCustomerInput>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "string"
          },
          "relatedToUserId": {
            "type": "number"
          },
          "type": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ],
            "description": "Customer type: person or organization"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Customer display name"
          },
          "hashAlphabet": {
            "type": "string"
          },
          "profileImageUrl": {
            "type": "string"
          },
          "profileImageId": {
            "type": "number"
          },
          "taxId": {
            "type": "string"
          },
          "industry": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "noteCreatedBy": {
            "type": "number"
          },
          "noteCreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "segment": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "jobTitle": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "segmentEndUserId": {
            "type": "string"
          },
          "creditNote": {
            "type": "string"
          },
          "accountReceivableBalance": {
            "type": "string"
          },
          "priorityValue": {
            "type": "number"
          },
          "buyingCircle": {
            "type": "number"
          },
          "lastWonDate": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          },
          "customFieldInput": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerCustomFieldsInput"
            }
          },
          "phoneInput": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneInput"
            }
          },
          "emailInput": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerEmailInput"
            }
          },
          "socialMediaInput": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerSocialMediaInput"
            }
          },
          "personInfo": {
            "$ref": "#/components/schemas/PersonInfoInput"
          },
          "organizationInfoInput": {
            "$ref": "#/components/schemas/OrganizationInfoInput"
          },
          "employee": {
            "$ref": "#/components/schemas/CustomerJob"
          },
          "addressInput": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerAddressInput"
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<UpdateCustomerInput>"
      },
      "CustomFieldSelectedResponse": {
        "title": "CustomFieldSelectedResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "text": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "DealCustomFieldStructureResponseMicroApp": {
        "title": "DealCustomFieldStructureResponseMicroApp",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "readonly": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "customFieldSelected": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldSelectedResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "DealCustomFieldSelectedRepository": {},
      "CustomerCustomFieldStructureResponse": {
        "title": "CustomerCustomFieldStructureResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "readonly": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "customFieldSelected": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldSelectedResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "CustomerCustomFieldStructureRepository": {},
      "CustomerCustomFieldSelectedRepository": {},
      "Call": {
        "title": "Call",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "contactPersonId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "assignTo": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "done",
              "canceled"
            ]
          },
          "callAt": {
            "type": "string",
            "format": "date-time"
          },
          "stageId": {
            "type": "number"
          },
          "phoneNumber": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "extension": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "dialCode": {
            "type": "string"
          },
          "duration": {
            "type": "number"
          },
          "feedback": {
            "type": "string"
          },
          "feedbackRating": {
            "type": "string"
          },
          "feedbackDuration": {
            "type": "number"
          },
          "statusAt": {
            "type": "string",
            "format": "date-time"
          },
          "automateConfigId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CustomerActivityRepository": {},
      "CustomerActivity": {
        "title": "CustomerActivity",
        "type": "object",
        "description": "(tsType: CustomerActivity, schemaOptions: { includeRelations: false })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "eventAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "CustomerActivity"
      },
      "MeetingMemberRepository": {},
      "VisitRepository": {},
      "ActivityTaskAssigneeRepository": {},
      "ObjectiveRepository": {},
      "ConnectedUser": {
        "title": "ConnectedUser",
        "type": "object",
        "properties": {
          "userId": {
            "type": "number"
          },
          "userName": {
            "type": "string"
          },
          "userEmail": {
            "type": "string"
          },
          "organizationId": {
            "type": "number"
          },
          "organizationName": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "isAdmin": {
            "type": "boolean"
          },
          "phone": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "signatureFileId": {
            "type": "number"
          }
        },
        "required": [
          "userId",
          "userName",
          "userEmail",
          "organizationId",
          "organizationName"
        ],
        "additionalProperties": false
      },
      "Visit": {
        "title": "Visit",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "dealId": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "note": {
            "type": "string"
          },
          "visitType": {
            "type": "string"
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "format": "date-time"
          },
          "scheduleType": {
            "type": "string"
          },
          "allDay": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "objectiveId": {
            "type": "number"
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "checkinLat": {
            "type": "string"
          },
          "checkinLng": {
            "type": "string"
          },
          "checkinAt": {
            "type": "string",
            "format": "date-time"
          },
          "checkoutLat": {
            "type": "string"
          },
          "checkoutLng": {
            "type": "string"
          },
          "checkoutAt": {
            "type": "string",
            "format": "date-time"
          },
          "stageId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "assignTo": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "customerId"
        ],
        "additionalProperties": false
      },
      "WisibleGraphqlMultipartService": {},
      "ConnectedUserWithRelations": {
        "title": "ConnectedUserWithRelations",
        "type": "object",
        "description": "(tsType: ConnectedUserWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "userId": {
            "type": "number"
          },
          "userName": {
            "type": "string"
          },
          "userEmail": {
            "type": "string"
          },
          "organizationId": {
            "type": "number"
          },
          "organizationName": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "isAdmin": {
            "type": "boolean"
          },
          "phone": {
            "type": "string"
          },
          "position": {
            "type": "string"
          },
          "signatureFileId": {
            "type": "number"
          }
        },
        "required": [
          "userId",
          "userName",
          "userEmail",
          "organizationId",
          "organizationName"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ConnectedUserWithRelations"
      },
      "CallWithRelations": {
        "title": "CallWithRelations",
        "type": "object",
        "description": "(tsType: CallWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "contactPersonId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "assignTo": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "done",
              "canceled"
            ]
          },
          "callAt": {
            "type": "string",
            "format": "date-time"
          },
          "stageId": {
            "type": "number"
          },
          "phoneNumber": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "extension": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "dialCode": {
            "type": "string"
          },
          "duration": {
            "type": "number"
          },
          "feedback": {
            "type": "string"
          },
          "feedbackRating": {
            "type": "string"
          },
          "feedbackDuration": {
            "type": "number"
          },
          "statusAt": {
            "type": "string",
            "format": "date-time"
          },
          "automateConfigId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "CallWithRelations"
      },
      "CustomerWithRelations": {
        "title": "CustomerWithRelations",
        "type": "object",
        "description": "(tsType: CustomerWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "string"
          },
          "relatedToUserId": {
            "type": "number"
          },
          "type": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ],
            "description": "Customer type: person or organization"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Customer display name"
          },
          "hashAlphabet": {
            "type": "string"
          },
          "profileImageUrl": {
            "type": "string"
          },
          "profileImageId": {
            "type": "number"
          },
          "taxId": {
            "type": "string"
          },
          "industry": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "noteCreatedBy": {
            "type": "number"
          },
          "noteCreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "segment": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "jobTitle": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "segmentEndUserId": {
            "type": "string"
          },
          "creditNote": {
            "type": "string"
          },
          "accountReceivableBalance": {
            "type": "string"
          },
          "priorityValue": {
            "type": "number"
          },
          "buyingCircle": {
            "type": "number"
          },
          "lastWonDate": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          },
          "phones": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneWithRelations"
            }
          },
          "emails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerEmailWithRelations"
            }
          },
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerAddressWithRelations"
            }
          },
          "accesses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerAccessWithRelations"
            }
          },
          "customerSocialMedias": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerSocialMediaWithRelations"
            }
          },
          "customerContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerContactWithRelations"
            }
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerWithRelations"
            }
          },
          "employees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerWithRelations"
            }
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelWithRelations"
            }
          },
          "customerOrganizationInfo": {
            "$ref": "#/components/schemas/CustomerOrganizationInfoWithRelations"
          },
          "customerPersonInfo": {
            "$ref": "#/components/schemas/CustomerPersonInfoWithRelations"
          },
          "personalData": {
            "$ref": "#/components/schemas/CustomerPersonInfoWithRelations"
          },
          "organizationInfo": {
            "$ref": "#/components/schemas/CustomerOrganizationInfoWithRelations"
          },
          "customerJobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerJobWithRelations"
            }
          },
          "foreignKey": {},
          "customerJobsAsEmployee": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerJobWithRelations"
            }
          },
          "flows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowWithRelations"
            }
          },
          "customerCustomFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerCustomFieldWithRelations"
            }
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "CustomerWithRelations"
      },
      "TaskChecklistWithRelations": {
        "title": "TaskChecklistWithRelations",
        "type": "object",
        "description": "(tsType: TaskChecklistWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "taskId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "isChecked": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "taskId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "TaskChecklistWithRelations"
      },
      "ActivityTaskAssigneeWithRelations": {
        "title": "ActivityTaskAssigneeWithRelations",
        "type": "object",
        "description": "(tsType: ActivityTaskAssigneeWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "taskId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "userId",
          "taskId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ActivityTaskAssigneeWithRelations"
      },
      "TaskLabelWithRelations": {
        "title": "TaskLabelWithRelations",
        "type": "object",
        "description": "(tsType: TaskLabelWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "taskId": {
            "type": "number"
          },
          "labelId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "taskId",
          "labelId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "TaskLabelWithRelations"
      },
      "TaskCommentFileWithRelations": {
        "title": "TaskCommentFileWithRelations",
        "type": "object",
        "description": "(tsType: TaskCommentFileWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "taskCommentId": {
            "type": "number"
          },
          "fileId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "TaskCommentFileWithRelations"
      },
      "TaskCommentWithRelations": {
        "title": "TaskCommentWithRelations",
        "type": "object",
        "description": "(tsType: TaskCommentWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "taskId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          },
          "taskCommentFiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskCommentFileWithRelations"
            }
          }
        },
        "required": [
          "taskId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "TaskCommentWithRelations"
      },
      "ActivityTaskWithRelations": {
        "title": "ActivityTaskWithRelations",
        "type": "object",
        "description": "(tsType: ActivityTaskWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "dealId": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "state": {
            "type": "string",
            "enum": [
              "added",
              "done",
              "canceled"
            ]
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "stageId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "feedback": {
            "type": "string"
          },
          "workflowConfigId": {
            "type": "number"
          },
          "automateConfigId": {
            "type": "number"
          },
          "hide": {
            "type": "boolean"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          },
          "customer": {
            "$ref": "#/components/schemas/CustomerWithRelations"
          },
          "foreignKey": {},
          "taskChecklists": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskChecklistWithRelations"
            }
          },
          "assignees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActivityTaskAssigneeWithRelations"
            }
          },
          "taskLabels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskLabelWithRelations"
            }
          },
          "taskComments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskCommentWithRelations"
            }
          }
        },
        "required": [
          "title",
          "state"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ActivityTaskWithRelations"
      },
      "UserRepository": {},
      "FlowAssigneeRepository": {},
      "TaskCheckListInput": {
        "title": "TaskCheckListInput",
        "type": "object",
        "properties": {
          "taskId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "TaskCommentInput": {
        "title": "TaskCommentInput",
        "type": "object",
        "properties": {
          "taskId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "mentionsInput": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "isChecked": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DealMeetingWithRelations": {
        "title": "DealMeetingWithRelations",
        "type": "object",
        "description": "(tsType: DealMeetingWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "dealId": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "customerId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "stageId": {
            "type": "number"
          },
          "url": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "format": "date-time"
          },
          "allDay": {
            "type": "boolean"
          },
          "wonNote": {
            "type": "string"
          },
          "sendEmail": {
            "type": "boolean"
          },
          "icsUid": {
            "type": "string"
          },
          "icsSequence": {
            "type": "number"
          },
          "statusAt": {
            "type": "string",
            "format": "date-time"
          },
          "stars": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          },
          "hide": {
            "type": "boolean"
          },
          "locationId": {
            "type": "number"
          },
          "deal": {
            "$ref": "#/components/schemas/DealWithRelations"
          },
          "foreignKey": {},
          "customer": {
            "$ref": "#/components/schemas/CustomerWithRelations"
          },
          "location": {
            "$ref": "#/components/schemas/LocationWithRelations"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "DealMeetingWithRelations"
      },
      "Competitor": {
        "title": "Competitor",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "marketSegment": {
            "type": "string"
          },
          "strengths": {
            "type": "string"
          },
          "weaknesses": {
            "type": "string"
          },
          "pricingRange": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "CompetitorRepository": {},
      "DealCompetitor": {
        "title": "DealCompetitor",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "competitorId": {
            "type": "number"
          },
          "offeredPrice": {
            "type": "number"
          },
          "threatLevel": {
            "type": "string",
            "enum": [
              "lowest",
              "low",
              "medium",
              "high",
              "highest"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "competing",
              "lost",
              "won"
            ]
          },
          "reason": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "dealId",
          "competitorId",
          "threatLevel",
          "status"
        ],
        "additionalProperties": false
      },
      "DealCompetitorRepository": {},
      "DealCompetitorCommentRepository": {},
      "DealCompetitorUpdateInput": {
        "title": "DealCompetitorUpdateInput",
        "type": "object",
        "properties": {
          "competitorId": {
            "type": "number"
          },
          "offeredPrice": {
            "type": "number"
          },
          "threatLevel": {
            "type": "string",
            "enum": [
              "lowest",
              "low",
              "medium",
              "high",
              "highest"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "competing",
              "lost",
              "won"
            ]
          },
          "reason": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "HeadDeliveryProductWithRelations": {
        "title": "HeadDeliveryProductWithRelations",
        "type": "object",
        "description": "(tsType: HeadDeliveryProductWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "headDeliveryId": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "showImage": {
            "type": "number"
          },
          "qty": {
            "type": "number"
          },
          "waitingQty": {
            "type": "number"
          },
          "remainingQty": {
            "type": "number"
          },
          "preTaxAmount": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "sellPrice": {
            "type": "number"
          },
          "priceBeforeVat": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "headDeliveryId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "HeadDeliveryProductWithRelations"
      },
      "FlowByStageInput": {
        "title": "FlowByStageInput",
        "type": "object",
        "properties": {
          "flowInput": {
            "type": "object"
          },
          "flowTemplateId": {
            "type": "number"
          },
          "assigneeIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "dealIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          }
        },
        "required": [
          "flowInput"
        ],
        "additionalProperties": false
      },
      "FlowWithRelations": {
        "title": "FlowWithRelations",
        "type": "object",
        "description": "(tsType: FlowWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "customerId": {
            "type": "number"
          },
          "flowTemplateId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "state": {
            "type": "string"
          },
          "stageId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "feedback": {
            "type": "string"
          },
          "workflowConfigId": {
            "type": "number"
          },
          "automateConfigId": {
            "type": "number"
          },
          "automateConfigJson": {
            "type": "string"
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "hide": {
            "type": "boolean"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          },
          "customer": {
            "$ref": "#/components/schemas/CustomerWithRelations"
          },
          "foreignKey": {},
          "flowChecklists": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowChecklistWithRelations"
            }
          },
          "assignees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowAssigneeWithRelations"
            }
          },
          "flowLabels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowLabelWithRelations"
            }
          },
          "flowComments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowCommentWithRelations"
            }
          },
          "deals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealWithRelations"
            }
          }
        },
        "required": [
          "title",
          "state"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowWithRelations"
      },
      "File": {
        "title": "File",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "size": {
            "type": "number"
          },
          "isTemp": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NewFile": {
        "title": "NewFile",
        "type": "object",
        "description": "(tsType: Omit<File, 'id'>, schemaOptions: { title: 'NewFile', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "size": {
            "type": "number"
          },
          "isTemp": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<File, 'id'>"
      },
      "FileWithRelations": {
        "title": "FileWithRelations",
        "type": "object",
        "description": "(tsType: FileWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "size": {
            "type": "number"
          },
          "isTemp": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "FileWithRelations"
      },
      "FilePartial": {
        "title": "FilePartial",
        "type": "object",
        "description": "(tsType: Partial<File>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "size": {
            "type": "number"
          },
          "isTemp": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<File>"
      },
      "Ex10CreateDealInputExcluding_newCustomer-labels-owner_": {
        "title": "Ex10CreateDealInputExcluding_newCustomer-labels-owner_",
        "type": "object",
        "description": "(tsType: Omit<Ex10CreateDealInput, 'newCustomer' | 'labels' | 'owner'>, schemaOptions: { exclude: [ 'newCustomer', 'labels', 'owner' ] })",
        "properties": {
          "dealDatabaseInput": {
            "type": "object",
            "description": "Core deal fields"
          },
          "description": {
            "type": "string",
            "description": "Deal description text"
          },
          "members": {
            "type": "array",
            "items": {
              "type": "number",
              "description": "Member user IDs to add to the deal. May auto-populate with all pipeline members when omitted and organization DEAL_VIEW is set to public."
            }
          },
          "noteInput": {
            "type": "object",
            "description": "Initial activity note to create on the deal"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealProductInput"
            }
          },
          "dealCustomerContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealCustomerContactInput"
            }
          },
          "customField": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealCustomFieldsInput"
            }
          },
          "sendWisibleLine": {
            "type": "object",
            "description": "LINE notification settings for the new deal"
          },
          "xUihDealInput": {
            "type": "object"
          },
          "sessionId": {
            "type": "string"
          },
          "profileEmail": {
            "type": "string"
          },
          "labelNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "dealDatabaseInput",
          "sessionId",
          "profileEmail"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Ex10CreateDealInput, 'newCustomer' | 'labels' | 'owner'>"
      },
      "Ex10ChatInput": {
        "title": "Ex10ChatInput",
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "messageType": {
            "type": "string"
          },
          "timestamp": {
            "type": "string"
          },
          "from": {
            "type": "string"
          },
          "chatType": {
            "type": "string",
            "enum": [
              "line",
              "facebook",
              "youtube",
              "whatsapp",
              "shopee",
              "lazada",
              "x",
              "instagram",
              "tiktok"
            ]
          },
          "isCustomer": {
            "type": "boolean"
          }
        },
        "required": [
          "sessionId",
          "message",
          "messageType",
          "timestamp",
          "from",
          "chatType",
          "isCustomer"
        ],
        "additionalProperties": false
      },
      "Ex10WonDealInput": {
        "title": "Ex10WonDealInput",
        "type": "object",
        "properties": {
          "dealId": {
            "type": "number"
          },
          "profileEmail": {
            "type": "string"
          }
        },
        "required": [
          "dealId",
          "profileEmail"
        ],
        "additionalProperties": false
      },
      "DeliveryStage": {
        "title": "DeliveryStage",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "hide": {
            "type": "number"
          },
          "enableMove": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "pos"
        ],
        "additionalProperties": false
      },
      "NewDeliveryStage": {
        "title": "NewDeliveryStage",
        "type": "object",
        "description": "(tsType: Omit<DeliveryStage, 'id'>, schemaOptions: { title: 'NewDeliveryStage', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "hide": {
            "type": "number"
          },
          "enableMove": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "pos"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<DeliveryStage, 'id'>"
      },
      "DeliveryStageWithRelations": {
        "title": "DeliveryStageWithRelations",
        "type": "object",
        "description": "(tsType: DeliveryStageWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "hide": {
            "type": "number"
          },
          "enableMove": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "pos"
        ],
        "additionalProperties": false,
        "x-typescript-type": "DeliveryStageWithRelations"
      },
      "DeliveryStagePartial": {
        "title": "DeliveryStagePartial",
        "type": "object",
        "description": "(tsType: Partial<DeliveryStage>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "hide": {
            "type": "number"
          },
          "enableMove": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<DeliveryStage>"
      },
      "DealWithRelations": {
        "title": "DealWithRelations",
        "type": "object",
        "description": "(tsType: DealWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "number"
          },
          "wonQuotationId": {
            "type": "number"
          },
          "pos": {
            "type": "number"
          },
          "pin": {
            "type": "boolean"
          },
          "closingDate": {
            "type": "string",
            "format": "date-time"
          },
          "estDeliveryDate": {
            "type": "string",
            "format": "date-time"
          },
          "pipelineId": {
            "type": "number"
          },
          "stageId": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "statusAt": {
            "type": "string",
            "format": "date-time"
          },
          "paymentFinish": {
            "type": "boolean"
          },
          "channelId": {
            "type": "number"
          },
          "refId": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "leadSourceId": {
            "type": "number"
          },
          "referralToUserId": {
            "type": "number"
          },
          "referralToPipelineId": {
            "type": "number"
          },
          "isReferralAccepted": {
            "type": "boolean"
          },
          "confidenceLevel": {
            "type": "number"
          },
          "deliveryCompletedDate": {
            "type": "string",
            "format": "date-time"
          },
          "explanation": {
            "type": "string"
          },
          "closedAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          },
          "customer": {
            "$ref": "#/components/schemas/CustomerWithRelations"
          },
          "foreignKey": {},
          "wonQuotation": {
            "$ref": "#/components/schemas/QuotationWithRelations"
          },
          "pipeline": {
            "$ref": "#/components/schemas/PipelineWithRelations"
          },
          "salesStage": {
            "$ref": "#/components/schemas/PipelineWithRelations"
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerWithRelations"
            }
          },
          "dealProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealProductWithRelations"
            }
          },
          "dealQuotations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuotationWithRelations"
            }
          },
          "dealUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealUserWithRelations"
            }
          },
          "dealContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealContactWithRelations"
            }
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelWithRelations"
            }
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileWithRelations"
            }
          },
          "flows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowWithRelations"
            }
          },
          "dealMeetings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealMeetingWithRelations"
            }
          },
          "calls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CallWithRelations"
            }
          }
        },
        "required": [
          "pipelineId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "DealWithRelations"
      },
      "DealUpdateInput": {
        "title": "DealUpdateInput",
        "type": "object",
        "properties": {
          "dealDatabaseInput": {
            "type": "object",
            "description": "Deal fields to update (partial)"
          },
          "newCustomer": {
            "type": "object",
            "description": "Create and link a new customer when dealDatabaseInput.customerId is not set"
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "number",
              "description": "Label IDs to replace on the deal"
            }
          },
          "owner": {
            "type": "number",
            "description": "New deal owner user ID"
          },
          "members": {
            "type": "array",
            "items": {
              "type": "number",
              "description": "Member user IDs to replace on the deal. Omit to leave members unchanged."
            }
          },
          "dealCustomerContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DealCustomerContactInput"
            }
          },
          "reason": {
            "type": "string",
            "description": "Change reason recorded in the audit log"
          },
          "description": {
            "type": "string",
            "description": "Deal description text"
          }
        },
        "additionalProperties": false
      },
      "DealCustomFieldStructureResponse": {
        "title": "DealCustomFieldStructureResponse",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "choices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldSelectedResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "MeetingChecklistInput": {
        "title": "MeetingChecklistInput",
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "isChecked": {
            "type": "boolean"
          },
          "dealMeetingId": {
            "type": "number"
          }
        },
        "required": [
          "text"
        ],
        "additionalProperties": false
      },
      "MeetingCommentInput": {
        "title": "MeetingCommentInput",
        "type": "object",
        "properties": {
          "dealMeetingId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "mentionUserIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          }
        },
        "required": [
          "text"
        ],
        "additionalProperties": false
      },
      "DealMeetingCreateInput": {
        "title": "DealMeetingCreateInput",
        "type": "object",
        "properties": {
          "meetingInput": {
            "type": "object"
          },
          "checklists": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MeetingChecklistInput"
            }
          },
          "comments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MeetingCommentInput"
            }
          },
          "labelIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "utcOffset": {
            "type": "number"
          }
        },
        "required": [
          "meetingInput"
        ],
        "additionalProperties": false
      },
      "DealMeetingInputPartial": {
        "title": "DealMeetingInputPartial",
        "type": "object",
        "description": "(tsType: Partial<DealMeetingInput>, schemaOptions: { partial: true })",
        "properties": {
          "dealId": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "format": "date-time"
          },
          "allDay": {
            "type": "boolean"
          },
          "memberIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "guestIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "assignBy": {
            "type": "number"
          },
          "members": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "sendEmail": {
            "type": "boolean"
          },
          "guests": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "customerId": {
                  "type": "number"
                },
                "email": {
                  "type": "string"
                }
              }
            }
          },
          "location": {
            "type": "object",
            "properties": {
              "lat": {
                "type": "string"
              },
              "lng": {
                "type": "string"
              },
              "mapUrl": {
                "type": "string"
              },
              "address": {
                "type": "string"
              }
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<DealMeetingInput>"
      },
      "NewLabelInDeal": {
        "title": "NewLabelInDeal",
        "type": "object",
        "description": "(tsType: Omit<Label, 'id'>, schemaOptions: { title: 'NewLabelInDeal', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "deal",
              "customer",
              "todo"
            ]
          },
          "subType": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Label, 'id'>"
      },
      "LabelPartial": {
        "title": "LabelPartial",
        "type": "object",
        "description": "(tsType: Partial<Label>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "deal",
              "customer",
              "todo"
            ]
          },
          "subType": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Label>"
      },
      "NewFileInDeal": {
        "title": "NewFileInDeal",
        "type": "object",
        "description": "(tsType: Omit<File, 'id'>, schemaOptions: { title: 'NewFileInDeal', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "size": {
            "type": "number"
          },
          "isTemp": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<File, 'id'>"
      },
      "NewDealProductInDeal": {
        "title": "NewDealProductInDeal",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<DealProduct, 'id'>, 'dealId'>, schemaOptions: { title: 'NewDealProductInDeal', exclude: [ 'id' ], optional: [ 'dealId' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "productId": {
            "type": "number"
          },
          "quantity": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "showImage": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discountType": {
            "type": "string",
            "enum": [
              "value",
              "percent"
            ]
          },
          "unitPrice": {
            "type": "number"
          },
          "preTaxAmount": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "sellPrice": {
            "type": "number"
          },
          "priceBeforeVat": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<DealProduct, 'id'>, 'dealId'>"
      },
      "DealProductPartial": {
        "title": "DealProductPartial",
        "type": "object",
        "description": "(tsType: Partial<DealProduct>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "productId": {
            "type": "number"
          },
          "quantity": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "showImage": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discountType": {
            "type": "string",
            "enum": [
              "value",
              "percent"
            ]
          },
          "unitPrice": {
            "type": "number"
          },
          "preTaxAmount": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "sellPrice": {
            "type": "number"
          },
          "priceBeforeVat": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<DealProduct>"
      },
      "QuotationProductWithRelations": {
        "title": "QuotationProductWithRelations",
        "type": "object",
        "description": "(tsType: QuotationProductWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "quotationId": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "categoryId": {
            "type": "number"
          },
          "parentCategoryId": {
            "type": "number"
          },
          "pos": {
            "type": "number"
          },
          "showImage": {
            "type": "boolean"
          },
          "qty": {
            "type": "number"
          },
          "unitPrice": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discountType": {
            "type": "string",
            "enum": [
              "value",
              "percent"
            ]
          },
          "tax": {
            "type": "number"
          },
          "preTaxAmount": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "priceBeforeVat": {
            "type": "number"
          },
          "sellPrice": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "quotationId",
          "categoryId",
          "parentCategoryId",
          "pos"
        ],
        "additionalProperties": false,
        "x-typescript-type": "QuotationProductWithRelations"
      },
      "PipelineMemberWithRelations": {
        "title": "PipelineMemberWithRelations",
        "type": "object",
        "description": "(tsType: PipelineMemberWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "pipelineId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "role": {
            "type": "string",
            "enum": [
              "admin",
              "user"
            ]
          },
          "autoAssignedDealCount": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          },
          "pipeline": {
            "$ref": "#/components/schemas/PipelineWithRelations"
          },
          "foreignKey": {}
        },
        "required": [
          "role"
        ],
        "additionalProperties": false,
        "x-typescript-type": "PipelineMemberWithRelations"
      },
      "SalesStageWithRelations": {
        "title": "SalesStageWithRelations",
        "type": "object",
        "description": "(tsType: SalesStageWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "pipelineId": {
            "type": "number"
          },
          "pos": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "hide": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "pipelineId",
          "pos"
        ],
        "additionalProperties": false,
        "x-typescript-type": "SalesStageWithRelations"
      },
      "ProductCategoryWithRelations": {
        "title": "ProductCategoryWithRelations",
        "type": "object",
        "description": "(tsType: ProductCategoryWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "parentCategoryId": {
            "type": "number"
          },
          "active": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ProductCategoryWithRelations"
      },
      "ProductWithRelations": {
        "title": "ProductWithRelations",
        "type": "object",
        "description": "(tsType: ProductWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "imageFileId": {
            "type": "number"
          },
          "categoryId": {
            "type": "number"
          },
          "unitType": {
            "type": "string"
          },
          "unitTypeTh": {
            "type": "string"
          },
          "vat": {
            "type": "string"
          },
          "priceBeforeVat": {
            "type": "number"
          },
          "sellPrice": {
            "type": "number"
          },
          "availableStock": {
            "type": "number"
          },
          "forecastSales": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          },
          "productCategory": {
            "$ref": "#/components/schemas/ProductCategoryWithRelations"
          },
          "foreignKey": {}
        },
        "required": [
          "sku",
          "name",
          "sellPrice"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ProductWithRelations"
      },
      "DealProductWithRelations": {
        "title": "DealProductWithRelations",
        "type": "object",
        "description": "(tsType: DealProductWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "productId": {
            "type": "number"
          },
          "quantity": {
            "type": "number"
          },
          "sku": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "pos": {
            "type": "number"
          },
          "showImage": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discountType": {
            "type": "string",
            "enum": [
              "value",
              "percent"
            ]
          },
          "unitPrice": {
            "type": "number"
          },
          "preTaxAmount": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "sellPrice": {
            "type": "number"
          },
          "priceBeforeVat": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          },
          "product": {
            "$ref": "#/components/schemas/ProductWithRelations"
          },
          "foreignKey": {}
        },
        "required": [
          "dealId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "DealProductWithRelations"
      },
      "UserDetailWithRelations": {
        "title": "UserDetailWithRelations",
        "type": "object",
        "description": "(tsType: UserDetailWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "admin",
              "user"
            ]
          },
          "position": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "imageUrl": {
            "type": "string"
          },
          "signatureFileId": {
            "type": "number"
          },
          "organizationId": {
            "type": "number"
          },
          "active": {
            "type": "boolean"
          },
          "lastSeenNotification": {
            "type": "number"
          },
          "lineToken": {
            "type": "string"
          },
          "googleId": {
            "type": "string"
          },
          "lineOtpId": {
            "type": "string"
          },
          "lineId": {
            "type": "string"
          },
          "zapierApiKey": {
            "type": "string"
          },
          "showOnboarding": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "x-typescript-type": "UserDetailWithRelations"
      },
      "DealUserWithRelations": {
        "title": "DealUserWithRelations",
        "type": "object",
        "description": "(tsType: DealUserWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "unseenActivity": {
            "type": "boolean"
          },
          "relationship": {
            "type": "string",
            "enum": [
              "owner",
              "member"
            ]
          },
          "type": {
            "type": "string"
          },
          "refId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          },
          "deal": {
            "$ref": "#/components/schemas/DealWithRelations"
          },
          "foreignKey": {},
          "user": {
            "$ref": "#/components/schemas/UserDetailWithRelations"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "DealUserWithRelations"
      },
      "DealContactWithRelations": {
        "title": "DealContactWithRelations",
        "type": "object",
        "description": "(tsType: DealContactWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "role": {
            "type": "string"
          },
          "dealId": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "isMain": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          },
          "customer": {
            "$ref": "#/components/schemas/CustomerWithRelations"
          },
          "foreignKey": {}
        },
        "additionalProperties": false,
        "x-typescript-type": "DealContactWithRelations"
      },
      "LabelWithRelations": {
        "title": "LabelWithRelations",
        "type": "object",
        "description": "(tsType: LabelWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "deal",
              "customer",
              "todo"
            ]
          },
          "subType": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "LabelWithRelations"
      },
      "CustomerOrganizationInfoWithRelations": {
        "title": "CustomerOrganizationInfoWithRelations",
        "type": "object",
        "description": "(tsType: CustomerOrganizationInfoWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "industryType": {
            "type": "string"
          },
          "businessObjective": {
            "type": "string"
          },
          "taxId": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "branchId": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "CustomerOrganizationInfoWithRelations"
      },
      "CustomerPersonInfoWithRelations": {
        "title": "CustomerPersonInfoWithRelations",
        "type": "object",
        "description": "(tsType: CustomerPersonInfoWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "citizenId": {
            "type": "string"
          },
          "nickname": {
            "type": "string"
          },
          "birthday": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "CustomerPersonInfoWithRelations"
      },
      "CustomerJobWithRelations": {
        "title": "CustomerJobWithRelations",
        "type": "object",
        "description": "(tsType: CustomerJobWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "jobTitle": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "companyId": {
            "type": "number"
          },
          "primary": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "CustomerJobWithRelations"
      },
      "FlowChecklistLocationWithRelations": {
        "title": "FlowChecklistLocationWithRelations",
        "type": "object",
        "description": "(tsType: FlowChecklistLocationWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "locationTime": {
            "type": "string",
            "format": "date-time"
          },
          "locationText": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistLocationWithRelations"
      },
      "FlowChecklistFileWithRelations": {
        "title": "FlowChecklistFileWithRelations",
        "type": "object",
        "description": "(tsType: FlowChecklistFileWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "fileId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId",
          "fileId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistFileWithRelations"
      },
      "FlowChecklistCallWithRelations": {
        "title": "FlowChecklistCallWithRelations",
        "type": "object",
        "description": "(tsType: FlowChecklistCallWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "phone": {
            "type": "string"
          },
          "callAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistCallWithRelations"
      },
      "FlowChecklistNoteWithRelations": {
        "title": "FlowChecklistNoteWithRelations",
        "type": "object",
        "description": "(tsType: FlowChecklistNoteWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistNoteWithRelations"
      },
      "FlowChecklistRatingWithRelations": {
        "title": "FlowChecklistRatingWithRelations",
        "type": "object",
        "description": "(tsType: FlowChecklistRatingWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "value": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistRatingWithRelations"
      },
      "FlowAction": {
        "title": "FlowAction",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "args": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "FlowChecklistSelectOption": {
        "title": "FlowChecklistSelectOption",
        "type": "object",
        "properties": {
          "value": {
            "type": "number"
          },
          "label": {
            "type": "string"
          },
          "action": {
            "$ref": "#/components/schemas/FlowAction"
          }
        },
        "additionalProperties": false
      },
      "FlowChecklistSelectWithRelations": {
        "title": "FlowChecklistSelectWithRelations",
        "type": "object",
        "description": "(tsType: FlowChecklistSelectWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowChecklistSelectOption"
            }
          },
          "value": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistSelectWithRelations"
      },
      "FlowChecklistCalendarWithRelations": {
        "title": "FlowChecklistCalendarWithRelations",
        "type": "object",
        "description": "(tsType: FlowChecklistCalendarWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "timeDuration": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistCalendarWithRelations"
      },
      "FlowChecklistConfirmationWithRelations": {
        "title": "FlowChecklistConfirmationWithRelations",
        "type": "object",
        "description": "(tsType: FlowChecklistConfirmationWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "imageFileId": {
            "type": "number"
          },
          "buttonTextUncheck": {
            "type": "string"
          },
          "buttonTextChecked": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistConfirmationWithRelations"
      },
      "FlowChecklistMultiSelectWithRelations": {
        "title": "FlowChecklistMultiSelectWithRelations",
        "type": "object",
        "description": "(tsType: FlowChecklistMultiSelectWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowChecklistMultiSelectOption"
            }
          },
          "value": {
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistMultiSelectWithRelations"
      },
      "FlowChecklistDetailWithRelations": {
        "title": "FlowChecklistDetailWithRelations",
        "type": "object",
        "description": "(tsType: FlowChecklistDetailWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowChecklistId": {
            "type": "number"
          }
        },
        "required": [
          "flowChecklistId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistDetailWithRelations"
      },
      "FlowChecklistWithRelations": {
        "title": "FlowChecklistWithRelations",
        "type": "object",
        "description": "(tsType: FlowChecklistWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "isChecked": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          },
          "location": {
            "$ref": "#/components/schemas/FlowChecklistLocationWithRelations"
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowChecklistFileWithRelations"
            }
          },
          "foreignKey": {},
          "call": {
            "$ref": "#/components/schemas/FlowChecklistCallWithRelations"
          },
          "note": {
            "$ref": "#/components/schemas/FlowChecklistNoteWithRelations"
          },
          "rating": {
            "$ref": "#/components/schemas/FlowChecklistRatingWithRelations"
          },
          "select": {
            "$ref": "#/components/schemas/FlowChecklistSelectWithRelations"
          },
          "calendar": {
            "$ref": "#/components/schemas/FlowChecklistCalendarWithRelations"
          },
          "confirmation": {
            "$ref": "#/components/schemas/FlowChecklistConfirmationWithRelations"
          },
          "multiSelect": {
            "$ref": "#/components/schemas/FlowChecklistMultiSelectWithRelations"
          },
          "flowChecklistDetail": {
            "$ref": "#/components/schemas/FlowChecklistDetailWithRelations"
          }
        },
        "required": [
          "flowId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowChecklistWithRelations"
      },
      "FlowAssigneeWithRelations": {
        "title": "FlowAssigneeWithRelations",
        "type": "object",
        "description": "(tsType: FlowAssigneeWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "flowId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "userId",
          "flowId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowAssigneeWithRelations"
      },
      "FlowLabelWithRelations": {
        "title": "FlowLabelWithRelations",
        "type": "object",
        "description": "(tsType: FlowLabelWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowId": {
            "type": "number"
          },
          "labelId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "flowId",
          "labelId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowLabelWithRelations"
      },
      "FlowCommentWithRelations": {
        "title": "FlowCommentWithRelations",
        "type": "object",
        "description": "(tsType: FlowCommentWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "flowId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileWithRelations"
            }
          }
        },
        "required": [
          "flowId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "FlowCommentWithRelations"
      },
      "LocationWithRelations": {
        "title": "LocationWithRelations",
        "type": "object",
        "description": "(tsType: LocationWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "mapUrl": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "LocationWithRelations"
      },
      "CustomerCustomFieldWithRelations": {
        "title": "CustomerCustomFieldWithRelations",
        "type": "object",
        "description": "(tsType: CustomerCustomFieldWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "refId": {
            "type": "number"
          },
          "customFieldStructureId": {
            "type": "number"
          },
          "value": {
            "type": "string"
          },
          "isInQuotation": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "refId",
          "customFieldStructureId"
        ],
        "additionalProperties": false,
        "x-typescript-type": "CustomerCustomFieldWithRelations"
      },
      "CustomerCustomFieldsResponse": {
        "title": "CustomerCustomFieldsResponse",
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PhoneWithRelations": {
        "title": "PhoneWithRelations",
        "type": "object",
        "description": "(tsType: PhoneWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "customerContactId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "dialCode": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "extension": {
            "type": "string"
          },
          "hashText": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "PhoneWithRelations"
      },
      "CustomerEmailWithRelations": {
        "title": "CustomerEmailWithRelations",
        "type": "object",
        "description": "(tsType: CustomerEmailWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "isEmailValid": {
            "type": "number"
          },
          "unsubscribe": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "CustomerEmailWithRelations"
      },
      "CustomerAddressWithRelations": {
        "title": "CustomerAddressWithRelations",
        "type": "object",
        "description": "(tsType: CustomerAddressWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "billingCustomerId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "companyName": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "subdistrict": {
            "type": "string"
          },
          "subdistrictId": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "districtId": {
            "type": "string"
          },
          "province": {
            "type": "string"
          },
          "provinceId": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "countryId": {
            "type": "string"
          },
          "map": {
            "type": "string"
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "postalCodeId": {
            "type": "string"
          },
          "primary": {
            "type": "boolean"
          },
          "branch": {
            "type": "string"
          },
          "paymentTermsCode": {
            "type": "string"
          },
          "customerDiscGroup": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "receiverName": {
            "type": "string"
          },
          "sameName": {
            "type": "number"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "vatNo": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          },
          "accuracy": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "CustomerAddressWithRelations"
      },
      "CustomerAccessWithRelations": {
        "title": "CustomerAccessWithRelations",
        "type": "object",
        "description": "(tsType: CustomerAccessWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "role": {
            "type": "string"
          },
          "expiredAt": {
            "type": "string",
            "format": "date-time"
          },
          "type": {
            "type": "string"
          },
          "refId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "customerId",
          "userId",
          "role"
        ],
        "additionalProperties": false,
        "x-typescript-type": "CustomerAccessWithRelations"
      },
      "CustomerSocialMediaWithRelations": {
        "title": "CustomerSocialMediaWithRelations",
        "type": "object",
        "description": "(tsType: CustomerSocialMediaWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "socialMediaName": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "CustomerSocialMediaWithRelations"
      },
      "CustomerContactWithRelations": {
        "title": "CustomerContactWithRelations",
        "type": "object",
        "description": "(tsType: CustomerContactWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "customerAddressId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "isEmailValid": {
            "type": "number"
          },
          "lineId": {
            "type": "string"
          },
          "jobPosition": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "contactPointFlag": {
            "type": "boolean"
          },
          "phone": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "CustomerContactWithRelations"
      },
      "CustomerWithCustomFieldRespondWithRelations": {
        "title": "CustomerWithCustomFieldRespondWithRelations",
        "type": "object",
        "description": "(tsType: CustomerWithCustomFieldRespondWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "string"
          },
          "relatedToUserId": {
            "type": "number"
          },
          "type": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ],
            "description": "Customer type: person or organization"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Customer display name"
          },
          "hashAlphabet": {
            "type": "string"
          },
          "profileImageUrl": {
            "type": "string"
          },
          "profileImageId": {
            "type": "number"
          },
          "taxId": {
            "type": "string"
          },
          "industry": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "noteCreatedBy": {
            "type": "number"
          },
          "noteCreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "segment": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "jobTitle": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "segmentEndUserId": {
            "type": "string"
          },
          "creditNote": {
            "type": "string"
          },
          "accountReceivableBalance": {
            "type": "string"
          },
          "priorityValue": {
            "type": "number"
          },
          "buyingCircle": {
            "type": "number"
          },
          "lastWonDate": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerCustomFieldsResponse"
            }
          },
          "phones": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneWithRelations"
            }
          },
          "emails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerEmailWithRelations"
            }
          },
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerAddressWithRelations"
            }
          },
          "accesses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerAccessWithRelations"
            }
          },
          "customerSocialMedias": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerSocialMediaWithRelations"
            }
          },
          "customerContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerContactWithRelations"
            }
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerWithRelations"
            }
          },
          "employees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerWithRelations"
            }
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelWithRelations"
            }
          },
          "customerOrganizationInfo": {
            "$ref": "#/components/schemas/CustomerOrganizationInfoWithRelations"
          },
          "customerPersonInfo": {
            "$ref": "#/components/schemas/CustomerPersonInfoWithRelations"
          },
          "personalData": {
            "$ref": "#/components/schemas/CustomerPersonInfoWithRelations"
          },
          "organizationInfo": {
            "$ref": "#/components/schemas/CustomerOrganizationInfoWithRelations"
          },
          "customerJobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerJobWithRelations"
            }
          },
          "foreignKey": {},
          "customerJobsAsEmployee": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerJobWithRelations"
            }
          },
          "flows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlowWithRelations"
            }
          },
          "customerCustomFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerCustomFieldWithRelations"
            }
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "CustomerWithCustomFieldRespondWithRelations"
      },
      "Phone": {
        "title": "Phone",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "customerContactId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "dialCode": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "extension": {
            "type": "string"
          },
          "hashText": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NewPhoneInCustomer": {
        "title": "NewPhoneInCustomer",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<Phone, 'id'>, 'customerId'>, schemaOptions: { title: 'NewPhoneInCustomer', exclude: [ 'id' ], optional: [ 'customerId' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "customerContactId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "dialCode": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "extension": {
            "type": "string"
          },
          "hashText": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<Phone, 'id'>, 'customerId'>"
      },
      "PhonePartial": {
        "title": "PhonePartial",
        "type": "object",
        "description": "(tsType: Partial<Phone>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "customerContactId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "dialCode": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "extension": {
            "type": "string"
          },
          "hashText": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Phone>"
      },
      "CustomerPersonInfo": {
        "title": "CustomerPersonInfo",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "citizenId": {
            "type": "string"
          },
          "nickname": {
            "type": "string"
          },
          "birthday": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CustomerPersonInfoPartial": {
        "title": "CustomerPersonInfoPartial",
        "type": "object",
        "description": "(tsType: Partial<CustomerPersonInfo>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "citizenId": {
            "type": "string"
          },
          "nickname": {
            "type": "string"
          },
          "birthday": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<CustomerPersonInfo>"
      },
      "CustomerOrganizationInfo": {
        "title": "CustomerOrganizationInfo",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "industryType": {
            "type": "string"
          },
          "businessObjective": {
            "type": "string"
          },
          "taxId": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "branchId": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "customerOrganizationInfo": {
        "title": "customerOrganizationInfo",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<CustomerOrganizationInfo, 'id'>, 'customerId'>, schemaOptions: { title: 'customerOrganizationInfo', exclude: [ 'id' ], optional: [ 'customerId' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "industryType": {
            "type": "string"
          },
          "businessObjective": {
            "type": "string"
          },
          "taxId": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "branchId": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<CustomerOrganizationInfo, 'id'>, 'customerId'>"
      },
      "CustomerOrganizationInfoPartial": {
        "title": "CustomerOrganizationInfoPartial",
        "type": "object",
        "description": "(tsType: Partial<CustomerOrganizationInfo>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "industryType": {
            "type": "string"
          },
          "businessObjective": {
            "type": "string"
          },
          "taxId": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "branchId": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<CustomerOrganizationInfo>"
      },
      "NewCustomerInCustomer": {
        "title": "NewCustomerInCustomer",
        "type": "object",
        "description": "(tsType: Omit<Customer, 'id'>, schemaOptions: { title: 'NewCustomerInCustomer', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "customerId": {
            "type": "string"
          },
          "relatedToUserId": {
            "type": "number"
          },
          "type": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ],
            "description": "Customer type: person or organization"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Customer display name"
          },
          "hashAlphabet": {
            "type": "string"
          },
          "profileImageUrl": {
            "type": "string"
          },
          "profileImageId": {
            "type": "number"
          },
          "taxId": {
            "type": "string"
          },
          "industry": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "noteCreatedBy": {
            "type": "number"
          },
          "noteCreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "segment": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "jobTitle": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "segmentEndUserId": {
            "type": "string"
          },
          "creditNote": {
            "type": "string"
          },
          "accountReceivableBalance": {
            "type": "string"
          },
          "priorityValue": {
            "type": "number"
          },
          "buyingCircle": {
            "type": "number"
          },
          "lastWonDate": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Customer, 'id'>"
      },
      "CustomerPartial": {
        "title": "CustomerPartial",
        "type": "object",
        "description": "(tsType: Partial<Customer>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "string"
          },
          "relatedToUserId": {
            "type": "number"
          },
          "type": {
            "type": "string",
            "enum": [
              "person",
              "organization"
            ],
            "description": "Customer type: person or organization"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Customer display name"
          },
          "hashAlphabet": {
            "type": "string"
          },
          "profileImageUrl": {
            "type": "string"
          },
          "profileImageId": {
            "type": "number"
          },
          "taxId": {
            "type": "string"
          },
          "industry": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "noteCreatedBy": {
            "type": "number"
          },
          "noteCreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "segment": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "jobTitle": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "segmentEndUserId": {
            "type": "string"
          },
          "creditNote": {
            "type": "string"
          },
          "accountReceivableBalance": {
            "type": "string"
          },
          "priorityValue": {
            "type": "number"
          },
          "buyingCircle": {
            "type": "number"
          },
          "lastWonDate": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Customer>"
      },
      "NewCustomerSocialMediaInCustomer": {
        "title": "NewCustomerSocialMediaInCustomer",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<CustomerSocialMedia, 'id'>, 'customerId'>, schemaOptions: { title: 'NewCustomerSocialMediaInCustomer', exclude: [ 'id' ], optional: [ 'customerId' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "socialMediaName": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<CustomerSocialMedia, 'id'>, 'customerId'>"
      },
      "CustomerSocialMediaPartial": {
        "title": "CustomerSocialMediaPartial",
        "type": "object",
        "description": "(tsType: Partial<CustomerSocialMedia>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "socialMediaName": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<CustomerSocialMedia>"
      },
      "NewLabelInCustomer": {
        "title": "NewLabelInCustomer",
        "type": "object",
        "description": "(tsType: Omit<Label, 'id'>, schemaOptions: { title: 'NewLabelInCustomer', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "deal",
              "customer",
              "todo"
            ]
          },
          "subType": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Label, 'id'>"
      },
      "CustomerEmail": {
        "title": "CustomerEmail",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "isEmailValid": {
            "type": "number"
          },
          "unsubscribe": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NewCustomerEmailInCustomer": {
        "title": "NewCustomerEmailInCustomer",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<CustomerEmail, 'id'>, 'customerId'>, schemaOptions: { title: 'NewCustomerEmailInCustomer', exclude: [ 'id' ], optional: [ 'customerId' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "isEmailValid": {
            "type": "number"
          },
          "unsubscribe": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<CustomerEmail, 'id'>, 'customerId'>"
      },
      "CustomerEmailPartial": {
        "title": "CustomerEmailPartial",
        "type": "object",
        "description": "(tsType: Partial<CustomerEmail>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "isEmailValid": {
            "type": "number"
          },
          "unsubscribe": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<CustomerEmail>"
      },
      "CustomerContact": {
        "title": "CustomerContact",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "customerAddressId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "isEmailValid": {
            "type": "number"
          },
          "lineId": {
            "type": "string"
          },
          "jobPosition": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "contactPointFlag": {
            "type": "boolean"
          },
          "phone": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NewCustomerContactInCustomer": {
        "title": "NewCustomerContactInCustomer",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<CustomerContact, 'id'>, 'customerId'>, schemaOptions: { title: 'NewCustomerContactInCustomer', exclude: [ 'id' ], optional: [ 'customerId' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "customerAddressId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "isEmailValid": {
            "type": "number"
          },
          "lineId": {
            "type": "string"
          },
          "jobPosition": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "contactPointFlag": {
            "type": "boolean"
          },
          "phone": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<CustomerContact, 'id'>, 'customerId'>"
      },
      "CustomerContactPartial": {
        "title": "CustomerContactPartial",
        "type": "object",
        "description": "(tsType: Partial<CustomerContact>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "customerAddressId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "isEmailValid": {
            "type": "number"
          },
          "lineId": {
            "type": "string"
          },
          "jobPosition": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "contactPointFlag": {
            "type": "boolean"
          },
          "phone": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<CustomerContact>"
      },
      "CustomerAccess": {
        "title": "CustomerAccess",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "role": {
            "type": "string"
          },
          "expiredAt": {
            "type": "string",
            "format": "date-time"
          },
          "type": {
            "type": "string"
          },
          "refId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "customerId",
          "userId",
          "role"
        ],
        "additionalProperties": false
      },
      "NewCustomerAccessInCustomer": {
        "title": "NewCustomerAccessInCustomer",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<CustomerAccess, 'id'>, 'customerId'>, schemaOptions: { title: 'NewCustomerAccessInCustomer', exclude: [ 'id' ], optional: [ 'customerId' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "role": {
            "type": "string"
          },
          "expiredAt": {
            "type": "string",
            "format": "date-time"
          },
          "type": {
            "type": "string"
          },
          "refId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "userId",
          "role"
        ],
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<CustomerAccess, 'id'>, 'customerId'>"
      },
      "CustomerAccessPartial": {
        "title": "CustomerAccessPartial",
        "type": "object",
        "description": "(tsType: Partial<CustomerAccess>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "role": {
            "type": "string"
          },
          "expiredAt": {
            "type": "string",
            "format": "date-time"
          },
          "type": {
            "type": "string"
          },
          "refId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<CustomerAccess>"
      },
      "CustomerAddress": {
        "title": "CustomerAddress",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "billingCustomerId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "companyName": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "subdistrict": {
            "type": "string"
          },
          "subdistrictId": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "districtId": {
            "type": "string"
          },
          "province": {
            "type": "string"
          },
          "provinceId": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "countryId": {
            "type": "string"
          },
          "map": {
            "type": "string"
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "postalCodeId": {
            "type": "string"
          },
          "primary": {
            "type": "boolean"
          },
          "branch": {
            "type": "string"
          },
          "paymentTermsCode": {
            "type": "string"
          },
          "customerDiscGroup": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "receiverName": {
            "type": "string"
          },
          "sameName": {
            "type": "number"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "vatNo": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          },
          "accuracy": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "NewCustomerAddressInCustomer": {
        "title": "NewCustomerAddressInCustomer",
        "type": "object",
        "description": "(tsType: @loopback/repository-json-schema#Optional<Omit<CustomerAddress, 'id'>, 'customerId'>, schemaOptions: { title: 'NewCustomerAddressInCustomer', exclude: [ 'id' ], optional: [ 'customerId' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "billingCustomerId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "companyName": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "subdistrict": {
            "type": "string"
          },
          "subdistrictId": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "districtId": {
            "type": "string"
          },
          "province": {
            "type": "string"
          },
          "provinceId": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "countryId": {
            "type": "string"
          },
          "map": {
            "type": "string"
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "postalCodeId": {
            "type": "string"
          },
          "primary": {
            "type": "boolean"
          },
          "branch": {
            "type": "string"
          },
          "paymentTermsCode": {
            "type": "string"
          },
          "customerDiscGroup": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "receiverName": {
            "type": "string"
          },
          "sameName": {
            "type": "number"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "vatNo": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          },
          "accuracy": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository-json-schema#Optional<Omit<CustomerAddress, 'id'>, 'customerId'>"
      },
      "CustomerAddressPartial": {
        "title": "CustomerAddressPartial",
        "type": "object",
        "description": "(tsType: Partial<CustomerAddress>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "billingCustomerId": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "companyName": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "subdistrict": {
            "type": "string"
          },
          "subdistrictId": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "districtId": {
            "type": "string"
          },
          "province": {
            "type": "string"
          },
          "provinceId": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "countryId": {
            "type": "string"
          },
          "map": {
            "type": "string"
          },
          "lat": {
            "type": "string"
          },
          "lng": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "postalCodeId": {
            "type": "string"
          },
          "primary": {
            "type": "boolean"
          },
          "branch": {
            "type": "string"
          },
          "paymentTermsCode": {
            "type": "string"
          },
          "customerDiscGroup": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "receiverName": {
            "type": "string"
          },
          "sameName": {
            "type": "number"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "vatNo": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          },
          "accuracy": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<CustomerAddress>"
      },
      "CustomerCustomFieldRepository": {},
      "TimeFilterInput": {
        "title": "TimeFilterInput",
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "AsiaCareReportFilterInput": {
        "title": "AsiaCareReportFilterInput",
        "type": "object",
        "properties": {
          "timeFilter": {
            "$ref": "#/components/schemas/TimeFilterInput"
          },
          "dealerId": {
            "type": "number"
          }
        },
        "additionalProperties": false
      },
      "DealPaymentTermRepository": {},
      "PaymentTermConfigRepository": {},
      "CustomReportAuthsRepository": {},
      "CallFeedbackRepository": {},
      "QuotationRepository": {},
      "VisitComment": {
        "title": "VisitComment",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "visitId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "visitId"
        ],
        "additionalProperties": false
      },
      "TaskComment": {
        "title": "TaskComment",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "taskId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "taskId"
        ],
        "additionalProperties": false
      },
      "CaseComment": {
        "title": "CaseComment",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "caseId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "caseId"
        ],
        "additionalProperties": false
      },
      "DealCompetitorComment": {
        "title": "DealCompetitorComment",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealCompetitorId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "dealCompetitorId"
        ],
        "additionalProperties": false
      },
      "Case": {
        "title": "Case",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "dealId": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "objectiveId": {
            "type": "number"
          },
          "priority": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "stageId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "assignTo": {
            "type": "number"
          },
          "deadline": {
            "type": "string",
            "format": "date-time"
          },
          "closedAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CaseRepository": {},
      "CaseInputPartial": {
        "title": "CaseInputPartial",
        "type": "object",
        "description": "(tsType: Partial<CaseInput>, schemaOptions: { partial: true })",
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "objectiveId": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "priority": {
            "type": "string",
            "enum": [
              "lowest",
              "low",
              "medium",
              "high",
              "highest"
            ],
            "description": "CasePriority"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "done",
              "canceled"
            ],
            "description": "CaseStatus"
          },
          "stageId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "assignTo": {
            "type": "number"
          },
          "deadline": {
            "type": "string",
            "format": "date-time",
            "description": "Expected resolution date (ISO 8601)"
          },
          "watcherIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<CaseInput>"
      },
      "TodoCallChecklistInput": {
        "title": "TodoCallChecklistInput",
        "type": "object",
        "properties": {
          "callId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "isChecked": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TodoCallCommentInput": {
        "title": "TodoCallCommentInput",
        "type": "object",
        "properties": {
          "callId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "TodoCallCreateInput": {
        "title": "TodoCallCreateInput",
        "type": "object",
        "properties": {
          "todoCallInput": {
            "type": "object"
          },
          "checklists": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TodoCallChecklistInput"
            }
          },
          "comments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TodoCallCommentInput"
            }
          },
          "labelIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          }
        },
        "required": [
          "todoCallInput"
        ],
        "additionalProperties": false
      },
      "CallPartial": {
        "title": "CallPartial",
        "type": "object",
        "description": "(tsType: Partial<Call>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "customerId": {
            "type": "number"
          },
          "contactPersonId": {
            "type": "number"
          },
          "assignBy": {
            "type": "number"
          },
          "assignTo": {
            "type": "number"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "done",
              "canceled"
            ]
          },
          "callAt": {
            "type": "string",
            "format": "date-time"
          },
          "stageId": {
            "type": "number"
          },
          "phoneNumber": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "extension": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "dialCode": {
            "type": "string"
          },
          "duration": {
            "type": "number"
          },
          "feedback": {
            "type": "string"
          },
          "feedbackRating": {
            "type": "string"
          },
          "feedbackDuration": {
            "type": "number"
          },
          "statusAt": {
            "type": "string",
            "format": "date-time"
          },
          "automateConfigId": {
            "type": "number"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Call>"
      },
      "MicroAppAuthRepository": {},
      "OrganizationApiKeyRepository": {},
      "ActivityWithRelations": {
        "title": "ActivityWithRelations",
        "type": "object",
        "description": "(tsType: ActivityWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "ref2": {
            "type": "string"
          },
          "eventAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ActivityWithRelations"
      },
      "ActivityTaskCheckListInput": {
        "title": "ActivityTaskCheckListInput",
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "additionalProperties": false
      },
      "ActivityTaskInput": {
        "title": "ActivityTaskInput",
        "type": "object",
        "properties": {
          "taskInput": {
            "type": "object"
          },
          "checklists": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActivityTaskCheckListInput"
            }
          },
          "comments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskCommentInput"
            }
          },
          "labelIds": {
            "type": "array",
            "items": {
              "type": "number"
            }
          }
        },
        "required": [
          "taskInput"
        ],
        "additionalProperties": false
      },
      "ActivityTaskUpdateInput": {
        "title": "ActivityTaskUpdateInput",
        "type": "object",
        "properties": {
          "taskInput": {
            "type": "object",
            "description": "Partial task payload for updates. Include only fields that need to change."
          }
        },
        "additionalProperties": false
      },
      "ActivityNote": {
        "title": "ActivityNote",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "activityId": {
            "type": "number"
          },
          "dynamicActionId": {
            "type": "number"
          },
          "text": {
            "type": "string",
            "description": "Note text content"
          },
          "timeStamp": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NewActivityNote": {
        "title": "NewActivityNote",
        "type": "object",
        "description": "(tsType: Omit<ActivityNote, 'id'>, schemaOptions: { title: 'NewActivityNote', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "activityId": {
            "type": "number"
          },
          "dynamicActionId": {
            "type": "number"
          },
          "text": {
            "type": "string",
            "description": "Note text content"
          },
          "timeStamp": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<ActivityNote, 'id'>"
      },
      "ActivityNoteWithRelations": {
        "title": "ActivityNoteWithRelations",
        "type": "object",
        "description": "(tsType: ActivityNoteWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "activityId": {
            "type": "number"
          },
          "dynamicActionId": {
            "type": "number"
          },
          "text": {
            "type": "string",
            "description": "Note text content"
          },
          "timeStamp": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          },
          "activity": {
            "$ref": "#/components/schemas/ActivityWithRelations"
          },
          "foreignKey": {},
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileWithRelations"
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "ActivityNoteWithRelations"
      },
      "ActivityNotePartial": {
        "title": "ActivityNotePartial",
        "type": "object",
        "description": "(tsType: Partial<ActivityNote>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "activityId": {
            "type": "number"
          },
          "dynamicActionId": {
            "type": "number"
          },
          "text": {
            "type": "string",
            "description": "Note text content"
          },
          "timeStamp": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<ActivityNote>"
      },
      "EditNoteInput": {
        "title": "EditNoteInput",
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "activityId": {
            "type": "number"
          },
          "dynamicActionId": {
            "type": "number"
          },
          "timeStamp": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "activityId"
        ],
        "additionalProperties": false
      },
      "NewFileInActivityNote": {
        "title": "NewFileInActivityNote",
        "type": "object",
        "description": "(tsType: Omit<File, 'id'>, schemaOptions: { title: 'NewFileInActivityNote', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "size": {
            "type": "number"
          },
          "isTemp": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<File, 'id'>"
      },
      "ActivityLineChatLog": {
        "title": "ActivityLineChatLog",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "roomId": {
            "type": "string"
          },
          "messageType": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "from": {
            "type": "string"
          },
          "isCustomer": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          },
          "platform": {
            "type": "string"
          }
        },
        "required": [
          "dealId",
          "userId",
          "roomId",
          "timestamp",
          "from"
        ],
        "additionalProperties": false
      },
      "NewActivityLineChatLog": {
        "title": "NewActivityLineChatLog",
        "type": "object",
        "description": "(tsType: Omit<ActivityLineChatLog, 'id'>, schemaOptions: { title: 'NewActivityLineChatLog', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "roomId": {
            "type": "string"
          },
          "messageType": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "from": {
            "type": "string"
          },
          "isCustomer": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          },
          "platform": {
            "type": "string"
          }
        },
        "required": [
          "dealId",
          "userId",
          "roomId",
          "timestamp",
          "from"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<ActivityLineChatLog, 'id'>"
      },
      "ActivityLineChatLogWithRelations": {
        "title": "ActivityLineChatLogWithRelations",
        "type": "object",
        "description": "(tsType: ActivityLineChatLogWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "roomId": {
            "type": "string"
          },
          "messageType": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "from": {
            "type": "string"
          },
          "isCustomer": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          },
          "platform": {
            "type": "string"
          }
        },
        "required": [
          "dealId",
          "userId",
          "roomId",
          "timestamp",
          "from"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ActivityLineChatLogWithRelations"
      },
      "ActivityLineChatLogPartial": {
        "title": "ActivityLineChatLogPartial",
        "type": "object",
        "description": "(tsType: Partial<ActivityLineChatLog>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "roomId": {
            "type": "string"
          },
          "messageType": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "from": {
            "type": "string"
          },
          "isCustomer": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          },
          "platform": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<ActivityLineChatLog>"
      },
      "ActivityFacebookChatLog": {
        "title": "ActivityFacebookChatLog",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "roomId": {
            "type": "string"
          },
          "messageType": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "from": {
            "type": "string"
          },
          "isCustomer": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "dealId",
          "userId",
          "roomId",
          "timestamp",
          "from"
        ],
        "additionalProperties": false
      },
      "NewActivityFacebookChatLog": {
        "title": "NewActivityFacebookChatLog",
        "type": "object",
        "description": "(tsType: Omit<ActivityFacebookChatLog, 'id'>, schemaOptions: { title: 'NewActivityFacebookChatLog', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "roomId": {
            "type": "string"
          },
          "messageType": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "from": {
            "type": "string"
          },
          "isCustomer": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "dealId",
          "userId",
          "roomId",
          "timestamp",
          "from"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<ActivityFacebookChatLog, 'id'>"
      },
      "ActivityFacebookChatLogWithRelations": {
        "title": "ActivityFacebookChatLogWithRelations",
        "type": "object",
        "description": "(tsType: ActivityFacebookChatLogWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "roomId": {
            "type": "string"
          },
          "messageType": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "from": {
            "type": "string"
          },
          "isCustomer": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "dealId",
          "userId",
          "roomId",
          "timestamp",
          "from"
        ],
        "additionalProperties": false,
        "x-typescript-type": "ActivityFacebookChatLogWithRelations"
      },
      "ActivityFacebookChatLogPartial": {
        "title": "ActivityFacebookChatLogPartial",
        "type": "object",
        "description": "(tsType: Partial<ActivityFacebookChatLog>, schemaOptions: { partial: true })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "userId": {
            "type": "number"
          },
          "roomId": {
            "type": "string"
          },
          "messageType": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "from": {
            "type": "string"
          },
          "isCustomer": {
            "type": "boolean"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<ActivityFacebookChatLog>"
      },
      "ActivityDeal": {
        "title": "ActivityDeal",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "activityId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "oldData": {
            "type": "string"
          },
          "newData": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NewActivityDeal": {
        "title": "NewActivityDeal",
        "type": "object",
        "description": "(tsType: Omit<ActivityDelivery, 'id'>, schemaOptions: { title: 'NewActivityDeal', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "activityId": {
            "type": "number"
          },
          "pos": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Omit<ActivityDelivery, 'id'>"
      },
      "ActivityDelivery": {
        "title": "ActivityDelivery",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "activityId": {
            "type": "number"
          },
          "pos": {
            "type": "number"
          },
          "type": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "remark": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NewActivity": {
        "title": "NewActivity",
        "type": "object",
        "description": "(tsType: Omit<Activity, 'id'>, schemaOptions: { title: 'NewActivity', exclude: [ 'id' ] })",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "ref2": {
            "type": "string"
          },
          "eventAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Activity, 'id'>"
      },
      "Activity": {
        "title": "Activity",
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "archivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "number"
          },
          "updatedBy": {
            "type": "number"
          },
          "archivedBy": {
            "type": "number"
          },
          "id": {
            "type": "number"
          },
          "dealId": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "refId": {
            "type": "string"
          },
          "ref2": {
            "type": "string"
          },
          "eventAt": {
            "type": "string",
            "format": "date-time"
          },
          "remark": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false
      },
      "loopback.Count": {
        "type": "object",
        "title": "loopback.Count",
        "x-typescript-type": "@loopback/repository#Count",
        "properties": {
          "count": {
            "type": "number"
          }
        }
      },
      "activities.Filter": {
        "type": "object",
        "title": "activities.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "dealId": {
                    "type": "boolean"
                  },
                  "text": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "event": {
                    "type": "boolean"
                  },
                  "refId": {
                    "type": "boolean"
                  },
                  "ref2": {
                    "type": "boolean"
                  },
                  "eventAt": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "dealId",
                    "text",
                    "type",
                    "event",
                    "refId",
                    "ref2",
                    "eventAt",
                    "remark"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "activities.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Activity>"
      },
      "activities.Filter1": {
        "type": "object",
        "title": "activities.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "activities.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "dealId": {
                    "type": "boolean"
                  },
                  "text": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "event": {
                    "type": "boolean"
                  },
                  "refId": {
                    "type": "boolean"
                  },
                  "ref2": {
                    "type": "boolean"
                  },
                  "eventAt": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "dealId",
                    "text",
                    "type",
                    "event",
                    "refId",
                    "ref2",
                    "eventAt",
                    "remark"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "activities.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Activity>"
      },
      "activity_facebook_chat_log.Filter": {
        "type": "object",
        "title": "activity_facebook_chat_log.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "dealId": {
                    "type": "boolean"
                  },
                  "userId": {
                    "type": "boolean"
                  },
                  "roomId": {
                    "type": "boolean"
                  },
                  "messageType": {
                    "type": "boolean"
                  },
                  "message": {
                    "type": "boolean"
                  },
                  "timestamp": {
                    "type": "boolean"
                  },
                  "from": {
                    "type": "boolean"
                  },
                  "isCustomer": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "dealId",
                    "userId",
                    "roomId",
                    "messageType",
                    "message",
                    "timestamp",
                    "from",
                    "isCustomer",
                    "remark"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "activity_facebook_chat_log.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<ActivityFacebookChatLog>"
      },
      "activity_facebook_chat_log.Filter1": {
        "type": "object",
        "title": "activity_facebook_chat_log.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "activity_facebook_chat_log.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "dealId": {
                    "type": "boolean"
                  },
                  "userId": {
                    "type": "boolean"
                  },
                  "roomId": {
                    "type": "boolean"
                  },
                  "messageType": {
                    "type": "boolean"
                  },
                  "message": {
                    "type": "boolean"
                  },
                  "timestamp": {
                    "type": "boolean"
                  },
                  "from": {
                    "type": "boolean"
                  },
                  "isCustomer": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "dealId",
                    "userId",
                    "roomId",
                    "messageType",
                    "message",
                    "timestamp",
                    "from",
                    "isCustomer",
                    "remark"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "activity_facebook_chat_log.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<ActivityFacebookChatLog>"
      },
      "activity_line_chat_log.Filter": {
        "type": "object",
        "title": "activity_line_chat_log.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "dealId": {
                    "type": "boolean"
                  },
                  "userId": {
                    "type": "boolean"
                  },
                  "roomId": {
                    "type": "boolean"
                  },
                  "messageType": {
                    "type": "boolean"
                  },
                  "message": {
                    "type": "boolean"
                  },
                  "timestamp": {
                    "type": "boolean"
                  },
                  "from": {
                    "type": "boolean"
                  },
                  "isCustomer": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  },
                  "platform": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "dealId",
                    "userId",
                    "roomId",
                    "messageType",
                    "message",
                    "timestamp",
                    "from",
                    "isCustomer",
                    "remark",
                    "platform"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "activity_line_chat_log.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<ActivityLineChatLog>"
      },
      "activity_line_chat_log.Filter1": {
        "type": "object",
        "title": "activity_line_chat_log.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "activity_line_chat_log.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "dealId": {
                    "type": "boolean"
                  },
                  "userId": {
                    "type": "boolean"
                  },
                  "roomId": {
                    "type": "boolean"
                  },
                  "messageType": {
                    "type": "boolean"
                  },
                  "message": {
                    "type": "boolean"
                  },
                  "timestamp": {
                    "type": "boolean"
                  },
                  "from": {
                    "type": "boolean"
                  },
                  "isCustomer": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  },
                  "platform": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "dealId",
                    "userId",
                    "roomId",
                    "messageType",
                    "message",
                    "timestamp",
                    "from",
                    "isCustomer",
                    "remark",
                    "platform"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "activity_line_chat_log.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<ActivityLineChatLog>"
      },
      "activity_tasks.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "activity_tasks.ScopeFilter"
      },
      "activity_tasks.IncludeFilter.Items": {
        "title": "activity_tasks.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "customer",
              "taskChecklists",
              "assignees",
              "taskLabels",
              "taskComments"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/activity_tasks.ScopeFilter"
          }
        }
      },
      "activity_tasks.Filter": {
        "type": "object",
        "title": "activity_tasks.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "boolean"
                  },
                  "note": {
                    "type": "boolean"
                  },
                  "dealId": {
                    "type": "boolean"
                  },
                  "customerId": {
                    "type": "boolean"
                  },
                  "dueDate": {
                    "type": "boolean"
                  },
                  "state": {
                    "type": "boolean"
                  },
                  "lat": {
                    "type": "boolean"
                  },
                  "lng": {
                    "type": "boolean"
                  },
                  "stageId": {
                    "type": "boolean"
                  },
                  "assignBy": {
                    "type": "boolean"
                  },
                  "feedback": {
                    "type": "boolean"
                  },
                  "workflowConfigId": {
                    "type": "boolean"
                  },
                  "automateConfigId": {
                    "type": "boolean"
                  },
                  "hide": {
                    "type": "boolean"
                  },
                  "completedAt": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "title",
                    "note",
                    "dealId",
                    "customerId",
                    "dueDate",
                    "state",
                    "lat",
                    "lng",
                    "stageId",
                    "assignBy",
                    "feedback",
                    "workflowConfigId",
                    "automateConfigId",
                    "hide",
                    "completedAt",
                    "remark"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "activity_tasks.Fields"
          },
          "include": {
            "title": "activity_tasks.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/activity_tasks.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<ActivityTask>"
      },
      "activity_tasks.Filter1": {
        "type": "object",
        "title": "activity_tasks.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "activity_tasks.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "boolean"
                  },
                  "note": {
                    "type": "boolean"
                  },
                  "dealId": {
                    "type": "boolean"
                  },
                  "customerId": {
                    "type": "boolean"
                  },
                  "dueDate": {
                    "type": "boolean"
                  },
                  "state": {
                    "type": "boolean"
                  },
                  "lat": {
                    "type": "boolean"
                  },
                  "lng": {
                    "type": "boolean"
                  },
                  "stageId": {
                    "type": "boolean"
                  },
                  "assignBy": {
                    "type": "boolean"
                  },
                  "feedback": {
                    "type": "boolean"
                  },
                  "workflowConfigId": {
                    "type": "boolean"
                  },
                  "automateConfigId": {
                    "type": "boolean"
                  },
                  "hide": {
                    "type": "boolean"
                  },
                  "completedAt": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "title",
                    "note",
                    "dealId",
                    "customerId",
                    "dueDate",
                    "state",
                    "lat",
                    "lng",
                    "stageId",
                    "assignBy",
                    "feedback",
                    "workflowConfigId",
                    "automateConfigId",
                    "hide",
                    "completedAt",
                    "remark"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "activity_tasks.Fields"
          },
          "include": {
            "title": "activity_tasks.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/activity_tasks.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<ActivityTask>"
      },
      "call.Filter": {
        "type": "object",
        "title": "call.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "dealId": {
                    "type": "boolean"
                  },
                  "customerId": {
                    "type": "boolean"
                  },
                  "contactPersonId": {
                    "type": "boolean"
                  },
                  "assignBy": {
                    "type": "boolean"
                  },
                  "assignTo": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "callAt": {
                    "type": "boolean"
                  },
                  "stageId": {
                    "type": "boolean"
                  },
                  "phoneNumber": {
                    "type": "boolean"
                  },
                  "phone": {
                    "type": "boolean"
                  },
                  "extension": {
                    "type": "boolean"
                  },
                  "countryCode": {
                    "type": "boolean"
                  },
                  "dialCode": {
                    "type": "boolean"
                  },
                  "duration": {
                    "type": "boolean"
                  },
                  "feedback": {
                    "type": "boolean"
                  },
                  "feedbackRating": {
                    "type": "boolean"
                  },
                  "feedbackDuration": {
                    "type": "boolean"
                  },
                  "statusAt": {
                    "type": "boolean"
                  },
                  "automateConfigId": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "dealId",
                    "customerId",
                    "contactPersonId",
                    "assignBy",
                    "assignTo",
                    "title",
                    "description",
                    "status",
                    "callAt",
                    "stageId",
                    "phoneNumber",
                    "phone",
                    "extension",
                    "countryCode",
                    "dialCode",
                    "duration",
                    "feedback",
                    "feedbackRating",
                    "feedbackDuration",
                    "statusAt",
                    "automateConfigId",
                    "remark"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "call.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Call>"
      },
      "call.Filter1": {
        "type": "object",
        "title": "call.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "call.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "dealId": {
                    "type": "boolean"
                  },
                  "customerId": {
                    "type": "boolean"
                  },
                  "contactPersonId": {
                    "type": "boolean"
                  },
                  "assignBy": {
                    "type": "boolean"
                  },
                  "assignTo": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "boolean"
                  },
                  "description": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "callAt": {
                    "type": "boolean"
                  },
                  "stageId": {
                    "type": "boolean"
                  },
                  "phoneNumber": {
                    "type": "boolean"
                  },
                  "phone": {
                    "type": "boolean"
                  },
                  "extension": {
                    "type": "boolean"
                  },
                  "countryCode": {
                    "type": "boolean"
                  },
                  "dialCode": {
                    "type": "boolean"
                  },
                  "duration": {
                    "type": "boolean"
                  },
                  "feedback": {
                    "type": "boolean"
                  },
                  "feedbackRating": {
                    "type": "boolean"
                  },
                  "feedbackDuration": {
                    "type": "boolean"
                  },
                  "statusAt": {
                    "type": "boolean"
                  },
                  "automateConfigId": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "dealId",
                    "customerId",
                    "contactPersonId",
                    "assignBy",
                    "assignTo",
                    "title",
                    "description",
                    "status",
                    "callAt",
                    "stageId",
                    "phoneNumber",
                    "phone",
                    "extension",
                    "countryCode",
                    "dialCode",
                    "duration",
                    "feedback",
                    "feedbackRating",
                    "feedbackDuration",
                    "statusAt",
                    "automateConfigId",
                    "remark"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "call.Fields"
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Call>"
      },
      "customers.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "customers.ScopeFilter"
      },
      "customers.IncludeFilter.Items": {
        "title": "customers.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "phones",
              "emails",
              "addresses",
              "accesses",
              "customerSocialMedias",
              "customerContacts",
              "jobs",
              "employees",
              "labels",
              "customerOrganizationInfo",
              "customerPersonInfo",
              "personalData",
              "organizationInfo",
              "customerJobs",
              "customerJobsAsEmployee",
              "flows",
              "customerCustomFields"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/customers.ScopeFilter"
          }
        }
      },
      "customers.Filter": {
        "type": "object",
        "title": "customers.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "customerId": {
                    "type": "boolean"
                  },
                  "relatedToUserId": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "hashAlphabet": {
                    "type": "boolean"
                  },
                  "profileImageUrl": {
                    "type": "boolean"
                  },
                  "profileImageId": {
                    "type": "boolean"
                  },
                  "taxId": {
                    "type": "boolean"
                  },
                  "industry": {
                    "type": "boolean"
                  },
                  "role": {
                    "type": "boolean"
                  },
                  "website": {
                    "type": "boolean"
                  },
                  "branch": {
                    "type": "boolean"
                  },
                  "note": {
                    "type": "boolean"
                  },
                  "noteCreatedBy": {
                    "type": "boolean"
                  },
                  "noteCreatedAt": {
                    "type": "boolean"
                  },
                  "source": {
                    "type": "boolean"
                  },
                  "refId": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "boolean"
                  },
                  "gender": {
                    "type": "boolean"
                  },
                  "segment": {
                    "type": "boolean"
                  },
                  "company": {
                    "type": "boolean"
                  },
                  "jobTitle": {
                    "type": "boolean"
                  },
                  "department": {
                    "type": "boolean"
                  },
                  "segmentEndUserId": {
                    "type": "boolean"
                  },
                  "creditNote": {
                    "type": "boolean"
                  },
                  "accountReceivableBalance": {
                    "type": "boolean"
                  },
                  "priorityValue": {
                    "type": "boolean"
                  },
                  "buyingCircle": {
                    "type": "boolean"
                  },
                  "lastWonDate": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "customerId",
                    "relatedToUserId",
                    "type",
                    "name",
                    "hashAlphabet",
                    "profileImageUrl",
                    "profileImageId",
                    "taxId",
                    "industry",
                    "role",
                    "website",
                    "branch",
                    "note",
                    "noteCreatedBy",
                    "noteCreatedAt",
                    "source",
                    "refId",
                    "title",
                    "gender",
                    "segment",
                    "company",
                    "jobTitle",
                    "department",
                    "segmentEndUserId",
                    "creditNote",
                    "accountReceivableBalance",
                    "priorityValue",
                    "buyingCircle",
                    "lastWonDate",
                    "remark"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "customers.Fields"
          },
          "include": {
            "title": "customers.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/customers.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Customer>"
      },
      "customers.Filter1": {
        "type": "object",
        "title": "customers.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "customers.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "customerId": {
                    "type": "boolean"
                  },
                  "relatedToUserId": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "hashAlphabet": {
                    "type": "boolean"
                  },
                  "profileImageUrl": {
                    "type": "boolean"
                  },
                  "profileImageId": {
                    "type": "boolean"
                  },
                  "taxId": {
                    "type": "boolean"
                  },
                  "industry": {
                    "type": "boolean"
                  },
                  "role": {
                    "type": "boolean"
                  },
                  "website": {
                    "type": "boolean"
                  },
                  "branch": {
                    "type": "boolean"
                  },
                  "note": {
                    "type": "boolean"
                  },
                  "noteCreatedBy": {
                    "type": "boolean"
                  },
                  "noteCreatedAt": {
                    "type": "boolean"
                  },
                  "source": {
                    "type": "boolean"
                  },
                  "refId": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "boolean"
                  },
                  "gender": {
                    "type": "boolean"
                  },
                  "segment": {
                    "type": "boolean"
                  },
                  "company": {
                    "type": "boolean"
                  },
                  "jobTitle": {
                    "type": "boolean"
                  },
                  "department": {
                    "type": "boolean"
                  },
                  "segmentEndUserId": {
                    "type": "boolean"
                  },
                  "creditNote": {
                    "type": "boolean"
                  },
                  "accountReceivableBalance": {
                    "type": "boolean"
                  },
                  "priorityValue": {
                    "type": "boolean"
                  },
                  "buyingCircle": {
                    "type": "boolean"
                  },
                  "lastWonDate": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "customerId",
                    "relatedToUserId",
                    "type",
                    "name",
                    "hashAlphabet",
                    "profileImageUrl",
                    "profileImageId",
                    "taxId",
                    "industry",
                    "role",
                    "website",
                    "branch",
                    "note",
                    "noteCreatedBy",
                    "noteCreatedAt",
                    "source",
                    "refId",
                    "title",
                    "gender",
                    "segment",
                    "company",
                    "jobTitle",
                    "department",
                    "segmentEndUserId",
                    "creditNote",
                    "accountReceivableBalance",
                    "priorityValue",
                    "buyingCircle",
                    "lastWonDate",
                    "remark"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "customers.Fields"
          },
          "include": {
            "title": "customers.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/customers.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Customer>"
      },
      "deals.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "deals.ScopeFilter"
      },
      "deals.IncludeFilter.Items": {
        "title": "deals.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "customer",
              "wonQuotation",
              "pipeline",
              "salesStage",
              "contacts",
              "dealProducts",
              "dealQuotations",
              "dealUsers",
              "dealContacts",
              "labels",
              "files",
              "flows",
              "dealMeetings",
              "calls"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/deals.ScopeFilter"
          }
        }
      },
      "deals.Filter": {
        "type": "object",
        "title": "deals.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "customerId": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "value": {
                    "type": "boolean"
                  },
                  "wonQuotationId": {
                    "type": "boolean"
                  },
                  "pos": {
                    "type": "boolean"
                  },
                  "pin": {
                    "type": "boolean"
                  },
                  "closingDate": {
                    "type": "boolean"
                  },
                  "estDeliveryDate": {
                    "type": "boolean"
                  },
                  "pipelineId": {
                    "type": "boolean"
                  },
                  "stageId": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "statusAt": {
                    "type": "boolean"
                  },
                  "paymentFinish": {
                    "type": "boolean"
                  },
                  "channelId": {
                    "type": "boolean"
                  },
                  "refId": {
                    "type": "boolean"
                  },
                  "source": {
                    "type": "boolean"
                  },
                  "leadSourceId": {
                    "type": "boolean"
                  },
                  "referralToUserId": {
                    "type": "boolean"
                  },
                  "referralToPipelineId": {
                    "type": "boolean"
                  },
                  "isReferralAccepted": {
                    "type": "boolean"
                  },
                  "confidenceLevel": {
                    "type": "boolean"
                  },
                  "deliveryCompletedDate": {
                    "type": "boolean"
                  },
                  "explanation": {
                    "type": "boolean"
                  },
                  "closedAt": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "customerId",
                    "name",
                    "value",
                    "wonQuotationId",
                    "pos",
                    "pin",
                    "closingDate",
                    "estDeliveryDate",
                    "pipelineId",
                    "stageId",
                    "status",
                    "statusAt",
                    "paymentFinish",
                    "channelId",
                    "refId",
                    "source",
                    "leadSourceId",
                    "referralToUserId",
                    "referralToPipelineId",
                    "isReferralAccepted",
                    "confidenceLevel",
                    "deliveryCompletedDate",
                    "explanation",
                    "closedAt",
                    "remark"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "deals.Fields"
          },
          "include": {
            "title": "deals.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/deals.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Deal>"
      },
      "pipeline_member.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "pipeline_member.ScopeFilter"
      },
      "pipeline_member.IncludeFilter.Items": {
        "title": "pipeline_member.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "pipeline"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/pipeline_member.ScopeFilter"
          }
        }
      },
      "pipeline_member.Filter": {
        "type": "object",
        "title": "pipeline_member.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "pipeline_member.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "archivedAt": {
                    "type": "boolean"
                  },
                  "createdBy": {
                    "type": "boolean"
                  },
                  "updatedBy": {
                    "type": "boolean"
                  },
                  "archivedBy": {
                    "type": "boolean"
                  },
                  "id": {
                    "type": "boolean"
                  },
                  "pipelineId": {
                    "type": "boolean"
                  },
                  "userId": {
                    "type": "boolean"
                  },
                  "role": {
                    "type": "boolean"
                  },
                  "autoAssignedDealCount": {
                    "type": "boolean"
                  },
                  "remark": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "createdAt",
                    "updatedAt",
                    "archivedAt",
                    "createdBy",
                    "updatedBy",
                    "archivedBy",
                    "id",
                    "pipelineId",
                    "userId",
                    "role",
                    "autoAssignedDealCount",
                    "remark"
                  ],
                  "example": "createdAt"
                },
                "uniqueItems": true
              }
            ],
            "title": "pipeline_member.Fields"
          },
          "include": {
            "title": "pipeline_member.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/pipeline_member.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<PipelineMember>"
      }
    }
  },
  "servers": [
    {
      "url": "http://localhost:3000",
      "description": "localhost"
    },
    {
      "url": "https://staging-api.wisible.com",
      "description": "staging-api"
    }
  ],
  "endpointMapping": {
    "/openapi.json": {
      "version": "3.0.0",
      "format": "json"
    },
    "/openapi.yaml": {
      "version": "3.0.0",
      "format": "yaml"
    }
  }
}