Escolas
O módulo Escolas acompanha cada classe de discipulado, trilha de liderança ou curso de treinamento que sua igreja oferece. Uma "escola" no GCM é o contêiner — Fundamentos, Classe de Membresia, Liderança 101, Escola de Ministério. Membros são inscritos em uma escola, trabalham através dos seus objetivos, e eventualmente graduam com uma nota no histórico.

Três coisas para saber de antemão
| Conceito | O que é |
|---|---|
| Escola | Uma classe ou curso (linha em schools). |
| Inscrição | A vaga de um membro em uma escola. Tem um status — enrolled, completed, ou withdrawn. Armazenada em school_enrolments (grafia britânica — sim, de propósito). |
| Graduação | Um registro separado marcando que o membro terminou, com uma data e uma nota opcional. Armazenada em school_graduations. |
Um membro pode ser inscrito em muitas escolas ao mesmo tempo, e uma escola pode ter um longo histórico de graduados anteriores sem perder sua coorte atual. Inscrições e graduações são tabelas independentes para que você possa manter históricos limpos mesmo depois de reorganizar o currículo.
Objetivos e rastreamento de conclusão
Cada escola pode definir uma lista ordenada de objetivos — Ler Gênesis 1-12, Memorizar versículos-chave, Submeter ensaio final. Conforme um aluno trabalha através deles, o pastor de cuidado marca cada objetivo no registro de inscrição. Notas por objetivo também são suportadas.
A linha do aluno mostra uma barra de progresso ao vivo e um contador no estilo 3/8 para que você possa ver de relance quem está no caminho e quem está atrasado.
TIP
Não carregue todos os seus objetivos no dia em que você cria uma escola. Comece com três ou quatro, veja como a primeira coorte se move através deles, depois refine. Escolas que tentam acertar o currículo de antemão geralmente acabam reescrevendo-o de qualquer forma.
Como inscrições fluem para graduações
Quando você marca um membro como graduado, duas coisas acontecem automaticamente:
- Uma nova linha é gravada em
school_graduationscom a data e a nota. - Quaisquer linhas ativas
enrolledpara esse membro e escola são alteradas paracompletede carimbadas com a data de graduação.
Isso significa que você não precisa lembrar de "fechar" a inscrição — graduar cuida disso. Você verá a mudança refletida imediatamente no card Atualmente inscritos na página de detalhes da escola.
WARNING
Se você registrar uma graduação para um membro que nunca foi inscrito (por ex. preenchendo retroativamente um graduado antigo de um registro em papel), a graduação ainda salva mas nenhuma linha de inscrição é tocada. Isso está bem — graduações são autossuficientes.
Escopo hierárquico
A lista de escolas, a aba de inscrições e a aba de graduações respeitam todas o filtro de hierarquia organizacional no topo da página. Escolha uma região, filial ou campus e as contagens colapsam apenas para os membros atribuídos a essa unidade.
É assim que igrejas multi-campus compartilham um currículo (a linha de escola permanece global) mas separam limpamente as coortes (as inscrições de cada campus só aparecem sob o filtro daquele campus).
Integração com presença
Cada página de detalhes de escola renderiza um gráfico de presença embutido alimentado por EntityAttendanceChart. Se você também criar reuniões correspondentes em Presença, você obtém uma visão unificada: coorte de inscrição + presença semanal na classe, lado a lado em uma página.
Veja Relatórios de escola para como os números se conectam.
Permissões
| Ação | Admin | Pastor de cuidado | Professor | Membro |
|---|---|---|---|---|
| Ver lista de escolas | sim | sim (escopo) | sim | não |
| Criar / editar / excluir escola | sim | não | não | não |
| Inscrever um membro | sim | sim (escopo) | sim | não |
| Marcar objetivo concluído | sim | sim (escopo) | sim | não |
| Registrar graduação | sim | sim (escopo) | sim | não |
| Ver próprias inscrições | n/a | sim | sim | sim (apenas perfil) |
"Escopo" significa que o usuário só vê inscrições de membros em unidades que ele gerencia. A política de permissão do frontend vive em src/shared/lib/access-policy.ts — ajuste as chaves schools.write / schools.read em Usuários e papéis se sua igreja usa papéis personalizados.
O que é registrado
Cada linha de inscrição armazena:
- Escola — a classe.
- Membro — o aluno.
- Data de inscrição — quando entraram na coorte.
- Data de conclusão — definida automaticamente ao graduar.
- Status —
enrolled,completed, ouwithdrawn.
Cada linha de graduação armazena:
- Escola + membro.
- Data de graduação.
- Nota — pontuação decimal opcional.
Ambas as tabelas usam soft-delete (um carimbo deleted_at). Restaurar uma inscrição removida é uma operação em nível de banco — peça a um admin se você acidentalmente removeu alguém no meio do semestre.
Perguntas comuns
O mesmo membro pode ser inscrito na mesma escola duas vezes? Não enquanto a primeira inscrição ainda estiver ativa. O GCM bloqueia inscrições ativas duplicadas. Uma vez que a primeira rodada esteja completed ou withdrawn, você pode reinscrevê-los para uma nova coorte — útil para cursos repetidos como Fundamentos.
O que acontece quando excluo uma escola que tem alunos? Um diálogo pergunta: remover os alunos desta escola (soft-delete das linhas de junção) ou reatribuí-los a outra escola (reescrever a chave estrangeira). A própria escola é então soft-deletada. Mesmo fluxo para exclusões em massa.
Os alunos podem se inscrever sozinhos? Não diretamente do portal do membro — inscrições são registradas pela equipe. Se você quer auto-inscrição, construa um formulário que cria um workflow que então grava a inscrição.
Próximos passos
- Adicionar uma escola — configure sua primeira classe.
- Definir objetivos — defina o currículo.
- Inscrever membros — preencha sua primeira coorte.
- Registrar graduações — feche o ciclo.
- Relatórios de escola — veja como as coortes estão progredindo.
