2.2 KiB
2.2 KiB
Etapa 02 — Modelagem das entidades JPA
Objetivo
Implementar as migrations Flyway completas do schema e as entidades JPA correspondentes, conforme definido em ARQUITETURA-SCHEMA.md seção 4.
Contexto
Esta etapa traduz o schema SQL já definido na arquitetura para migrations Flyway numeradas e entidades Java. Não altere o schema aqui — se algo precisar mudar, volte primeiro em ARQUITETURA-SCHEMA.md, versione (v1.1) e só então implemente.
Tarefas
- Criar as migrations Flyway, uma tabela por arquivo, na ordem de dependência (por causa das foreign keys):
V2__create_usuarios.sqlV3__create_ramos.sqlV4__create_proxies.sqlV5__create_buscas.sqlV6__create_leads.sqlV7__create_telefones.sqlV8__create_historico_contato.sql
- Usar exatamente o DDL definido em
ARQUITETURA-SCHEMA.mdseção 4 (colunas, tipos, constraints, índices) — não improvisar campos novos sem atualizar o documento antes - Criar as entidades JPA em
domain/, uma classe por tabela:Usuario,Ramo,Proxy,Busca,Lead,Telefone,HistoricoContato- Usar
@Enumerated(EnumType.STRING)para os campos de status (mais seguro que String livre) — criar enums correspondentes:StatusBusca,StatusLead,StatusProxy - Mapear os relacionamentos (
@ManyToOne,@OneToMany) conforme as foreign keys do schema
- Usar
- Criar as interfaces
repository/(Spring Data JPA) para cada entidade:LeadRepository,BuscaRepository,RamoRepository,ProxyRepository, etc.- Adicionar métodos de consulta que já sabemos que serão necessários:
findByHashDedup,findByCnpj,findByStatus,findByBuscaId
- Adicionar métodos de consulta que já sabemos que serão necessários:
- Rodar a aplicação e validar que todas as migrations aplicam em sequência sem erro em um banco limpo
Critérios de aceite
- Todas as migrations da lista aplicam em sequência em um banco limpo
- Entidades JPA mapeiam corretamente para as tabelas (validar com um teste simples de save/find por entidade)
- Enums de status criados e usados nas entidades correspondentes
- Repositories criados com os métodos de consulta essenciais
- Nenhuma divergência entre o schema SQL aplicado e o definido em
ARQUITETURA-SCHEMA.md