Skip to content

TDD — Classe de Domínio `Church`

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

Registrar a definição técnica da classe Church e seus objetos auxiliares no domínio, seguindo ADR-0005, ADR-0007 e ADR-0025.

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

Church representa a igreja/unidade no domínio e não terá ministryId neste modelo, pois a igreja já está contida no escopo do ministério.

Arquivo alvo de código:

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

Campos previstos (com tipo):

  1. id: String
  2. name: String
  3. description: String?
  4. status: String (código do domínio ChurchStatus)
  5. address: ChurchAddress?
  6. contacts: ChurchContacts?
  7. hasPrivateParking: bool?
  8. geo: GeoPointLite?
  9. photoUrl: String?
  10. websiteUrl: String?
  11. social: ChurchSocialLinks?
  12. additionalInfo: String?
  13. rolePeople: ChurchRolePeople?

O campo status deve armazenar o código da situação da igreja.

CódigoDescrição amigável
ACTIVEAtiva
INACTIVEInativa
PENDINGPendente de ativação
BLOCKEDBloqueada
ARCHIVEDArquivada
  • street: String?
  • number: String?
  • district: String?
  • city: String?
  • state: String?
  • zipCode: String?
  • complement: String?
  • phonePrimary: String?
  • phoneSecondary: String?
  • whatsapp: String?
  • latitude: double?
  • longitude: double?
  • instagram: String?
  • facebook: String?
  • youtube: String?
  • other: String?
  • pastor (ChurchPersonRef?)
  • secretary (ChurchPersonRef?)
  • assistantPastor (ChurchPersonRef?)
  • ebdSuperintendent (ChurchPersonRef?)
  • otherRoles (Map<String, ChurchPersonRef>)
  • userId: String
  • name: String
  • phone: String?
  • email: String?
  • Sem toMap/fromMap nesta primeira versão.
  • Sem regras de negócio de autorização nesta camada.
  • Classe deve permanecer pura de domínio (sem Flutter/Firebase).
  • Persistência Firestore.
  • Mapeadores em infrastructure.
  • Ajuste de fluxos de cadastro/login/perfil.
  • Migração de dados.
  • docs/architecture/adrs/adr-0005-modelo-de-dominio-conceitual.md
  • docs/architecture/adrs/adr-0007-padrao-de-organizacao-de-codigo.md
  • docs/architecture/adrs/adr-0025-padrao-de-classes-de-referencia-no-dominio.md
  • docs/architecture/data-model/padrao-referencias-firestore.md