Skip to content

Organizações ​

Público

Este artigo é para operadores da plataforma GCM. Administradores de igreja devem ver Usuários e funções.

A aba Organizações em Administrador de plataforma -> Organizações (/platform/organizations) é a lista mestra de cada espaço de trabalho na plataforma. É a página em que você vive durante chamadas de suporte: busque por nome, mude um plano em linha, abra a ficha lateral para ver equipe e detalhe de faturamento, ou empurre uma mudança de plano em massa nas dez organizações que você acabou de promover após uma chamada telefônica.

Lista de organizações com faixa de KPI

A faixa de KPI ​

Os cinco blocos no topo espelham a aba Visão Geral para que os números sempre batam. Eles são computados no cliente a partir dos dados em cache de orgs/planos — sem ida e volta extra:

  • Total de organizações — cada linha em organizations, independentemente do status.
  • Ativas — subscription_status = 'active'.
  • Em trial — subscription_status = 'trialing'.
  • Em atraso — subscription_status = 'past_due'. Acende em âmbar quando maior que zero.
  • MRR — soma de plans.price_monthly_usd para cada organização ativa. Exclui trials e em atraso. Centavos são convertidos em dólares no momento da exibição.

Se o MRR parece errado, o culpado usual é uma linha de plano faltando price_monthly_usd — conserte o plano em Planos e módulos em vez de tocar as organizações.

Buscando e filtrando ​

A caixa de busca executa um ilike no servidor contra nome, slug e domínio personalizado. A paginação usa 25 linhas por padrão; resultados são debounced por 300ms para que digitar rápido não inunde a rede.

Clique no botão Filtros para adicionar até quatro dimensões de restrição:

  • Plano — Starter, Pro, Growth, Enterprise ou um plano legado negociado.
  • Status — trialing / active / past_due / canceled / paused.
  • Criado de / até — intervalo de datas contra created_at.

A pílula de filtro fica vermelha enquanto pelo menos um estiver ativo; clique em Limpar na barra de filtros para descartar todos.

Editando uma única linha ​

Plano e status renderizam como controles SearchableDropdown em linha. Escolher um novo valor dispara updateOrgPlan ou updateOrgStatus imediatamente — não há diálogo de confirmação. A query em cache é invalidada para que a faixa de KPI rebalanceie no mesmo render.

Os identificadores de banco permanecem estáveis: free é Starter (50), starter é Pro (300), growth é Growth (1.000) e unlimited é Enterprise (sem limite). Organizações legadas network mantêm o limite negociado.

Clique no chevron no final de uma linha para abrir a ficha lateral. A ficha puxa uma carga de detalhe mais profunda — pagamentos recentes, lista de equipe, sobreposições de módulos, o interruptor por organização "permitir doações via gateway da plataforma" e o botão de exclusão na zona de perigo.

Criando uma organização ​

O botão Criar organização abre um diálogo. O plano padrão é Starter. Clientes concluem uma verificação única de US$ 10; ignorar o pagamento é reservado ao provisionamento interno, de parceiros ou de teste aprovado.

Pular pagamento

Ative Pular pagamento apenas para um espaço de teste ou uma igreja parceira aprovada. Caso contrário, o espaço fica aguardando pagamento até concluir a verificação ou assinatura exigida. Cada exceção aparece na reconciliação de faturamento.

O diálogo chama o auxiliar createOrganization, que provisiona:

  • Uma linha em organizations com o slug e plano escolhidos.
  • Todos os módulos voltados ao cliente incluídos no plano selecionado.
  • Um e-mail de convite para o endereço do admin.
  • Uma entrada em platform_audit_log com action = 'org_created'.

Ações em massa ​

Marque a caixa em duas ou mais linhas e uma barra flutuante aparece no topo da tabela:

  • Mudar plano — aplica um plano a cada linha selecionada, atualizando cada limite de membros conforme avança.
  • Mudar status — aplica um status a cada linha selecionada. Útil para pausar uma coorte durante uma migração.
  • Excluir — abre uma confirmação de exclusão definitiva. O diálogo aceita uma string de motivo que é registrada contra cada exclusão em platform_audit_log.

Operações em massa rodam sequencialmente, não em uma transação. Um toast no fim relata sucessos e falhas separadamente ("Plano atualizado para 8 organização(ões) — 2 falharam"). Linhas com falha permanecem selecionadas para que você possa tentar de novo sem precisar reencontrá-las.

Aperte Esc a qualquer momento para limpar a seleção.

Log de exclusões ​

Abaixo da tabela principal, o cartão Log de exclusões lista as últimas exclusões definitivas de platform_organization_deletions. Cada linha mostra o nome da organização, slug, contagem de membros no momento da exclusão, quem fez e o motivo. Essa é a trilha de auditoria para "para onde foi a Springfield Bible?" — exclusão suave não é usada para organizações porque a exclusão em cascade precisa liberar o slug para reuso.

Sem desfazer

Excluir uma organização é irrecuperável. Todos os membros, presença, doações, campos personalizados e arquivos de storage daquela organização são descartados. Se o cliente pode voltar, ajuste o status para canceled em vez disso — preserva os dados e libera o assento nos cálculos de MRR.

Quando as edições em linha falham ​

A maioria das falhas aqui vem de violações de RLS ou restrições:

  • "new row violates row-level security policy" — sua conta perdeu a claim platform_admin ou superadmin. Saia e entre novamente.
  • "violates check constraint orgs_member_limit_positive" — você tentou definir um limite abaixo de 1 pelo editor de plano em massa com uma linha de plano personalizado. Conserte o plano ou use o diálogo de operações de faturamento.
  • "duplicate key value violates unique constraint organizations_slug_key" — o slug que você digitou em Criar organização está em uso. Slugs são globais; escolha um novo ou cheque o log de exclusões para confirmar que o dono anterior se foi de vez.

Para qualquer outra coisa, abra o Log de erros e filtre por source = vercel_api — é lá que as funções edge de criação / exclusão relatam.