Pular para o conteúdo principal

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 loja
  • POST: Cria um novo telefone
  • GET (com ID): Retorna detalhes de um telefone específico
  • PUT: Atualiza completamente um telefone
  • PATCH: Atualiza parcialmente um telefone
  • DELETE: Remove um telefone

Parâmetros de URL

ParâmetroTipoDescrição
dealer_idintegerID da loja
idintegerID 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:

CampoTipoDescrição
idintegerIdentificador único do telefone
dddintegerCódigo DDD (área)
phoneintegerNúmero do telefone (sem DDD)
is_whatsappbooleanIndica se o telefone possui WhatsApp
is_whatsapp_webbooleanIndica se o telefone possui WhatsApp Web
orderintegerOrdem de exibição do telefone
show_in_sitebooleanIndica 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

CampoTipoDescrição
dddintegerCódigo DDD (área)
phoneintegerNúmero do telefone (sem DDD)

Campos Opcionais

CampoTipoDescrição
is_whatsappbooleanIndica se o telefone possui WhatsApp (padrão: false)
is_whatsapp_webbooleanIndica se o telefone possui WhatsApp Web (padrão: false)
orderintegerOrdem de exibição do telefone
show_in_sitebooleanIndica 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 phone deve conter apenas o número, sem DDD (o DDD é informado separadamente no campo ddd)

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."
}