Reuniões e níveis de escopo
Uma reunião no GCM não é uma data no calendário — é o modelo contra o qual a presença é registrada. "Culto de Domingo", "Oração de quarta", "Reunião de célula" são reuniões. O fato de que o Culto de Domingo aconteceu em 14 de março é uma linha de presença; o fato de que o Culto de Domingo existe como algo que sua igreja faz é uma linha de reunião.
Regra rápida
Se você marca uma lista contra ela semana após semana, é uma reunião. Se é uma data única com um flyer, é um evento.
Por que reuniões existem como conceito separado
Eventos de calendário respondem a quando algo acontece. Reuniões respondem a que tipo de encontro é, e quem é responsável por ele. A divisão importa porque presença, relatórios e workflows todos se baseiam na reunião, não na data.
Quando alguém faz check-in na estação de check-in, a estação pede para a pessoa escolher uma reunião primeiro, e depois registra attendance_date = hoje contra a reunião escolhida. Sem reuniões, você não teria uma forma estável de comparar "presença no Culto de Domingo em março passado" contra "presença no Culto de Domingo em março deste ano" — cada data seria sua própria ilha.
A tabela meetings é intencionalmente mínima:
meetings(
id, name, scope_level,
linked_entity_type,
organization_id, translations,
created_at, updated_at, deleted_at
)Não há hora de início, dia da semana, nem regra de recorrência na própria reunião. Essas perguntas pertencem à presença ("quando registramos isto pela última vez?") e ao seu ritmo semanal, não ao registro da reunião.
Níveis de escopo
Cada reunião tem um scope_level que controla para quais unidades-org ela agrega. Escolha um de:
org— Reuniões de toda a org. Um Culto de Domingo contra o qual cada filial reporta. Melhor para igrejas pequenas com uma única congregação, ou para encontros de toda a org como uma conferência anual.branch— Reuniões em nível de filial. Cada filial tem seu próprio Culto de Domingo, sua própria lista de presença, seus próprios totais. Este é o padrão e se encaixa para a maioria das igrejas multi-sede.center— Reuniões em nível de centro (nível 2 na hierarquia). Útil quando uma filial contém vários centros de culto que se reúnem separadamente.bascenta— Reuniões de célula ou pequeno grupo (nível 3). Cada célula registra sua própria lista.
O nível que você escolhe decide qual unidade-org um operador de check-in tem que escolher ao iniciar uma sessão. Escopo em branch e o operador escolhe uma filial; escopo em bascenta e o operador escolhe toda a hierarquia até o fim.
WARNING
Mudar scope_level em uma reunião existente não migra a presença histórica. As linhas antigas mantêm seu org_unit_id original. Escolha o escopo deliberadamente quando criar a reunião.
Por que isto difere de eventos
Eventos e reuniões são armazenados em tabelas separadas e cumprem funções diferentes. A divisão aparece em três formas concretas:
- Eventos têm uma data; reuniões não. Uma linha de evento carrega
event_date,start_time,end_time. Uma linha de reunião não carrega nenhum desses — a data vem da colunaattendances.attendance_dateem cada lista individual. - Eventos podem se repetir via RRULE; reuniões se repetem implicitamente. Um evento semanal renderiza 4–5 pontos na grade mensal porque a RRULE se expande no lado do cliente. Uma reunião semanal não renderiza no calendário — aparece apenas quando você abre o fluxo de presença ou olha a presença passada.
- Eventos têm escopo opcional; reuniões têm escopo obrigatório.
events.org_unit_idpode ser nulo (anúncio de toda a org).meetings.scope_leveléNOT NULL— cada reunião pertence a um nível por design.
Um erro comum é criar um evento de calendário chamado "Culto de Domingo" e depois se perguntar por que a presença não se liga a ele. Não faça — deixe a grade do calendário em paz para datas especiais, e deixe as reuniões alimentarem o ritmo semanal.
Configurando uma reunião
Reuniões vivem sob Configurações → Reuniões em vez de sob o módulo Calendário. O formulário é curto: nome, nível de escopo, e opcionalmente um tipo de entidade vinculada (usado para reuniões de ministério ou escola que devem registrar contra ministry_id ou school_id na linha de presença).
Você tipicamente vai configurar três a cinco reuniões para uma org nova:
- Culto de Domingo — escopo branch
- Oração de quarta — escopo branch
- Reunião de célula — escopo bascenta
- Reunião de ministério — escopo branch, tipo de entidade vinculada
ministry
Uma vez que uma reunião existe, ela aparece em cada fluxo de presença que pergunta "qual reunião?" — presença individual, presença em massa, e a estação de check-in.
Quando uma reunião precisa de um slot no calendário
Se você também quer que uma reunião apareça na grade do calendário — por exemplo, uma reunião de jovens que famílias precisam de um lembrete visual — crie um evento recorrente com o mesmo nome. É dado redundante, mas dá os dois: o ponto no calendário para visibilidade, e o modelo de reunião para presença. Apenas não funda os dois conceitualmente; os lembretes no evento não saberão sobre presença, e a presença na reunião não saberá sobre lembretes. Eles ficam independentes.
Para o lado calendário desse pareamento, veja Criar um evento e Padrões recorrentes. Para o lado presença, veja o resumo de presença.
