Initial commit
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# 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
|
||||
|
||||
1. Criar as migrations Flyway, uma tabela por arquivo, na ordem de dependência (por causa das foreign keys):
|
||||
- `V2__create_usuarios.sql`
|
||||
- `V3__create_ramos.sql`
|
||||
- `V4__create_proxies.sql`
|
||||
- `V5__create_buscas.sql`
|
||||
- `V6__create_leads.sql`
|
||||
- `V7__create_telefones.sql`
|
||||
- `V8__create_historico_contato.sql`
|
||||
2. Usar exatamente o DDL definido em `ARQUITETURA-SCHEMA.md` seção 4 (colunas, tipos, constraints, índices) — não improvisar campos novos sem atualizar o documento antes
|
||||
3. 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
|
||||
4. 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`
|
||||
5. 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`
|
||||
Reference in New Issue
Block a user