Chegamos a uma das etapas mais cruciais da construção do nosso Mini CRM Lead Tracker: transformar o Diagrama ER em código real.
Esse não é um simples “create table”. É a fundação que define se o projeto vai ser escalável, saudável e preparado pro futuro — ou se vai virar uma bomba-relógio nas mãos de quem for manter.
🧠 Pensamento de Arquitetura
Antes de qualquer linha de código, cada tabela foi pensada para representar entidades reais do negócio:
- Companies — Cada cliente que contrata nosso CRM.
- Users — Usuários que pertencem às empresas.
- Roles — Permissões e perfis (admin, operador, etc.).
- Leads — Os potenciais clientes que serão gerenciados no CRM.
- Kanban Stages — Os estágios do funil de vendas (ex.: Contato, Proposta, Fechamento).
- Activity Logs — Histórico de movimentações e ações nos leads.
Se o banco não faz sentido, nenhum código faz.
🔗 Modelagem no Laravel
Criamos cada entidade com migrations profissionais:
php artisan make:model Company -m
php artisan make:model Role -m
php artisan make:model User --migration
php artisan make:model Lead -m
php artisan make:model KanbanStage -m
php artisan make:model ActivityLog -m
Cada migration vem com:
✔️ Relacionamentos bem definidos (FK e cascade).
✔️ Comentários explicando o motivo de cada tabela.
✔️ Organização que permite escalar e crescer sem virar gambiarra.
Esse é o tipo de detalhe que separa projetos amadores de projetos que podem virar produtos reais.
📑 Swagger: documentando desde o início
Se você acha que documentação é tarefa do fim… tá errado. Documentamos nossa API desde agora.
O arquivo /docs/swagger.yaml
já descreve os primeiros endpoints de leads — e vai crescer junto com o sistema.
➡️ O Swagger não é só documentação. É um contrato entre backend, frontend e futuro.
🚀 Resultado dessa etapa:
✅ Banco de dados modelado e com integridade.
✅ Arquitetura de dados pronta pra escalar.
✅ Documentação Swagger iniciada.
✅ GitHub organizado, com README.md
profissional e LICENSE
personalizada.
Esse não é mais um projeto aleatório no GitHub. É um CRM real, construído como sistemas reais são feitos.
“Cada migration aqui não é só um banco de dados. É a tradução da regra de negócio, do entendimento do produto e do respeito por quem vai usar e por quem vai manter esse código no futuro.”
O Diário de Bordo segue. No próximo capítulo, partimos para os Controllers e primeiros endpoints REST. Bora construir junto!