Skip to content

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:

sql
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:

  1. 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 coluna attendances.attendance_date em cada lista individual.
  2. 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.
  3. Eventos têm escopo opcional; reuniões têm escopo obrigatório. events.org_unit_id pode 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.