Telefones
Consulte, crie, atualize ou remova telefones de uma loja específica.
Endpoint
GET /dealer/{dealer_id}/phones
POST /dealer/{dealer_id}/phones
GET /dealer/{dealer_id}/phones/{id}
PUT /dealer/{dealer_id}/phones/{id}
PATCH /dealer/{dealer_id}/phones/{id}
DELETE /dealer/{dealer_id}/phones/{id}
Métodos
GET: Lista todos os telefones da lojaPOST: Cria um novo telefoneGET(com ID): Retorna detalhes de um telefone específicoPUT: Atualiza completamente um telefonePATCH: Atualiza parcialmente um telefoneDELETE: Remove um telefone
Parâmetros de URL
| Parâmetro | Tipo | Descrição |
|---|---|---|
dealer_id | integer | ID da loja |
id | integer | ID do telefone (para detalhe, atualização ou remoção) |
Autenticação
Este endpoint requer autenticação via JWT. Inclua o token no header:
Authorization: Bearer {access_token}
Exemplo de Resposta
Lista de Telefones
Status Code: 200 OK
[
{
"id": 1,
"ddd": 11,
"phone": 987654321,
"is_whatsapp": true,
"is_whatsapp_web": false,
"order": 1,
"show_in_site": true
},
{
"id": 2,
"ddd": 11,
"phone": 123456789,
"is_whatsapp": false,
"is_whatsapp_web": false,
"order": 2,
"show_in_site": true
}
]
Detalhe de um Telefone
Status Code: 200 OK
{
"id": 1,
"ddd": 11,
"phone": 987654321,
"is_whatsapp": true,
"is_whatsapp_web": false,
"order": 1,
"show_in_site": true
}
Estrutura de Dados
A resposta é um array de objetos (lista) ou um objeto único (detalhe), onde cada objeto contém:
| Campo | Tipo | Descrição |
|---|---|---|
id | integer | Identificador único do telefone |
ddd | integer | Código DDD (área) |
phone | integer | Número do telefone (sem DDD) |
is_whatsapp | boolean | Indica se o telefone possui WhatsApp |
is_whatsapp_web | boolean | Indica se o telefone possui WhatsApp Web |
order | integer | Ordem de exibição do telefone |
show_in_site | boolean | Indica se o telefone deve ser exibido no site |
Criar um Novo Telefone
Requisição
Método: POST
Endpoint: /dealer/{dealer_id}/phones
Payload:
{
"ddd": 11,
"phone": 987654321,
"is_whatsapp": true,
"is_whatsapp_web": false,
"order": 1,
"show_in_site": true
}
Campos Obrigatórios
| Campo | Tipo | Descrição |
|---|---|---|
ddd | integer | Código DDD (área) |
phone | integer | Número do telefone (sem DDD) |
Campos Opcionais
| Campo | Tipo | Descrição |
|---|---|---|
is_whatsapp | boolean | Indica se o telefone possui WhatsApp (padrão: false) |
is_whatsapp_web | boolean | Indica se o telefone possui WhatsApp Web (padrão: false) |
order | integer | Ordem de exibição do telefone |
show_in_site | boolean | Indica se o telefone deve ser exibido no site (padrão: false) |
Resposta de Sucesso
Status Code: 201 Created
{
"id": 3,
"ddd": 11,
"phone": 987654321,
"is_whatsapp": true,
"is_whatsapp_web": false,
"order": 1,
"show_in_site": true
}
Atualizar um Telefone
Requisição
Método: PUT ou PATCH
Endpoint: /dealer/{dealer_id}/phones/{id}
Payload (PUT - atualização completa):
{
"ddd": 11,
"phone": 987654321,
"is_whatsapp": true,
"is_whatsapp_web": true,
"order": 1,
"show_in_site": true
}
Payload (PATCH - atualização parcial):
{
"is_whatsapp": false,
"order": 2
}
Resposta de Sucesso
Status Code: 200 OK
Retorna o objeto atualizado do telefone.
Remover um Telefone
Requisição
Método: DELETE
Endpoint: /dealer/{dealer_id}/phones/{id}
Resposta de Sucesso
Status Code: 204 No Content
Observações
- Apenas telefones ativos são retornados na lista
- Os telefones são ordenados pelo campo
order(ordem de exibição) - O campo
phonedeve conter apenas o número, sem DDD (o DDD é informado separadamente no campoddd)
Possíveis Retornos de Erro
400 Bad Request
Retornado quando há erros de validação nos dados enviados.
{
"ddd": ["Este campo é obrigatório."],
"phone": ["Este campo é obrigatório."]
}
401 Unauthorized
Retornado quando o token de autenticação não foi fornecido ou é inválido.
{
"detail": "As credenciais de autenticação não foram fornecidas."
}
ou
{
"detail": "Token inválido ou expirado."
}
403 Forbidden
Retornado quando o usuário autenticado não tem permissão para acessar este recurso.
{
"detail": "Você não tem permissão para executar essa ação."
}
404 Not Found
Retornado quando a loja ou o telefone especificado não é encontrado.
{
"detail": "Não encontrado."
}