tdd-objetos-de-referencia
Matriz de decisão
Section titled “Matriz de decisão”| Objeto | Classe *Ref | Classe operacional | Coleção de referência | Coleção real | Observação |
|---|---|---|---|---|---|
| User | Não (por padrão) | Sim | N/A | users | Usuário é majoritariamente operacional |
| Ministry | Sim (MinistryRef) | Sim (Ministry) | ministry_ref (quando houver) | platform/ministrys/{id}/config | Ref útil para catálogo multi-tenant |
| Church | Sim (ChurchRef) | Sim (Church) | church_ref | churchs | Já existe uso de church_ref na plataforma |
| PlatformConfig | Não | Sim (PlatformConfig) | N/A | platform/config | Config é fonte direta da plataforma |
| ClassGroup | Sim (ClassGroupRef) | Sim (ClassGroup) | class_ref | churchs/{unit}/classes | Recomendado para replicação por igreja |
| Material | Sim (MaterialRef) | Sim (Material) | material_ref (planejado) | materials (planejado) | Base para catálogo didático |
| Ebd | Sim (EbdRef) | Opcional (agregado) | ebd_ref | ebds | Ref para modelo/base de ocorrência |
| EbdSession | Não (por padrão) | Sim (EbdSession) | N/A | ebds/{sessionId} | Sessão é ocorrência operacional |
Estrutura mínima recomendada por classe *Ref
Section titled “Estrutura mínima recomendada por classe *Ref”Base comum (BaseRef)
Section titled “Base comum (BaseRef)”idministryId(quando aplicável)sourcePathsourceIdrefKindupdatedAt
ChurchRef
Section titled “ChurchRef”unitIdnamestatus(opcional)
ClassGroupRef
Section titled “ClassGroupRef”unitIdclassIdnameageGroup(opcional)displayOrder(opcional)active(opcional)
EbdRef
Section titled “EbdRef”unitIddate(modelo de data/referência)type(opcional)status(opcional)weatherType(opcional)temperature(opcional)
MaterialRef (planejado)
Section titled “MaterialRef (planejado)”code/materialIdpublishereditionnamereferencePeriod
Fluxo de construção para novos objetos
Section titled “Fluxo de construção para novos objetos”- Classificar o objeto: referência ou operacional.
- Confirmar coleção Firestore (
*_refvs real). - Criar classe no domínio:
*Refpara referência- classe operacional para uso real
- Criar mapeadores em infrastructure.
- Validar checklist:
- naming
- camada correta
- ausência de regra de negócio em presentation
Regras de naming
Section titled “Regras de naming”- Classe referência:
PascalCase + Ref - Arquivo referência:
snake_case_ref.dartou*_ref.dartconforme padrão local - Coleção referência:
snake_case_ref - Coleção real: sem
_ref
Backlog recomendado (curto prazo)
Section titled “Backlog recomendado (curto prazo)”- Introduzir
ChurchRefno frontend domain. - Introduzir
ClassGroupRefno frontend domain. - Introduzir
EbdRefno frontend domain (apenas se houver consumo direto). - Definir roadmap de
MaterialRefematerials.
Referências
Section titled “Referências”- ADR-0025 — Padrão de classes de referência no domínio
- ADR-0005 — Modelo de domínio conceitual
- ADR-0007 — Organização de código
docs/architecture/data-model/padrao-referencias-firestore.md