📋 Tickets
GET /api/v1/tickets
Lista tickets com paginação e filtros.
Query Parameters
page(opcional): Número da páginapage_size(opcional): Itens por páginastatus(opcional): Filtrar por status (open,closed,pending)
Response: 200 OK
{
"data": [
{
"id": "uuid",
"ticket_code": "TKT-001",
"contact_id": "uuid",
"subject": "Problema de acesso",
"description": "Não consigo aceder ao sistema",
"status": "open",
"priority": "normal",
"source": "email",
"client_id": "uuid",
"service_id": "uuid",
"assigned_to": "uuid",
"created_at": "2024-01-01T00:00:00Z"
}
],
"page": 1,
"page_size": 25,
"total": 50
}POST /api/v1/tickets
Cria um novo ticket.
Request
{
"ticket_code": "TKT-001",
"contact_id": "uuid",
"subject": "Problema de acesso",
"description": "Não consigo aceder ao sistema",
"status": "open",
"priority": "normal",
"source": "email",
"client_id": "uuid",
"service_id": "uuid"
}Response: 201 Created
{
"id": "uuid",
"ticket_code": "TKT-001",
...
}GET /api/v1/tickets/[id]
Obtém um ticket específico.
Response: 200 OK
PATCH /api/v1/tickets/[id]
Atualiza um ticket.
Request
{
"status": "closed",
"assigned_to": "uuid"
}DELETE /api/v1/tickets/[id]
Deleta um ticket.
Response: 204 No Content
GET /api/v1/tickets/[id]/messages
Lista mensagens de um ticket.
Response: 200 OK
{
"data": [
{
"id": "uuid",
"ticket_id": "uuid",
"author_type": "user",
"author_id": "uuid",
"message": "Olá, como posso ajudar?",
"is_internal": false,
"created_at": "2024-01-01T00:00:00Z"
}
]
}POST /api/v1/tickets/[id]/messages
Adiciona uma mensagem a um ticket.
Request
{
"author_type": "user",
"author_id": "uuid",
"message": "Resposta à mensagem",
"is_internal": false
}