2 Contatos
Rafael Lopes edited this page 2026-06-01 15:44:21 -03:00

Contatos e Agenda

Base tecnica:

  • Module: src/modules/contacts/contacts.module.ts
  • Controller: src/modules/contacts/contacts.controller.ts
  • Service: src/modules/contacts/contacts.service.ts
  • Repository: src/modules/contacts/repositories/contacts.repository.ts
  • DTOs: src/modules/contacts/dto/contact.dto.ts
  • Prefixo: /contacts

Responsabilidade

Gerencia agenda e perfil de contatos usados no chat e na abertura ativa.

O modulo fica separado de admin porque contato e um dominio operacional usado por chat, atendimento ativo e canais futuros. O prefixo /contacts foi mantido para preservar compatibilidade com o frontend.

Endpoints

Metodo Rota Descricao
GET /contacts Lista agenda
GET /contacts/:chatId Busca contato por chat/WhatsApp
PUT /contacts/:chatId Cria ou atualiza contato

Campos principais

  • chat_id: identificador WhatsApp, geralmente 5511999999999@c.us.
  • phone: numero WhatsApp.
  • call_sms_phone: numero para ligacao/SMS.
  • email: email do contato.
  • name: nome.
  • company: campo historico usado como etiqueta de identificacao.
  • note: observacao.
  • user_id: usuario que salvou/atualizou.

Code review

O nome tecnico company permaneceu por compatibilidade, mas na interface o conceito virou Etiqueta de identificacao.

O modulo segue:

Controller -> Service -> Repository -> DatabaseService
  • Controller: rotas, Swagger e DTO.
  • Service: normalizacao de telefone, email e textos.
  • Repository: SQL da tabela agenda_contatos.
  • DatabaseService: pool PostgreSQL.

O schema nao e criado em runtime. A tabela agenda_contatos deve existir via migrations 010_agenda_contatos.sql e 023_agenda_contact_channels.sql.