Skip to content

mapa-ajustes-conformidade-docs

CamadaItensPrioridade
Backend Domain9 entidadesAlta
Backend ApplicationUse cases e serviçosAlta
Backend InfrastructureRepositórios, FirestoreAlta
Frontend Domain9 entidadesAlta
Frontend PresentationHome, presença, aulasMédia
Migração/PlanejamentoADR-0017 (config/data)Média

Referência: ADR-0005, plano-adr-legacy-fields.md

EntidadeStatusObservação
MinistryAusenteid, name, created_at, status (ACTIVE | INACTIVE)
OrganizationalUnit (completa)ParcialExiste apenas SignupChurchOption (unitId, label). Falta entidade com ministry_id, parent_unit_id, code, phone_primary, phone_secondary, email, address, group, pastor_id, secretary_id, foundation_date, status
ClassGroupAusenteid, ministry_id, unit_id, name, age_group, display_order, status
EbdSessionAusenteid, ministry_id, unit_id, date, status, type, replace_cause, weather_type, temperature, totals, principals[], observation
LessonAusenteid, ministry_id, unit_id, ebd_session_id, class_group_id, date, theme, material_id, teacher_id, monitor_id, status, contagens, observation. Subcoleção em EbdSession; inclusão pelo criador; sugestão domingo anterior (data-model-ebd)
AttendanceAusenteid, ministry_id, unit_id, lesson_id, user_id, category, timestamp, method (QR | WIFI | GEO), validated_by_backend
MaterialAusenteid, ministry_id, name, publisher, edition, reference_period
EntidadeCampo/Regra faltanteADR
UserAccountJá alinhado em grande parteADR-0005, ADR-0013
PersonMapear como extensão de User (dados pessoais)ADR-0005
Role / MinistryRoleCatalogVerificar enums vs ADR-0005 (EbdReplaceCause, ClassAgeGroup, EbdSessionType, etc.)ADR-0005
OrganizationNodeRefIncluir parent_unit_id explícito; validar pathIds/pathNames vs ADR-0016ADR-0016
  • ClassAgeGroup (NURSERY, KINDERGARTEN, GARDEN, JUNIORS, TEENAGERS, YOUNG_ADULTS, LEVITES, BAPTISM, EVANGELISM, INTEGRATION, WORKERS, COUPLES, ADULTS, MASTERS, NONE)
  • EbdSessionType (FULL_CLASS, REGULAR_CLASS, UNIQUE_CLASS, ONLINE_CLASS, CANCELED, REPLACED_BY_EVENT, REPLACED_BY_CULT)
  • EbdReplaceCause (LOCAL_EVENT, MINISTERIAL_EVENT, BAPTISM, WEATHER_CONDITION, etc.)
  • LessonStatus (CREATED, IN_PROGRESS, CONCLUDED, CLOSED, NOT_HELD_TODAY, NOT_EXISTS)
  • AttendanceCategory (STUDENT, VISITOR, LEADER, WORKER, PASTOR)
  • AttendanceMethod (QR, WIFI, GEO) — ADR-0004

2. Backend — Application (Use Cases e Serviços)

Section titled “2. Backend — Application (Use Cases e Serviços)”

Referências: ADR-0004, ADR-0013, ADR-0014

FuncionalidadeStatusResponsável
Gerar QR Code dinâmico para Lesson (unit_id, lesson_id, janela temporal)AusenteUse case + handler
Validar scan QR e registrar AttendanceAusenteHandler USER_ATTENDANCE_REGISTER ou equivalente
Validação por Wi-Fi (faixa IP cadastrada, confirmação explícita)AusenteUse case
Geolocalização opcional (confirmação explícita)AusenteUse case
BLEFora da Fase 1Não implementar
FuncionalidadeStatusObservação
Matriz de transição de status (backend como autoridade)ParcialVerificar se todas as transições estão validadas
Auditoria de mudança de status (actor_id, from_status, to_status, reason, timestamp)VerificarAuditLogRepository existe
Onboarding pós-autenticação (dados obrigatórios pendentes)VerificarBackend restringir operações não essenciais até conclusão
Preferências segmentadas (notifications, appearance, usage)ParcialUserPreferences em UserAccount
Ação sugeridaStatus
USER_ATTENDANCE_REGISTER (QR)Ausente
USER_ATTENDANCE_REGISTER (WIFI)Ausente
USER_ATTENDANCE_REGISTER (GEO)Ausente
USER_LESSONS_LIST / USER_MY_LESSONSAusente
USER_ATTENDANCE_HISTORYAusente

Referências: ADR-0005, ADR-0017

3.1 Firestore — Estrutura alvo (ADR-0017)

Section titled “3.1 Firestore — Estrutura alvo (ADR-0017)”
platform/ministrys/{domain}/
├── config/ ← apenas configuração
└── data/
├── churchs/{unit_id}/
│ └── classes/ ← ClassGroup
│ └── ebd_sessions/ ← EbdSession
│ └── lessons/ ← Lesson
│ └── attendances/ ← Attendance
└── users/
ItemStatus
Migração config/churchs → data/churchsPendente
Fallback de leitura (config → data)Verificar repo atual
Coleções: ministrys, churchs (data), classes, ebd_sessions, lessons, attendances, materialsParcial (churchs em config)
RepositórioStatus
FirestoreOrganizationalUnitRepositoryExiste; retorna SignupChurchOption. Adicionar getById, listByParent, campos completos
MinistryRepositoryAusente
ClassGroupRepositoryAusente
EbdSessionRepositoryAusente
LessonRepositoryAusente
AttendanceRepositoryAusente
MaterialRepositoryAusente

Referência: ADR-0005

EntidadeStatus
MinistryAusente
OrganizationalUnitParcial (SignupChurchOption é referência leve)
ClassGroupAusente
EbdSessionAusente
LessonAusente
AttendanceAusente
MaterialAusente
EntidadeAjuste
UserProfileVerificar campos vs ADR-0013: avatar_source, avatar_updated_at, last_login_at, deletion_requested_at, preferences segmentadas
RoleCatalogItemVerificar conformidade com enum de papéis do ADR-0005

Referências: docs/ui/pages/home.md, docs/ui/components/action-card.md, ADR-0009

ComponenteStatusAjuste
_NavTabs (Início, Frequência, Aulas)ExisteAs abas Frequência e Aulas exibem o mesmo conteúdo que Início. Implementar conteúdo distinto:
Frequência: histórico/resumo de presenças, ou lista de aulas com status de presença
Aulas: lista “Minhas aulas” (classes do usuário, próximas sessões)
ActionCard “Registrar presença”ExisteonTap: () {} — placeholder. Implementar navegação para tela de scan QR (ou fluxo WIFI/GEO)
ActionCard “Minhas aulas”ExisteonTap: () {} — placeholder. Implementar navegação para lista de aulas do usuário
_FooterOk”Fiel a todo momento” + versão
Tela/FluxoStatus
Tela de scan QRAusente
Tela de confirmação WIFI (quando em rede da unidade)Ausente
Tela de confirmação GEO (opcional)Ausente
Feedback de sucesso/falha no registroAusente
Tela/FluxoStatus
Lista de classes do usuário (como aluno/professor/monitor)Ausente
Detalhes de aula (Lesson) com opção de registrar presençaAusente
Histórico de presençaAusente

Referências: ADR-0002, ADR-0003, ADR-0016

RegraOnde validar
Toda entidade com ministry_idDomain + backend validation
Entidades com unit_id validam escopo (SAME, ANCESTOR, DESCENDANT, UNRELATED)Backend handlers
Backend como autoridade de autorizaçãoTodos os handlers
Escopo hierárquico por parent_unit_id (ADR-0016)Repositórios e use cases
Firestore somente em infrastructureADR-0007

  1. Criar entidades backend: Ministry, OrganizationalUnit (completa), ClassGroup, EbdSession, Lesson, Attendance, Material
  2. Criar entidades frontend correspondentes
  3. Repositórios Firestore conforme ADR-0017
  1. Use case de geração de QR dinâmico (professor/responsável)
  2. Use case de registro de presença (aluno escaneia QR)
  3. Handler USER_ATTENDANCE_REGISTER no gateway
  4. Telas: scan QR, confirmação, feedback
  5. Conectar ActionCard “Registrar presença” ao fluxo
  1. Use case USER_LESSONS_LIST / USER_MY_LESSONS
  2. Tela lista de aulas
  3. Conectar ActionCard “Minhas aulas” e aba Aulas
  4. Aba Frequência com histórico de presença
  1. Migração config/churchs → data/churchs (ADR-0017)
  2. WIFI e GEO como mecanismos complementares de presença
  3. Onboarding pós-autenticação (ADR-0013)
  4. Preferências segmentadas completas

  • Entidades ADR-0005 implementadas em backend e frontend
  • Estrutura Firestore data/churchs (ADR-0017)
  • Presença por QR implementada (ADR-0004)
  • ActionCards “Registrar presença” e “Minhas aulas” funcionais
  • Abas Frequência e Aulas com conteúdo distinto
  • Ciclo de vida de usuário (ADR-0013) e matriz de transição no backend
  • Escopo hierárquico (parent_unit_id, ANCESTOR/DESCENDANT) validado
  • Gateway único (ADR-0014) com handlers de presença e aulas