ADR-0016 — OrganizationalUnit com Igrejas Autorelacionadas e Governança Funcional da EBD
Status
Proposto
Contexto
A modelagem organizacional anterior utilizava níveis nominais fixos de unidade (CHURCH, CONGREGATION, SUBCONGREGATION).
Na operação real, a estrutura é composta por igrejas com vínculo de subordinação administrativa (igreja filha), sem limite previsível de profundidade.
Além disso, a EBD possui uma governança funcional transversal que atua sobre todas as igrejas do ministério, coexistindo com a hierarquia administrativa.
Foi necessário consolidar:
- Modelo organizacional recursivo sem limite de níveis.
- Regras de escopo hierárquico por ancestralidade/descendência.
- Regras de governança funcional da EBD sem criar papéis redundantes.
Decisão
O sistema adotará:
-
Estrutura administrativa em árvore de igrejas autorrelacionadas
OrganizationalUnitrepresenta um nó de igreja.- A relação hierárquica será definida por
parent_unit_id(opcional). - A profundidade da árvore é ilimitada.
- Não haverá tipificação estrutural fixa por
CONGREGATION/SUBCONGREGATION.
-
Escopo hierárquico por relação entre nós
- Acesso e operação serão definidos por combinação de:
- unidade do ator (
unit_id) - unidade-alvo
- relação entre elas:
SAME,ANCESTOR,DESCENDANT,UNRELATED
- unidade do ator (
- Não há acesso lateral entre ramos não relacionados.
- Acesso e operação serão definidos por combinação de:
-
Governança funcional da EBD em eixo transversal
- O eixo funcional da EBD atravessa toda a árvore administrativa.
- Papéis e permissões continuam baseados em ADR-0003 (RBAC + escopo).
- O backend permanece autoridade de autorização.
1. Eixo Administrativo x Eixo Funcional
1.1 Eixo Administrativo
- Baseado em
Ministry -> OrganizationalUnit (árvore). - Define vínculo e alcance hierárquico das operações.
1.2 Eixo Funcional EBD
- Define responsabilidades da EBD (supervisão, secretaria, docência, assistência).
- Não substitui validação de escopo organizacional.
- Toda ação funcional deve respeitar
ministry_ideunit_idválidos para o ator.
2. Governança Funcional da EBD
2.1 Convenções Organizacionais (sem papel sistêmico obrigatório)
- Coordenador Geral EBD
- Vice Coordenador Geral EBD
Esses cargos são convenções organizacionais e não exigem novo papel de sistema obrigatório, podendo ser representados por composição de papéis já existentes e políticas internas do ministério.
2.2 Secretaria Geral e Secretaria Local
- Secretaria pode ser composta por múltiplas pessoas.
- A secretaria pode aprovar atribuições e cadastros "abaixo dela", respeitando RBAC e escopo hierárquico.
- Aprovação sempre validada no backend.
2.3 Classes e Papéis Operacionais
- Classes da EBD são representadas por
ClassGroup. - Professor:
EBD_TEACHER. - Assistente de classe:
EBD_ASSISTENT.
2.4 Equipes de Louvor e Introdução
- Serão tratadas como registro operacional da ocorrência da EBD.
- Não recebem, por este ADR, permissões administrativas adicionais.
3. Regras de Aprovação e Alcance
- Aprovação depende de papel com permissão funcional e escopo hierárquico compatível.
- "Abaixo dela" significa unidade-alvo descendente da unidade do aprovador (ou mesma unidade quando aplicável).
- Aprovação fora da cadeia hierárquica é proibida.
- Operações ministeriais devem respeitar política de escopo ministerial definida nos ADRs de segurança e RBAC.
4. Integração com ADRs Existentes
- ADR-0002: substitui níveis fixos por árvore recursiva.
- ADR-0003: mantém RBAC, atualizando semântica de escopo para relação de ancestralidade.
- ADR-0005: ajusta
OrganizationalUnitpara nó autorrelacionado sem tipos fixos. - ADR-0010: atualiza fluxo de ativação/aprovação para cadeia hierárquica por árvore.
- ADR-0011: comunicações respeitam escopo por árvore.
Consequências
- O sistema fica aderente à realidade organizacional sem limite de níveis.
- Regras de autorização tornam-se mais precisas por relação hierárquica real.
- Evita proliferação de papéis por nomenclatura local.
- Exige validação de ancestralidade/descendência no backend para operações sensíveis.
- Mudanças futuras no modelo de escopo continuam exigindo ADR próprio.