Database¶
Objetivo¶
Definir a estrutura lógica do banco de dados do CoreFlow CRM.
Este documento estabelece as diretrizes para modelagem, persistência, integridade e relacionamento das entidades do CRM.
Banco Oficial¶
- PostgreSQL 16+
ORM Oficial¶
- Django ORM
Identificação¶
Todas as tabelas deverão utilizar:
- UUID como chave primária
Nunca utilizar IDs sequenciais em entidades de negócio.
Multiempresa¶
Todas as tabelas deverão possuir:
Toda consulta deverá respeitar o tenant ativo.
Auditoria¶
Todas as tabelas deverão possuir:
Exclusão¶
Soft Delete obrigatório.
Campos:
Entidades Principais¶
Leads¶
Responsável pela captação de potenciais clientes.
Contacts¶
Pessoas vinculadas às empresas.
Accounts¶
Empresas ou clientes.
Opportunities¶
Negociações comerciais.
Activities¶
Histórico de interações.
Proposals¶
Propostas comerciais.
Campaigns¶
Campanhas de marketing.
Customer Success¶
Relacionamento pós-venda.
Relacionamentos¶
erDiagram
LEADS ||--o{ ACTIVITIES : possui
ACCOUNTS ||--o{ CONTACTS : possui
ACCOUNTS ||--o{ OPPORTUNITIES : possui
OPPORTUNITIES ||--o{ PROPOSALS : gera
CAMPAIGNS ||--o{ LEADS : origem
Integridade¶
Obrigatório:
- Foreign Keys
- Índices
- Constraints
- Unique Keys
- Check Constraints
Índices¶
Criar índices para:
- company_id
- status
- responsible_id
- created_at
- updated_at
Convenções¶
Nome das tabelas:
- snake_case
- plural
Exemplos:
Convenções de Campos¶
Performance¶
Utilizar:
- índices compostos
- paginação
- eager loading quando necessário
- consultas otimizadas
Migrações¶
Todas as alterações deverão ocorrer através de migrações versionadas.
Nunca alterar tabelas manualmente em produção.
Backup¶
Banco preparado para:
- backup completo
- backup incremental
- restore por ambiente
Segurança¶
- LGPD
- Criptografia quando aplicável
- Auditoria
- RBAC
- Controle por empresa
Objetivo Final¶
Disponibilizar um modelo de dados consistente, performático, escalável e alinhado aos princípios da CoreFlow Platform.