Модели Ticket.
Модель Ticket
| Название | Тип данных | Описание |
|---|---|---|
| id | Int64 | ID тикета |
| client_id | Int64 | ID клиента |
| client | Client | Вложенный объект клиента |
| channel_id | Int64 | ID канала |
| direction | Enum (TicketDirectionEnum) |
Направление (Inbound, Outbound) |
| external_dialog_id | String | Внешний ID диалога |
| subject | String | Тема обращения |
| description | String | Описание обращения |
| responsible_user_id | Int64? | ID ответственного |
| participant_user_ids | Int64[] | Участники-сотрудники тикета |
| status | Enum (TicketStatusEnum) |
Статус тикета (Open, Closed, WaitingClient, WaitingStaff) |
| first_response_date | Int64? | Дата первого ответа |
| first_response_due_date | Int64? | SLA-срок первого ответа |
| resolve_due_date | Int64? | SLA-срок решения |
| sla_breached | Boolean | Признак нарушения SLA |
| sla_breached_date | Int64? | Дата нарушения SLA |
| resolved_date | Int64? | Дата закрытия |
| rating | Int32? | Оценка |
| rating_comment | String | Комментарий к оценке |
| chat_id | String(36) | UUID чата тикета |
| fields | Array of FieldValue | Значения дополнительных полей |
| created_user_id | Int64 | ID пользователя, создавшего запись |
| created_date | Int64 | Дата создания (Unix time, сек.) |
| last_update | Int64 | Дата последнего изменения (Unix time, сек.) |
История по тикету хранится через ChatMessage; отдельная сущность событий тикета не используется.
Инвариант дедупликации: для пары client_id + channel_id допускается только один активный тикет (status IN (Open, WaitingClient, WaitingStaff)). Повторный ticket/add возвращает существующий активный тикет и переиспользует его chat_id.
Пример ответа
{
"ok": true,
"result": {}
}