Skip to content

TDD — Classe de Domínio `EbdSessionNew`

Aprovado para implementação da classe (sem integração de uso)

Registrar a definição técnica da classe EbdSessionNew no domínio, preservando a EbdSession atual e permitindo evolução segura da modelagem.

  • Criar apenas a classe de domínio e tipos auxiliares.
  • Não integrar em repository, use case, DI, UI ou backend nesta etapa.

Arquivo alvo de código:

  • frontend/lib/domain/entities/ebd_session_new.dart

Campos previstos (com tipo):

  1. id: String
  2. unitId: String
  3. date: DateTime
  4. status: EbdSessionNewStatus
  5. type: EbdSessionNewType
  6. replaceCause: EbdSessionNewReplaceCause?
  7. replaceCauseObservation: String?
  8. weatherType: EbdSessionNewWeatherType?
  9. temperature: EbdSessionNewWeatherTemperature?
  10. totalStudents: int
  11. totalVisitors: int
  12. totalLeaders: int
  13. totalWorkers: int
  14. totalPastors: int
  15. observation: String?
  16. principals: List<String>
  17. classes: List<EbdClass>

Domínios de enum (código + descrição amigável)

Section titled “Domínios de enum (código + descrição amigável)”
CódigoDescrição amigável
CREATEDCriada
IN_PROGRESSEm andamento
CONCLUDEDConcluída
CLOSEDEncerrada
CódigoDescrição amigável
FULL_CLASSClasse completa
REGULAR_CLASSClasse regular
UNIQUE_CLASSClasse única
ONLINE_CLASSClasse online
CANCELEDCancelada
REPLACED_BY_EVENTSubstituída por evento
REPLACED_BY_CULTSubstituída por culto
CódigoDescrição amigável
LOCAL_EVENTEvento local
MINISTERIAL_EVENTEvento ministerial
BAPTISMBatismo
WEATHER_CONDITIONCondição climática
INFRA_FAULTFalha de infraestrutura
ELECTRIC_FAULTFalha elétrica
SUPERIOR_DECISIONDecisão superior
OTHEROutro
CódigoDescrição amigável
SUNNYEnsolarado
PARTLY_CLOUDYParcialmente nublado
CLOUDYNublado
LIGHT_RAINChuva leve
HEAVY_RAINChuva forte
THUNDERSTORMTempestade
FOGNeblina
CódigoDescrição amigável
VERY_COLDMuito frio
COLDFrio
MILDAmeno
WARMQuente
VERY_WARMMuito quente

EbdSessionNew deve compor as classes que ocorreram na sessão pelo campo:

  • classes: List<EbdClass>
  • Sem toMap/fromMap nesta primeira versão.
  • Sem alteração da classe EbdSession existente.
  • Classe deve permanecer pura de domínio (sem Flutter/Firebase).
  • Migração de chamadas de EbdSession para EbdSessionNew.
  • Persistência Firestore da nova classe.
  • Mapeadores em infrastructure.
  • Ajustes de telas e fluxos de relatório.
  • docs/architecture/adrs/adr-0005-modelo-de-dominio-conceitual.md
  • docs/architecture/adrs/adr-0007-padrao-de-organizacao-de-codigo.md
  • docs/architecture/tdd/data-model/tdd-classe-ebd-class.md