From c723d6accf3aaa0e0d6e6aa6f3aa2f5adbf45572 Mon Sep 17 00:00:00 2001 From: Francisco Solla Date: Fri, 21 Aug 2026 01:41:18 -0300 Subject: [PATCH] =?UTF-8?q?merge(OPS75):=20converg=C3=AAncia=20Forgejo?= =?UTF-8?q?=E2=86=92GitHub=20=E2=80=94=20GitHub=20como=20fonte=20=C3=BAnic?= =?UTF-8?q?a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deploy: limpeza pós-deploy do build cache e tags locais antigas (INF3/F2) O deploy compila no homeserver e acumulava build cache + tags locais antigas no disco raiz (incidente 19/08: 45G de cache). Após o smoke: docker builder prune -f + remoção das tags locais teqo-1313 exceto o SHA em uso (best-effort, registry preserva o rollback). * feat(S9): captura de novidades da campanha na home pública (form + CTA do hero) Seção 'Receba as novidades da campanha' acima do rodapé: nome + WhatsApp obrigatórios, e-mail/estado/cidade/comentário opcionais, toggle pré-selecionado 'Quero fazer parte do time' gravado como subscription.campaignLevel (time|esporadico). CTA secundário do hero vira o atalho (#novidades, scroll suave). Contact + Subscription em withPayloadTransaction com consentimento novo fail-closed por chave estável 'campanha-novidades' — nada é gravado sem o texto aprovado no admin. Migration 20260819_192605 (state de contact nullable + coluna campaign_level). Impl plan, changelog, int + e2e. * plans(C141,C143,C142): permissões granulares por assessor + responsáveis de demanda + UI por perfil * plans(C141,C143,C142): permissões granulares por assessor + responsáveis de demanda + UI por perfil * feat(S8): seção 'Nossa história' na home — vídeo da trajetória embutido do YouTube (Closes #91) * docs(S8): resolução do conflito com S9 (história → newsletter) + nota do guard e2e dev-only * feat(S10): pixel do Meta na página pública de campanha (campo admin em SiteSettings + PageView na home + Lead no sucesso da captura) Campo tracking.facebookPixelId no global SiteSettings (mesma validação/normalização do precedente Petition, regra centralizada em facebookPixel.ts); home (grupo (home)) injeta o base code + PageView quando o ID está configurado (fail-closed) e o CampaignNewsletterForm dispara exatamente um Lead no sucesso do S9. Migration 20260819_213947_add_site_settings_facebook_pixel_id. Closes #94 * refactor(S10): simplify pass — Lead wiring unit-tested e raças de estado compartilhado do e2e resolvidas e2e: stub hermético de connect.facebook.net no guard compartilhado (specs paralelos renderizam a home com o pixel); advisory lock no Postgres serializando o login do usuário de teste (Payload perde sessão em login concorrente read-modify-write — classe documentada no webauthn); seedTestUser vira create-if-missing (sem janela de usuário ausente nem reset de senha); Lead do form protegido do catch de erro (tracking nunca falha uma captura commitada); descrição do campo compartilhada; unidade nova campaignNewsletterLead cobre exatamente um Lead no sucesso. * feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) * chore(C141): regenera changelog agregado após rebase com S10 * plans(C144): options write-scoped para formulários de escrita pós-C141 --------- Co-authored-by: Francisco Solla --- docs/CHANGELOG-AGENTS.md | 2 + docs/changelog/2026-08-19-s10.md | 1 + docs/ops/teqo-1313-deploy.md | 9 +- ...demandas-responsaveis-ui-draft-criacao.png | Bin 0 -> 34206 bytes ...demandas-responsaveis-ui-draft-detalhe.png | Bin 0 -> 62898 bytes .../plans/demandas-responsaveis-ui-draft.html | 167 + docs/plans/demandas-responsaveis.md | 88 + .../escopo-formularios-escrita-perfil.md | 62 + ...o-granular-assessores-ui-draft-desktop.png | Bin 0 -> 84349 bytes ...o-granular-assessores-ui-draft-detalhe.png | Bin 0 -> 46471 bytes ...ao-granular-assessores-ui-draft-mobile.png | Bin 0 -> 33717 bytes ...ermissao-granular-assessores-ui-draft.html | 322 + docs/plans/permissao-granular-assessores.md | 101 + docs/plans/pixel-meta-pagina-campanha-impl.md | 87 + docs/plans/secao-video-historia-home-impl.md | 13 + ...fil-permissao-ui-draft-demanda-leitura.png | Bin 0 -> 47430 bytes ...-permissao-ui-draft-municipios-leitura.png | Bin 0 -> 30705 bytes ...rmissao-ui-draft-municipios-visao-tudo.png | Bin 0 -> 40286 bytes ...ui-respeita-perfil-permissao-ui-draft.html | 230 + docs/plans/ui-respeita-perfil-permissao.md | 88 + scripts/deploy-homeserver.sh | 22 + .../(home)/CampaignNewsletterSection.tsx | 7 +- src/app/(frontend)/(home)/layout.tsx | 7 + src/app/(frontend)/(home)/page.tsx | 6 +- src/collections/Petition.ts | 17 +- src/components/CampaignNewsletterForm.tsx | 25 +- src/globals/SiteSettings.ts | 29 + src/lib/facebookPixel.ts | 15 + ...7_add_site_settings_facebook_pixel_id.json | 13776 ++++++++++++++++ ...947_add_site_settings_facebook_pixel_id.ts | 13 + src/migrations/index.ts | 14 +- src/payload-types.ts | 11 + src/utilities/campaignHomeTracking.ts | 15 + tests/e2e/campaignHomePixel.e2e.spec.ts | 97 + tests/e2e/campaignNewsletter.e2e.spec.ts | 18 +- tests/e2e/fixtures/e2eTest.ts | 8 + tests/helpers/adminApi.ts | 41 + tests/helpers/seedUser.ts | 35 +- tests/unit/campaignHome.unit.spec.tsx | 6 + .../unit/campaignNewsletterLead.unit.spec.tsx | 98 + tests/unit/codebaseConventions.unit.spec.ts | 3 + tests/unit/facebookPixel.unit.spec.ts | 19 + 42 files changed, 15397 insertions(+), 55 deletions(-) create mode 100644 docs/changelog/2026-08-19-s10.md create mode 100644 docs/plans/demandas-responsaveis-ui-draft-criacao.png create mode 100644 docs/plans/demandas-responsaveis-ui-draft-detalhe.png create mode 100644 docs/plans/demandas-responsaveis-ui-draft.html create mode 100644 docs/plans/demandas-responsaveis.md create mode 100644 docs/plans/escopo-formularios-escrita-perfil.md create mode 100644 docs/plans/permissao-granular-assessores-ui-draft-desktop.png create mode 100644 docs/plans/permissao-granular-assessores-ui-draft-detalhe.png create mode 100644 docs/plans/permissao-granular-assessores-ui-draft-mobile.png create mode 100644 docs/plans/permissao-granular-assessores-ui-draft.html create mode 100644 docs/plans/permissao-granular-assessores.md create mode 100644 docs/plans/pixel-meta-pagina-campanha-impl.md create mode 100644 docs/plans/ui-respeita-perfil-permissao-ui-draft-demanda-leitura.png create mode 100644 docs/plans/ui-respeita-perfil-permissao-ui-draft-municipios-leitura.png create mode 100644 docs/plans/ui-respeita-perfil-permissao-ui-draft-municipios-visao-tudo.png create mode 100644 docs/plans/ui-respeita-perfil-permissao-ui-draft.html create mode 100644 docs/plans/ui-respeita-perfil-permissao.md create mode 100644 src/migrations/20260819_213947_add_site_settings_facebook_pixel_id.json create mode 100644 src/migrations/20260819_213947_add_site_settings_facebook_pixel_id.ts create mode 100644 src/utilities/campaignHomeTracking.ts create mode 100644 tests/e2e/campaignHomePixel.e2e.spec.ts create mode 100644 tests/helpers/adminApi.ts create mode 100644 tests/unit/campaignNewsletterLead.unit.spec.tsx diff --git a/docs/CHANGELOG-AGENTS.md b/docs/CHANGELOG-AGENTS.md index 9de829ec..3ca0ae4d 100644 --- a/docs/CHANGELOG-AGENTS.md +++ b/docs/CHANGELOG-AGENTS.md @@ -4,6 +4,8 @@ Conteúdo movido do `AGENTS.md` em 2026-07-30 (fatiamento do paradigma de agente --- +**S10 — Pixel do Meta (Facebook) na página pública de campanha (2026-08-19):** o time de campanha paga pode configurar o ID numérico do Pixel (Dataset do Events Manager) no admin — global `SiteSettings` → group "Rastreamento / Ads" → "ID do Pixel do Meta (Facebook)", mesma validação/normalização do precedente dos abaixo-assinados (5–20 dígitos, sem HTML/JS; regras agora vivem num único dono em `facebookPixel.ts`, com o `Petition` refatorado para o helper compartilhado). Com o ID configurado, a home pública de campanha (`/`) carrega o base code + `PageView` do Meta (injeção no layout do grupo `(home)` via `next/script`, escopada só à página de campanha — nada de PageView vazando para notícias/etc.); sem ID, nada é carregado (fail-closed). A conclusão da captura de novidades (S9) dispara exatamente um `Lead` (`content_name` "novidades-da-campanha", `eventID` UUID) no padrão do `PetitionForm` — nunca no page load. Leitura via `getCachedGlobal('site-settings')` (ISR sob a tag `global_site-settings`; a edição do admin já revalida a home). Migração `20260819_213947_add_site_settings_facebook_pixel_id` (colunas `tracking_facebook_pixel_id` + versão, sem backfill). Fora da fatia (gatilhos herdados do plano da petição): CAPI/Advanced Matching, dedup `eventID`, fila/retry de `Lead` e cookie banner/CMP. E2e novo `campaignHomePixel` (script `#meta-pixel-*` presente só com ID configurado, CDN stubada; `mode: serial` por precedente). + **C141 — perfis de permissão por assessor: Visão × Edição configuráveis (2026-08-19):** o coordenador/candidato define por assessor, em `/campanha/assessores` (coluna "Permissão" com badge + popover, seção no detalhe e no draft de novo assessor), o que ele **vê** (`carteira|tudo`) e o que ele **edita** (`carteira|tudo|somente_leitura`) — contas novas e existentes seguem no padrão Carteira·Edita carteira até configurarem. Enforcement fail-closed no servidor: a leitura alarga com Visão "Tudo" via prólogo novo `resolveProfileScopedRead` (municípios, lideranças, updates, pledges, atividades, contatos derivados), a escrita segue o eixo de Edição (`advisorEditingAccess`) nos `canUpdate*`/`canCreate*` de todos os domínios, no check do giro e no create individual de atividade (ambos contra `getWritableMunicipalityIds`), e a ficha de contatos passou a ser autorizada pelo escopo de escrita (`assertPersonContactWritable` — antes era "você edita o que vê", que a Visão "Tudo" alargaria em escrita de PII). Caps mantidos: demandas seguem a regra própria (C143), apoiadores (PII) e telefones de contas ficam na carteira mesmo com Tudo, e escritas de coordenação (contas, `municipality.advisors`, nível de envolvimento E14, `allocationDecision`) continuam restritas. Combinação incoerente (Edição "Tudo" sem Visão "Tudo") é rejeitada no zod, na action e no hook `enforceCoherentAdvisorProfile` (REST/admin incluídos). Migration `20260819_214755_add_campaign_user_advisor_permission_profile` (duas colunas select com default `'carteira'`, sem backfill). **OPS73 — deploy do fix do admin em produção (2026-08-20):** o `/admin` do Payload (jorgesolla1313.com.br) voltou a renderizar o formulário de login em produção — o bug de "tela branca" que travava o CMS do time editorial/campanha está resolvido e verificado. Durante o diagnóstico descobriu-se que a premissa do plano ("produção nunca recebeu o fix OPS69") estava errada: o deploy das 23:09 de 2026-08-19 (revision `8c734ba`) já continha o fix do importMap **no histórico**, mas o commit S9 (`8d2352c0`, captura de novidades na home) tinha regenerado o importMap **sem** as envs `S3_*`, removendo o handler `@payloadcms/storage-s3/client#S3ClientUploadHandler` e reintroduzindo o erro `getFromImportMap: PayloadComponent not found in importMap` — o admin abria em branco de novo ("funcionou e no deploy seguinte parou"). Verificado também que o **main do GitHub havia divergido do Forgejo** (pós-cutover OPS71): o GitHub tinha o fix + OPS71, mas não as features S8 (seção "Nossa história") e S9 (captura de novidades) que produção já rodava — deployar o main como estava regrediria as duas. A entrega: PR #751 re-homou no GitHub main as features S8+S9 (cherry-pick dos commits aprovados no Forgejo `8d2352c0` + `488dcf7d`), mantendo o handler no importMap (prova: `generate:importmap` com envs `S3_*` dummy → diff vazio vs main); CI verde; aguardando o merge. Deploy pós-merge via o pipeline canônico do OPS71 (dispatch manual do `deploy.yml`: `verify` full → job `deploy` no runner self-hosted recém-instalado no homeserver — 2 tentativas "stale run" por merges paralelos no meio do verify, terceira aplicou `dba75ff8`); migração C143 (responsáveis de demandas, aditiva+backfill) aplicada. Verificação pós-deploy: container na revision `dba75ff8`, healthy, **log sem nenhum `getFromImportMap`**, `/admin` renderizando o formulário de login (2 inputs email/senha + botão Login, título "Login - Payload", 0 erros de console), e a home pública mantendo "Nossa história" (S8) e o form de novidades (S9). Evidência: `docs/plans/ops73-deploy-admin-prod-fixed-evidence.png`. Lições registradas: a regeneração do importMap sem envs `S3_*` re-órfão o handler (classe exata que o guard #87 deve impedir no CI); divergência de plataformas pós-cutover — workspace do homeserver ainda apontava para o Forgejo local (`localhost:3000`) e o S10 (pixel) segue pendente de re-home no GitHub. diff --git a/docs/changelog/2026-08-19-s10.md b/docs/changelog/2026-08-19-s10.md new file mode 100644 index 00000000..6ed49305 --- /dev/null +++ b/docs/changelog/2026-08-19-s10.md @@ -0,0 +1 @@ +**S10 — Pixel do Meta (Facebook) na página pública de campanha (2026-08-19):** o time de campanha paga pode configurar o ID numérico do Pixel (Dataset do Events Manager) no admin — global `SiteSettings` → group "Rastreamento / Ads" → "ID do Pixel do Meta (Facebook)", mesma validação/normalização do precedente dos abaixo-assinados (5–20 dígitos, sem HTML/JS; regras agora vivem num único dono em `facebookPixel.ts`, com o `Petition` refatorado para o helper compartilhado). Com o ID configurado, a home pública de campanha (`/`) carrega o base code + `PageView` do Meta (injeção no layout do grupo `(home)` via `next/script`, escopada só à página de campanha — nada de PageView vazando para notícias/etc.); sem ID, nada é carregado (fail-closed). A conclusão da captura de novidades (S9) dispara exatamente um `Lead` (`content_name` "novidades-da-campanha", `eventID` UUID) no padrão do `PetitionForm` — nunca no page load. Leitura via `getCachedGlobal('site-settings')` (ISR sob a tag `global_site-settings`; a edição do admin já revalida a home). Migração `20260819_213947_add_site_settings_facebook_pixel_id` (colunas `tracking_facebook_pixel_id` + versão, sem backfill). Fora da fatia (gatilhos herdados do plano da petição): CAPI/Advanced Matching, dedup `eventID`, fila/retry de `Lead` e cookie banner/CMP. E2e novo `campaignHomePixel` (script `#meta-pixel-*` presente só com ID configurado, CDN stubada; `mode: serial` por precedente). diff --git a/docs/ops/teqo-1313-deploy.md b/docs/ops/teqo-1313-deploy.md index 8371f712..1684d2ea 100644 --- a/docs/ops/teqo-1313-deploy.md +++ b/docs/ops/teqo-1313-deploy.md @@ -91,9 +91,10 @@ history (`git revert` do PR da remoção, ou clone do main congelado do Forgejo) ## Rollback (do deploy) -A imagem anterior continua local e no registry (`localhost:5000/teqo-1313:` -— o registry nunca deleta). O compose anterior fica em -`~/stack/docker-compose.yml.pre-`. +A imagem anterior **não** fica mais local após a limpeza pós-deploy (INF3/F2: +`docker builder prune` + remoção das tags locais antigas, exceto o SHA em uso) +— o registry `localhost:5000` **nunca deleta** e é a fonte do rollback. O +compose anterior fica em `~/stack/docker-compose.yml.pre-`. ```bash ssh homeserver @@ -102,7 +103,7 @@ cd ~/stack # o backup do deploy que falhou é o compose com os tags antigos ls docker-compose.yml.pre-* # escolha o anterior ao deploy ruim cp docker-compose.yml.pre- docker-compose.yml -# 2. a imagem antiga ainda está local; se não, puxe do registry: +# 2. puxar do registry (a imagem antiga já não fica local após a limpeza): docker pull localhost:5000/teqo-1313: docker tag localhost:5000/teqo-1313: teqo-1313: # 3. subir: diff --git a/docs/plans/demandas-responsaveis-ui-draft-criacao.png b/docs/plans/demandas-responsaveis-ui-draft-criacao.png new file mode 100644 index 0000000000000000000000000000000000000000..403c969f47a47ea8c26be8662ec447a2172a71a4 GIT binary patch literal 34206 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 literal 0 HcmV?d00001 diff --git a/docs/plans/demandas-responsaveis-ui-draft-detalhe.png b/docs/plans/demandas-responsaveis-ui-draft-detalhe.png new file mode 100644 index 0000000000000000000000000000000000000000..f36110907fcf34efd34dfe8e580ccb56d4f08406 GIT binary patch literal 62898 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 CUsk{X literal 0 HcmV?d00001 diff --git a/docs/plans/demandas-responsaveis-ui-draft.html b/docs/plans/demandas-responsaveis-ui-draft.html new file mode 100644 index 00000000..0c1353fd --- /dev/null +++ b/docs/plans/demandas-responsaveis-ui-draft.html @@ -0,0 +1,167 @@ + + + + + + + UI draft — Demandas: responsáveis explícitos + + +
+

+ Demanda só aparece para candidato/coordenador e para quem está marcado como responsável — + nem assessor do município vê fora disso. Cenas: detalhe com seção Responsáveis + editor, + formulário de criação com sugestão. +

+ + +
+
+
+
+
+ Material de campanha + Em aberto +
+
+ Cartazes para a caminhada do fim de semana +
+
Ilhéus · liderança: Nome da liderança
+
+
+ +
+
+
Descrição
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor + incididunt ut labore et dolore magna aliqua. +
+
+
Custo estimado
+
R$ 1.200,00
+
+
+
Comprovantes
+
2 anexos
+
+
+
Visível para
+
Responsáveis · Candidato · Coordenador
+
+
+ +
+
+
Responsáveis pela demanda
+
Só quem é responsável vê esta demanda
+
+
+ Assessora de campo + Outro assessor + +2 +
+
+ Adicionar responsável… +
+
+ Criador já entra como responsável automaticamente. Assessores do município aparecem + como sugestão, mas só quem for marcado enxerga. +
+
+
+ +
+ Assessor do município que não é responsável: a demanda não aparece na lista dele nem + abre por URL — mesmo com permissão "Visão Tudo". +
+
+
+ + +
+
+
Nova demanda
+ +
+
+
+
Título
+
+ Cartazes para a caminhada do fim de semana +
+
+
+
Município
+
+ Ilhéus + ▾ +
+
+
+
Tipo
+
+ Material de campanha + ▾ +
+
+
+ +
+
Responsáveis pela demanda
+
+ Você (criador) + Assessora de campo +
+
+ Buscar assessor… +
+
+ Sugestões: assessores do município. Se ninguém for marcado além de você, só você, + candidato e coordenador verão a demanda. +
+
+
+ +
+
+ Cancelar +
+
+ Criar demanda +
+
+
+
+
+ + diff --git a/docs/plans/demandas-responsaveis.md b/docs/plans/demandas-responsaveis.md new file mode 100644 index 00000000..b85629ef --- /dev/null +++ b/docs/plans/demandas-responsaveis.md @@ -0,0 +1,88 @@ +# Demandas visíveis apenas para responsáveis explícitos + candidato/coordenador + +Status: aguardando execução +Atualizado em: 2026-08-19 +Issue: #106 +Priority: P1 +Model: cursor-grok-4.5-high +Impeccable: B — encaixe no detalhe de demanda (`/campanha/demandas/[slug]`) e na criação +Rascunho UI: docs/plans/demandas-responsaveis-ui-draft.html +Appetite: ~1–1,5 dias eng; campo de responsáveis + regra de visibilidade fail-closed +Responsável: — + +## Intenção + +Demandas carregam custo estimado e comprovantes (controle interno de gastos). Hoje **qualquer assessor que administra o município da demanda a vê** — e a mesa descobriu que isso é amplo demais: a demanda deve ser vista **só por quem é responsável por ela**, pelo candidato e pelo coordenador geral. Mesmo um assessor do município relacionado, se não estiver marcado como responsável, não vê. Decidido no gate (2026-08-19, opção B): responsável é **vínculo explícito por demanda**. + +## Persona e fluxo + +- **Persona / contexto:** Alex (Coordenador Geral) e o Candidato acompanhando custos e decisões; assessores responsáveis acompanhando "suas" demandas; assessores do município que NÃO devem esbarrar em demandas que não são deles. +- **Job principal:** quem cria a demanda (ou a coordenação) define os responsáveis; só eles — além de candidato/coordenador — enxergam e tocam a demanda. +- **Fluxo desejado:** + 1. Um assessor cria uma demanda no município da carteira: o formulário pede "Responsáveis pela demanda" (criador já vem marcado; sugestões = assessores do município). + 2. No detalhe da demanda, quem pode atualizá-la adiciona/remove responsáveis. + 3. Um assessor do município que não é responsável: a demanda não aparece na lista dele, não abre por URL e não aparece em buscas — sem erro "sem permissão", simplesmente não existe para ele. +- **Anti-goals de produto:** responsável herdado automaticamente do município (a decisão do gate foi explícita); visibilidade por município como default; auditoria de quem viu (fora de escopo). + +### Esboço de fluxo (B/C/D) + +```text +[criar demanda] → [campo "Responsáveis" — criador pré-marcado, sugestão do município] + → [criar] → [criador vira responsável; lista só para responsáveis + candidato/coordenador] +[detalhe] → [responsáveis gerenciam responsáveis] +[assessor não-responsável] → [demanda invisível: lista, URL e busca] +``` + +### Rascunho UI (B/C/D) + +![Rascunho UI — detalhe da demanda com seção Responsáveis](demandas-responsaveis-ui-draft-detalhe.png) + +![Rascunho UI — criação com campo Responsáveis](demandas-responsaveis-ui-draft-criacao.png) + +## Objetivo e aceite + +- A demanda tem um conjunto de **responsáveis** (pessoas da campanha); candidato e coordenador sempre a veem, responsável ou não. +- **Visibilidade fail-closed:** sem responsável marcado além do criador, a demanda é visível só ao criador + candidato/coordenador. Assessor do município relacionado, se não for responsável, **não vê** — nem na lista, nem por URL, nem na busca. +- O **criador** entra automaticamente como responsável (garante pelo menos um dono e que a criação não suma do criador). +- Quem pode **atualizar** a demanda pode gerenciar os responsáveis (mesma regra de visibilidade: responsáveis + candidato/coordenador). +- A criação pede os responsáveis (sugestão = assessores do município da demanda), mas não obriga além do criador. +- Guardrails: leader lockdown intacto (liderança nunca vê demandas); decisão de escalada continua candidato/coordenador; custo/comprovantes seguem a visibilidade da demanda. + +## Dados (intenção) + +- **Vou apresentar dados?** Não — regra de visibilidade e controle de acesso. +- **Decisões desbloqueadas:** coordenação decide quem acompanha cada demanda. + +## Direção no codebase (hipótese) + +- **Áreas prováveis:** campo de responsáveis na demanda em `src/collections/CampaignDemand.ts`; regra de leitura/atualização em `src/utilities/access/demands.ts` (hoje `canReadCampaignDemand` = escopo do município — passa a ser "unrestricted ou responsável"); server actions `src/app/(campaign)/campanha/actions/demand.ts`; UI do detalhe `src/components/campaign/demand/` e do fluxo de criação (registrar pedido). +- **Precedente a olhar:** o fragmento de escopo P3-D (não re-escrever o `{ municipality: { in: ids } }` por aí — a regra nova substitui o escopo municipal de demandas); `getFreshCampaignUser`/`memoizePerRequest` para a leitura por request; o padrão de "membership" de `municipality.advisors` para o controle de responsáveis. +- **Risco de acoplamento:** atividades geram demandas (C90) e a lista/omnibox de demandas filtra por escopo — a regra nova muda o que assessores veem em todos os pontos; o Sollinha usa as mesmas queries de demanda (escopo por user). + +## Dependências + +- Nenhuma dura. **Guardrail:** C141 (perfis por assessor) nunca contorna esta regra — Visão "Tudo" não abre demandas fora da responsabilidade. + +## Fora de escopo + +- Perfil de permissão por assessor (C141) e apresentação por perfil (C142). +- Notificação/feed ao ser marcado responsável. +- Auditoria de leituras da demanda. + +## Rabbit holes de produto + +- **"Responsável = assessor do município, simples."** Isso é exatamente o modelo de hoje, que o gate rejeitou. **Corte:** vínculo explícito; sugestões sim, herança automática não. +- **"Vou usar o histórico de quem criou."** `createdBy` existe, mas só o criador não cobre quem vai executar a demanda. **Corte:** campo próprio de responsáveis; criador vira um responsável, não o único. +- **"Vou esconder no cliente."** Esconder na UI não segura URL direta nem a API. **Corte:** regra no acesso de dados (fail-closed) — lista, URL e busca respeitam o mesmo where. + +## Questões em aberto (produto) + +Fechadas no gate. Assunções operacionais (sem pergunta nova): criador entra automaticamente como responsável; quem atualiza a demanda gerencia responsáveis; sugestões do campo = assessores do município da demanda; visível para = "Responsáveis · Candidato · Coordenador" (rótulo exibido no detalhe). _Assumidas — validar se contrariarem a mesa._ + +## Referências + +- Decisão do gate 2026-08-19 (resposta 1): responsáveis explícitos; assessor do município não-responsável não vê. +- Item irmão: `docs/plans/permissao-granular-assessores.md` (C141). +- Rascunho UI (gate): `docs/plans/demandas-responsaveis-ui-draft.html` + PNGs acima. +- Para abrir primeiro: `src/utilities/access/demands.ts`, `src/collections/CampaignDemand.ts`, `docs/plans/demandas-campanha.md`. +- `AGENTS.md` — convenção P3-D do escopo de assessor. diff --git a/docs/plans/escopo-formularios-escrita-perfil.md b/docs/plans/escopo-formularios-escrita-perfil.md new file mode 100644 index 00000000..330cb404 --- /dev/null +++ b/docs/plans/escopo-formularios-escrita-perfil.md @@ -0,0 +1,62 @@ +# Escala pós-C141: options write-scoped para formulários de escrita + +Status: rascunho +Atualizado em: 2026-08-19 +Issue: C144 (a criar) +Priority: P2 +Model: deepseek/deepseek-v4-flash +Impeccable: A — backend de dados de formulário (o C142 cuida da apresentação) +Appetite: ~0,5–1 dia eng + +## Contexto (achado do /simplify da entrega C141) + +`loadMunicipalityOptions` (`src/utilities/campaignRelationOptions.ts`) resolve os +municípios oferecidos nos formulários de escrita com o escopo de LEITURA +(`overrideAccess: false` + access de `canReadMunicipality`). Desde o C141, um +assessor com **Visão "Tudo" + Edição "Carteira"** vê os 435 municípios nos +pickers de atividade/demanda/apoiador/liderança, mas o servidor rejeita o +submit fora da carteira (fail-closed, mensagem genérica) — e em **atividade** +o servidor hoje **aceita** (o create individual foi corrigido no C141, mas o +formulário continua oferecendo o estado inteiro). A apresentação por perfil é +o item irmão C142; este item entrega a base de dados correta para os +formulários de escrita. + +## Objetivo + +- Os pickers de município dos **formulários de escrita** oferecem apenas + municípios no escopo de **escrita** do ator (`getWritableMunicipalityIds`): + unrestricted/tudo → todos; carteira → carteira; somente leitura → nenhum + (formulários de escrita nem abrem para esse assessor). +- Superfícies alvo: atividade (create/update + giro), demanda (criar), + apoiador (novo), liderança (criar/editar), organização (vínculos). +- Leitura (listas/detalhes/mapa) continua read-scoped — não tocar. +- Sem mudança de enforcement (C141 já fail-closed no servidor). + +## Direção no codebase + +- `src/utilities/campaignRelationOptions.ts` (`loadMunicipalityOptions`) — + variante write-scoped (parametro `scope: 'read' | 'write'` ou helper irmão) + consumida pelos form actions/pages de escrita; manter o fragmento P3-D + (`advisorMunicipalityScopeWhere`) e o `getWritableMunicipalityIds` do C141. +- Mapear os call sites dos pickers (atividades/agenda, demandas, apoiadores, + lideranças, organizações) e trocar só os de escrita. + +## Fases + +1. Variante write-scoped + call sites de atividade (onde o servidor aceita) — tester int: picker de atividade reflete o eixo. +2. Demanda/apoiador/liderança/organização (UX — servidor já rejeita). +3. Gates (`pnpm push`); e2e no CI. + +## Já resolvido no simplify/critique (não reabrir) + +- Criação de atividade avulsa/giro fora do escopo: server-side no C141 + (`getWritableMunicipalityIds` no create individual e no batch do giro). +- Ficha de contatos write-scoped (`assertPersonContactWritable`). +- Ações de liderança write-scoped (`assertMunicipalitiesWithinScope`). +- `allocationDecision` create capado na carteira. + +## Explicitamente fora (deste lote) + +- Apresentação por perfil (botões/controles/atalhos) — C142. +- Enforcement server-side — C141 (já entregue). +- Options de leitura (listas/detalhes) — read-scoped permanece. diff --git a/docs/plans/permissao-granular-assessores-ui-draft-desktop.png b/docs/plans/permissao-granular-assessores-ui-draft-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..b51b50547752e9372b432779f9d22909cba6f34b GIT binary patch literal 84349 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

O`fh2$!7M8V^Yt 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

S(3dNm!gm1tONjXb2KAqFg^3 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 v@^_5jjNJ!>gZtsZrS7o=# literal 0 HcmV?d00001 diff --git a/docs/plans/permissao-granular-assessores-ui-draft-detalhe.png b/docs/plans/permissao-granular-assessores-ui-draft-detalhe.png new file mode 100644 index 0000000000000000000000000000000000000000..ba0ea0f76caf6ee89fbb89f1aa39cac695ea0c39 GIT binary patch literal 46471 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 Fe*j9V8(sha literal 0 HcmV?d00001 diff --git a/docs/plans/permissao-granular-assessores-ui-draft.html b/docs/plans/permissao-granular-assessores-ui-draft.html new file mode 100644 index 00000000..258cce6b --- /dev/null +++ b/docs/plans/permissao-granular-assessores-ui-draft.html @@ -0,0 +1,322 @@ + + + + + + + UI draft — Perfis de permissão por assessor + + +

+

+ Coordenador/candidato define por assessor o que ele vê (Tudo | Carteira) e o que ele pode + editar (Tudo | Carteira | Somente leitura) — cenas: lista com coluna Permissão + editor, + mobile, detalhe do assessor. +

+ + +
+
+
+
+
+
+
+
+ Buscar assessor… +
+
+ + Novo assessor +
+
+
+ +
+ +
+
+
Nome
+
E-mail
+
Celular
+
Municípios
+
Permissão
+
+
+
Nome do assessor
+
assessor@exemplo.org
+
(71) 90000-0000
+
+ Salvador (19) + Feira de Santana + +3 +
+
+ Carteira · Edita carteira +
+
+
+
Outra assessora
+
outra@exemplo.org
+
(71) 90000-0001
+
+ Camaçari +
+
+ Tudo · Somente leitura +
+
+
+
Assessora de campo
+
campo@exemplo.org
+
(71) 90000-0002
+
+ Ilhéus + Itabuna +
+
+ Carteira · Edita carteira +
+ + +
+
Permissão da conta
+
Vale para todas as telas do /campanha.
+ +
+
Visão
+
+ Carteira — municípios que administra + ▾ +
+
+ Tudo: enxerga todos os municípios e lideranças. +
+
+ +
+
Edição
+
+ Carteira — edita só o que administra + ▾ +
+
+ Somente leitura: nenhum controle de edição em lugar nenhum. +
+
+ +
+ Demandas seguem regra própria: só quem é responsável pela demanda (e + candidato/coordenador) a vê — mesmo com visão "Tudo". +
+ +
+
+ Cancelar +
+
+ Salvar +
+
+
+
+
+ +
+ Padrão de contas novas: Carteira · Edita carteira (comportamento atual). Alterações + valem na hora — ninguém precisa reenviar senha. +
+
+
+ + +
+
+
+
+
+ + Novo +
+
+
+ Buscar assessor… +
+ +
+
+
Nome do assessor
+ Carteira · Edita +
+
assessor@exemplo.org · (71) 90000-0000
+
+ Salvador (19) + Feira de Santana + +3 +
+
+ +
+
+
Outra assessora
+ Tudo · Só leitura +
+
outra@exemplo.org · (71) 90000-0001
+
+ Camaçari +
+
+ +
+
+
Assessora de campo
+ Carteira · Edita +
+
campo@exemplo.org · (71) 90000-0002
+
+ Ilhéus + Itabuna +
+
+
+
+ + +
+
+
+
+
+
+
Nome do assessor
+
assessor@exemplo.org · (71) 90000-0000
+
+
+
+ Enviar link de redefinição de senha +
+
+ +
+
+
Permissão da conta
+
+
Visão
+
+ Carteira — municípios que administra + ▾ +
+
+
+
Edição
+
+ Carteira — edita só o que administra + ▾ +
+
+
+ Demandas ficam sempre limitadas aos municípios de responsabilidade. Decisões de + coordenação (nível de envolvimento, contas, demandas escaladas) continuam restritas + a coordenador e candidato. +
+
+ +
+
Municípios administrados
+
+ Salvador (19) + Feira de Santana + Camaçari + Ilhéus + Itabuna + +8 +
+
+ Adicionar município… +
+
+
+
+
+
+ + diff --git a/docs/plans/permissao-granular-assessores.md b/docs/plans/permissao-granular-assessores.md new file mode 100644 index 00000000..0187fa6c --- /dev/null +++ b/docs/plans/permissao-granular-assessores.md @@ -0,0 +1,101 @@ +# Perfis de permissão por assessor (visão × edição), configuráveis pelo coordenador/candidato + +Status: aguardando execução +Atualizado em: 2026-08-19 +Issue: #105 +Priority: P1 +Model: cursor-grok-4.5-high +Impeccable: B — encaixe em `/campanha/assessores` (lista + detalhe + novo) +Rascunho UI: docs/plans/permissao-granular-assessores-ui-draft.html +Appetite: ~2–3 dias eng; um modelo de permissão + configuração + enforcement fail-closed +Responsável: — + +## Intenção + +Hoje todo assessor tem exatamente um perfil: **vê e edita só os municípios da carteira**. No campo, a equipe descobriu que isso não cobre a mesa real: há assessor que precisa **ver tudo** (panorama, relatório, cobertura) sem poder **alterar nada**; há assessor que **vê tudo** mas só pode mexer **naquilo pelo que é responsável**; há assessor que só vê o que é seu — com ou sem edição. E **demandas** carregam custo e comprovantes (controle interno): só candidato, coordenador e as **pessoas responsáveis pela demanda** as veem — regra própria, detalhada no item irmão (C143). + +O coordenador/candidato precisa configurar isso **por conta**, na vertical `/campanha`, sem depender do Payload admin. + +## Persona e fluxo + +- **Persona / contexto:** Alex (Coordenador Geral) e o Candidato na mesa — montar e ajustar o time de assessores conforme o papel real de cada um; e o assessor, operando o `/campanha` dentro do que lhe foi liberado. +- **Job principal:** para cada assessor, definir **o que ele vê** e **o que ele pode editar**, em dois controles simples; e ter isso aplicado na hora, em todas as telas. +- **Fluxo desejado:** + 1. Alex abre `/campanha/assessores` e vê uma coluna "Permissão" por assessor (ex.: "Carteira · Edita carteira"). + 2. Toca no perfil de um assessor e escolhe **Visão** (Tudo | Carteira) e **Edição** (Tudo | Carteira | Somente leitura); a tela explica cada combinação e lembra que demandas seguem regra própria. + 3. Salva. O assessor entra e opera exatamente dentro do perfil — se "Somente leitura", não encontra nenhum controle de edição; se "Tudo", navega o estado inteiro (demandas fora, que seguem a regra de responsáveis). + 4. Conta nova nasce no padrão atual (Carteira · Carteira) — nada muda até alguém mexer. +- **Anti-goals de produto:** papel novo (só o assessor ganha perfis; liderança continua em lockdown e candidato/coordenador intocados); IAM tipo SaaS (grupos, herança, policy engine); permissão fina por coleção ("vê lideranças mas não atividades"); autoatendimento do próprio perfil. + +### Esboço de fluxo (B/C/D) + +```text +[assessores lista] → [coluna Permissão] → [editor: Visão × Edição + avisos] + → [salvar] → [perfil ativo imediatamente] +[assessor entra] → [telas renderizam e respondem dentro do perfil — fail-closed no servidor] +``` + +### Rascunho UI (B/C/D) + +![Rascunho UI — desktop (lista + editor)](permissao-granular-assessores-ui-draft-desktop.png) + +![Rascunho UI — mobile (cards)](permissao-granular-assessores-ui-draft-mobile.png) + +![Rascunho UI — detalhe do assessor](permissao-granular-assessores-ui-draft-detalhe.png) + +## Objetivo e aceite + +- O coordenador/candidato define, por assessor: **Visão** (Tudo | Carteira) e **Edição** (Tudo | Carteira | Somente leitura), nas superfícies de `/campanha/assessores` (lista, detalhe, novo). +- Contas novas e existentes mantêm o perfil atual por default — zero mudança de comportamento até configurarem. +- O assessor vê/edita **exatamente** o que o perfil permite, em todas as telas do `/campanha` e nas APIs — a checagem falha-fechada no servidor (nunca só ocultar botão no cliente). +- **Demandas:** ficam fora dos eixos — mesmo com Visão "Tudo", o assessor só vê demandas de que é responsável (regra explícita do item C143); Visão "Tudo" não abre demandas nem custo/comprovantes. +- Edição "Tudo" **não** libera escritas de coordenação: gerenciar contas, atribuir assessores a municípios, mover nível de envolvimento e decidir demandas escaladas seguem restritos a candidato/coordenador. +- Combinação incoerente (ex.: editar o que não vê) não é oferecida. +- **Apoiadores** (PII) continuam capados na carteira para todo staff abaixo de candidato/coordenador, mesmo com Visão "Tudo" _(decidido no gate)_. +- Configuração em três pontos: coluna + editor inline na lista, seção no detalhe e campos no formulário de novo assessor _(decidido no gate)_. Edit-where-you-see. +- Guardrails do repo intactos: liderança em lockdown, assimetria de votos (estimativas staff-only), postura LGPD fail-closed. + +## Dados (intenção) + +- **Vou apresentar dados?** Não — superfície de configuração de contas; sem KPI eleitoral. +- **Decisões desbloqueadas:** coordenador decide quem vê o quê e quem edita o quê, por pessoa. + +## Direção no codebase (hipótese) + +- **Áreas prováveis:** perfis na conta em `src/collections/CampaignUser.ts`; enforcement nos módulos de acesso `src/utilities/access/*` (o prologue `resolveActorScopedRead`/`resolveAccessibleIds` em `shared.ts` e os módulos por domínio — municípios, lideranças, pledges, demandas, atividades, organizações, dobradinhas, apoiadores); gates de escrita nas server actions `src/app/(campaign)/campanha/actions/*.ts`; UI em `src/components/campaign/advisor/` (`AdvisorsTable`, detalhe `[id]`, formulário novo) e helpers de papel client-safe em `src/lib/campaignRoles.ts`. +- **Precedente a olhar:** B19 (`gerenciar-assessores.md`) — a superfície e os gates de conta; a convenção P3-D do escopo de assessor (uma só grafia do fragmento `{ municipality(s): { in: ids } }`); C116/C116+ — células edit-in-place com estados read-only por papel. +- **Risco de acoplamento:** o escopo do assessor é central e compartilhado (mapa, quantis por escopo, listas, dossiê, Sollinha); qualquer mudança no "o que o assessor vê" propaga. Respeitar leader lockdown e o "não re-escrever o fragmento de escopo" da convenção. + +## Dependências + +- Nenhuma dura. **Guardrail:** a regra de demandas (C143) não depende deste item, e Visão "Tudo" nunca a contorna. C142 (superfícies respeitando o perfil) depende deste. + +## Fora de escopo + +- Perfis para `coordinator`/`candidate`/`leader` (congelados por política de produto). +- Demanda com "responsáveis" explícitos por demanda (vínculo por pessoa) — ver Questões; se confirmado, item sucessor. +- Permissão fina por coleção ou por campo além da regra de demandas. +- Autoatendimento/edição do próprio perfil. +- Histórico/auditoria de mudanças de perfil. + +## Rabbit holes de produto + +- **"Já que tem visão, vou adicionar um role novo."** Papel novo (`viewer`, `auditor`) recria o modelo de papéis e o seed de contas. **Corte:** perfis sobre o papel `advisor` existente — um assessor "visão Tudo · Somente leitura" É o leitor. +- **"Vou pedir permissão por coleção."** Cada campo novo vira matriz N×M e a tela vira IAM. **Corte:** dois eixos só; o que não couber nos eixos fica com a regra das demandas ou fora. +- **"Vou esconder botão no cliente e pronto."** Acesso de verdade mora no servidor; esconder botão é cosmético. **Corte:** enforcement no acesso de dados e nas actions primeiro; a apresentação é a entrega irmã (item seguinte). +- **"Visão Tudo abre as planilhas PII."** Apoiadores/custo de demandas são sensíveis (LGPD/controle interno). **Corte:** apoiadores capados na carteira (decidido); demandas seguem a regra de responsáveis (C143). + +## Decisões do gate (2026-08-19) + +- **Responsável por uma demanda = vínculo explícito por demanda** (opção B da rodada) — mesmo o assessor do município da demanda, se não estiver marcado como responsável, não vê. A regra vive no item irmão **C143**; este item apenas garante que Visão "Tudo" não a contorna. +- **Visão "Tudo" não abre superfícies sensíveis** (opção A) — apoiadores (PII) seguem capados na carteira; demandas seguem a regra de responsáveis (C143). +- **Edição "Tudo" não libera escritas de coordenação** (opção A). +- **Configuração na lista + detalhe + formulário de novo assessor** (opção A). + +## Referências + +- Pedido de produto 2026-08-19 (vertical `/campanha` — granularidade de acesso por conta); decisões do gate na seção acima. +- Item irmão: `docs/plans/demandas-responsaveis.md` (C143 — regra de responsáveis de demanda). +- Rascunho UI (gate): `docs/plans/permissao-granular-assessores-ui-draft.html` + PNGs acima. +- Para abrir primeiro: `src/utilities/access/shared.ts` (`resolveActorScopedRead`), `src/utilities/access/demands.ts` (regra atual de demandas = escopo de leitura), `src/components/campaign/advisor/AdvisorsTable.tsx`, `docs/plans/gerenciar-assessores.md` (B19). +- `AGENTS.md` — modelo de papéis de campanha, convenção P3-D do escopo de assessor. diff --git a/docs/plans/pixel-meta-pagina-campanha-impl.md b/docs/plans/pixel-meta-pagina-campanha-impl.md new file mode 100644 index 00000000..25b03381 --- /dev/null +++ b/docs/plans/pixel-meta-pagina-campanha-impl.md @@ -0,0 +1,87 @@ +# Impl: Pixel do Meta (Facebook) na página pública de campanha + +Status: rascunho +Atualizado em: 2026-08-19 +Issue: #94 +Intenção: docs/plans/pixel-meta-pagina-campanha.md +Appetite restante: herdado (~0,5–1 dia eng) + +## Leitura da intenção + +- **Outcome:** o time de campanha paga configura no admin um campo opcional "ID do Pixel do Meta" nas configurações do site; a home pública de campanha (`/`) passa a carregar o base code + `PageView` do Meta quando o ID está presente e válido; a conclusão da captura de novidades (S9) dispara exatamente um `Lead`. Sem ID configurado, nada é carregado (fail-closed, zero impacto). +- **O que NÃO negociar:** persistir **só o ID numérico** (5–20 dígitos, sem HTML/JS colado — XSS); `Lead` **somente no sucesso** da captura, nunca no page load; Pixel **só na página pública de campanha** (não vazar PageViews de notícias/etc.); sem env var obrigatória; sem CAPI/Advanced Matching, cookie banner/CMP e dedup `eventID` nesta fatia (herda gatilhos do plano da petição); cache da home revalidado pela edição do admin. +- **O que reavaliar:** a hipótese da intenção dizia "home `src/app/(frontend)/(home)/page.tsx` (injeção do ``)" — a injeção pode morar no **layout** do grupo `(home)` (que cobre exatamente a única rota do grupo) em vez da página; e "form de captura do S9" é `CampaignNewsletterForm` (cliente) — a seam do `Lead` é o callback `onSubmit()` já previsto no impl plan do S9. A leitura do global na home é compatível com o caching: `getCachedGlobal('site-settings')` é `unstable_cache` sob a tag `global_site-settings`, já revalidada pelo `afterChange` existente (a home passa a ser ISR nessa tag — mesmo padrão de `SiteHeader`/`socialLinks`). + +## Abordagem recomendada + +```mermaid +flowchart LR + Admin["SiteSettings global
tracking.facebookPixelId (group Rastreamento/Ads)"] + Home["(home)/layout.tsx
getCampaignHomeMetaPixelId"] + Pixel["MetaPixel client
next/script + fbq init/PageView"] + Section["CampaignNewsletterSection
getCampaignHomeMetaPixelId"] + Form["CampaignNewsletterForm
pixelId prop"] + Action["submitCampaignNewsletter"] + Lead["trackMetaLead
content_name novidades-da-campanha"] + Meta["Meta Events Manager"] + + Admin --> Home + Home --> Pixel + Pixel --> Meta + Section --> Form + Form --> Action + Action -->|sucesso--> Lead + Lead --> Meta +``` + +**Opções consideradas:** A (campo no global `SiteSettings` + injeção no layout do grupo `(home)`) · B (novo global de rastreamento dedicado) · C (injeção no `page.tsx` em vez do layout) · D (validate compartilhado em `facebookPixel.ts` vs. duplicado inline) +**Recomendação:** **A+D** — porque o dono existe com revalidação pronta (`afterChange` → `revalidateGlobal('site-settings')`, apontado pelo plano da petição como destino natural de um Pixel global); o layout do grupo `(home)` cobre **exatamente** a página pública de campanha (única rota do grupo), escopando o Pixel ao aceite e impedindo vazamento; e as regras de ID do Pixel passam a viver num único módulo profundo (`facebookPixel.ts` já é o dono), com o validate do `Petition` migrando para o helper compartilhado (edit owner, sem gêmeo). +**Rejeitadas:** + +- **B (global de rastreamento dedicado):** twin do `SiteSettings` — o dono já existe, o plano da petição já o apontava, e um segundo global seria cerimônia sem volatilidade. +- **C (injeção no `page.tsx`):** funcionaria (única rota do grupo), mas o layout é o lugar que declara a superfície "página pública de campanha" (`data-theme="campaign-site"`) — se o grupo ganhar outra rota pública de campanha, o Pixel a cobre por contrato; e `CampaignNewsletterSection` continuaria precisando do pixelId de qualquer forma (2 call sites da mesma leitura). +- **D-duplicado (validate inline copiado do `Petition`):** a repetição do bloco validação/label/description é exatamente o tipo de drift que o precedente da petição adiou com gatilho ("revisitar quando o mesmo ID for colado em ≥3 petições") — o gatilho foi puxado por produto; agora as regras devem ter dono único. + +### Componentes / mudanças + +- **`src/lib/facebookPixel.ts`** (edit owner): adicionar `validateFacebookPixelId(value: string | null | undefined): true | string` — envolve `normalizeFacebookPixelId` devolvendo a mensagem pt-BR do admin ("Informe somente o ID numérico do Pixel (5 a 20 dígitos), sem HTML ou script.") quando inválido; `true` quando vazio ou válido (campo opcional). Módulo já importado por client — helper puro, sem `server-only`. +- **`src/collections/Petition.ts`** (edit owner): o `validate` inline do campo `tracking.facebookPixelId` passa a chamar `validateFacebookPixelId` (remove a duplicação; comportamento idêntico). `beforeChange` e campo inalterados. +- **`src/globals/SiteSettings.ts`** (edit owner): novo group `tracking` (label "Rastreamento / Ads", mesmo do `Petition`) com o campo `facebookPixelId` — `type: 'text'`, opcional, label "ID do Pixel do Meta (Facebook)", `admin.description` idêntica ao precedente, `validate: validateFacebookPixelId`; novo hook `beforeChange` normalizando `data.tracking.facebookPixelId` (mesmo padrão do `Petition`). `afterChange`/access inalterados (`update: payloadAdminOnly` já cobre). +- **`src/utilities/campaignHomeTracking.ts`** (novo, `server-only`): `getCampaignHomeMetaPixelId(): Promise` — `getCachedGlobal('site-settings')()` → `normalizeFacebookPixelId(settings.tracking?.facebookPixelId)`. Esconde a forma do global + normalização; 2 call sites (layout + section); não é pass-through — é a fronteira do tracking da home. +- **`src/app/(frontend)/(home)/layout.tsx`** (edit owner): `const pixelId = await getCampaignHomeMetaPixelId()`; `{pixelId ? : null}` dentro do container do grupo. Leitura cacheada sob `global_site-settings` — a edição do admin revalida a home (ISR), guardrail da intenção. +- **`src/app/(frontend)/(home)/CampaignNewsletterSection.tsx`** (edit owner): lê `getCampaignHomeMetaPixelId()` e passa `pixelId={pixelId ?? undefined}` ao `CampaignNewsletterCapture`. +- **`src/components/CampaignNewsletterForm.tsx`** (edit owner): `CampaignNewsletterForm` ganha prop opcional `pixelId?: string`; no sucesso de `submitCampaignNewsletter` (após `await`, antes do swap `onSubmit()`), `if (pixelId) trackMetaLead(pixelId, NEWSLETTER_LEAD_CONTENT_NAME, crypto.randomUUID())` — padrão exato do `PetitionForm` (linha 61-63). Constante de módulo `NEWSLETTER_LEAD_CONTENT_NAME = 'novidades-da-campanha'` (valor estável visível no Events Manager, mesmo padrão de `content_name` da petição). `CampaignNewsletterCapture` repassa a prop. +- **Migration:** `pnpm migrate:create add_site_settings_facebook_pixel_id` — colunas `tracking_facebook_pixel_id` (tabela `site_settings`) + `version_tracking_facebook_pixel_id` (tabela `site_settings_versions`); sem backfill, sem dado novo. Inspcionar SQL gerado antes de aplicar. +- **Access / Consent:** nenhum — campo herdado do access do global (`update: payloadAdminOnly`), sem PII nova, sem chave de Consent (mesmo precedente da petição: transparência de cookies fica no `/privacidade`, dependência suave herdada). +- **UI:** Impeccable A — N/A (campo único no admin replicando o precedente aceito + script invisível ao visitante; zero superfície pública nova). + +### Dados → forma (não se aplica) + +O dado (PageView/Lead) vive no Meta Events Manager; o app só emite o evento. Nenhuma forma de apresentação nova. + +## Fases verificáveis + +1. **Tracer / schema+server** — migration + `SiteSettings` (group/campo/beforeChange) + `validateFacebookPixelId` em `facebookPixel.ts` + refactor `Petition`; `pnpm migrate` local (teqo e teqo_test) + `pnpm generate:types`; unit do `validateFacebookPixelId` em `tests/unit/facebookPixel.unit.spec.ts`; `pnpm exec tsc --noEmit`. +2. **UI/leitura** — `campaignHomeTracking.ts` + layout com `` + section/form com a seam do `Lead`; e2e novo `tests/e2e/campaignHomePixel.e2e.spec.ts` (configura o global via REST admin com ID válido fixo, carrega a home com `?e2e=`, assere o script `#meta-pixel-`, restaura o global para null no cleanup — idempotente, chave própria, paralelo-safe no DB de teste); spec do S9 inalterado (sem pixel configurado, nada renderiza). +3. **Gates** — `pnpm gate:fast`; `pnpm lint`, `pnpm format:check`, `pnpm exec knip`, `pnpm check:cycles`, `pnpm test`, `pnpm build` (com `S3_*` dummy e `generate:importmap` por via das dúvidas); changelog `docs/changelog/2026-08-19-s10.md` + `pnpm changelog:build`; push e PR via `pnpm push` (base `main` no Forgejo, `Closes #94`). + +## Rabbit holes / Não escopo (engenharia) + +- Não mexer em `submitCampaignNewsletter` (action intacta — o `Lead` é puramente client-side, mesmo padrão da petição). +- Não adicionar fila/retry de `Lead` quando `window.fbq` não carregou (race submit rápido vs. `afterInteractive`) — **herda o gatilho** do plano da petição (revisitar quando smoke com Meta Pixel Helper mostrar `Lead` ausente em produção). +- Não usar o ID do Pixel em outras páginas/superfícies do site. +- Não tocar CSP, env vars, `@types` de terceiros para `fbq` (tipagem local já existe). +- Não indexar/unicidade do campo (mesmo ID pode aparecer em petição e home — aceite da intenção). + +## Riscos e mitigação + +- **Home ISR sob `global_site-settings`:** a primeira render pós-save usa o valor novo (tag busta a cache); o e2e usa o truque do query param (`?e2e=`) para bypass de fetch cache — precedente do spec S9. Nenhuma página fora do grupo `(home)` lê o pixel. +- **Pins de geometria do e2e `frontend`:** `MetaPixel` só renderiza com ID configurado; o spec existente roda sem pixel → DOM inalterado (script + `noscript` `display:none` não deslocam layout). Sem re-pin esperado. +- **Global compartilhado no e2e:** o cleanup restaura `tracking.facebookPixelId` para `null` (update via REST); idempotente por run, DB de teste dedicado por worktree. +- **Concorrência de migration:** rebase em `forgejo/main` já feito; criar a migration após; cadeia validada por `pnpm migrate` + `test:int` no PR. + +## Aceite de engenharia + +- [x] Aceite de produto da intenção ainda coberto (campo admin com mesma validação; PageView na home com fail-closed; exatamente um `Lead` no sucesso; cache revalidado) +- [x] Invariantes AGENTS/engineering-standards (sem HTML colado; edit owner sem gêmeos; copy pt-BR/identifiers EN; `unstable_cache`/tag existentes) +- [ ] Testes de domínio previstos: unit `validateFacebookPixelId` (novo helper) + e2e de injeção do base code condicional diff --git a/docs/plans/secao-video-historia-home-impl.md b/docs/plans/secao-video-historia-home-impl.md index 1d54d499..698b076b 100644 --- a/docs/plans/secao-video-historia-home-impl.md +++ b/docs/plans/secao-video-historia-home-impl.md @@ -110,6 +110,19 @@ client'`, precedente `CampaignCarousel`) — copy (eyebrow/título/copy do rascu 3. **Gates** — `pnpm gate:fast`, `pnpm format:check`, `pnpm exec knip`, `pnpm check:cycles`, `pnpm test`, `pnpm build`; e2e no CI; push via `pnpm push`. +## Conflitos de rebase resolvidos (2026-08-19) + +- **S9 mergeou em main durante a execução** e inseriu `CampaignNewsletterSection` no mesmo ponto + (após bandeiras, antes do footer). Resolução: **história → newsletter → footer** — o funil + põe o "ask" (formulário de captura) depois do fechamento emocional; S9 declara "logo acima do + rodapé" e S8 "após bandeiras"; ambas as intenções ficam satisfeitas. +- **Changelog agregado**: conflito insert-only resolvido com `git checkout --theirs` + + `pnpm changelog:build` (S8 re-anexado sobre o agregado com S7/S9). +- Nota de ambiente: o e2e local (dev server) acusa warnings de React keys em + `CampaignColumnPicker`/omnibox de assessores (B137/B197, era C139) que o guard falha — são + **dev-only** (build de produção do CI não emite warnings de keys), pré-existentes em main e + fora do escopo S8. + ## Débitos (capture-review-debts — triage autônoma) - **Absorvidos nesta entrega:** JSDoc enxuto; e2e sem `toHaveURL` redundante; asserts de diff --git a/docs/plans/ui-respeita-perfil-permissao-ui-draft-demanda-leitura.png b/docs/plans/ui-respeita-perfil-permissao-ui-draft-demanda-leitura.png new file mode 100644 index 0000000000000000000000000000000000000000..50e1a8cbfdef38832150136ea6e2d09d27251868 GIT binary patch literal 47430 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
#?2G$OCvRA!)i=eRPY0}?^g;OT_Li-^y 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

+

+ Depois do perfil de permissão (C141): as telas param de oferecer edição a quem não pode + editar e passam a renderizar o escopo completo para quem vê tudo — cenas: lista de + municípios em modo leitura, lista com visão total, detalhe de demanda somente leitura. +

+ + +
+
+
+
+
+
+
+ +
+
+
+
Município
+
Tendência
+
Nível
+
Classe
+
Cobertura
+
Últ. atualização
+
+
+
Salvador (19 zonas)
+
Favorável
+
N3
+
Reduto
+
82%
+
há 2 dias
+
+
+
Feira de Santana
+
Neutro
+
N2
+
Expansão
+
41%
+
há 5 dias
+
+
+
Ilhéus
+
Favorável
+
—
+
Manutenção
+
57%
+
há 1 dia
+
+
+
+ Mesma lista de sempre — mas sem autosave, sem chips editáveis, sem "Registrar + atualização": nenhum caminho de escrita visível. +
+
+
+ + +
+
+
+
+
+
+
+ Buscar município… +
+
+ +
+
+
+
Município
+
Tendência
+
Nível
+
Classe
+
Cobertura
+
Últ. atualização
+
+
+
Salvador (19 zonas)
+
Favorável
+
N3
+
Reduto
+
82%
+
há 2 dias
+
+
+
Vitória da Conquista
+
Neutro
+
N1
+
Marginal
+
12%
+
há 9 dias
+
+
+
Barreiras
+
Favorável
+
N2
+
Expansão
+
38%
+
há 4 dias
+
+
+
Juazeiro
+
Desfavorável
+
N1
+
Sem base
+
9%
+
há 12 dias
+
+
+
+ Mesma mesa de trabalho de um coordenador (menos apoiadores fora da carteira e demandas + de que não é responsável) — ver regras no plano C141. +
+
+
+ + +
+
+
+
+
+ Material de campanha + Em aberto +
+
+ Cartazes para a caminhada do fim de semana +
+
Ilhéus · liderança: Nome da liderança
+
+
+ +
+
+
Descrição
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor + incididunt ut labore et dolore magna aliqua. +
+
+
Custo estimado
+
R$ 1.200,00
+
+
+
Comprovantes
+
2 anexos
+
+
+ +
+
Histórico de status
+
+
+
+
+ Em aberto — criada por Assessora de + campo · 12 ago +
+
+
+
+
+ Encaminhada — decidida por + Coordenador Geral · 14 ago +
+
+
+
+ Sem botões de transição, sem "registrar pedido", sem edição — só leitura do + andamento. +
+
+
+
+
+
+ + diff --git a/docs/plans/ui-respeita-perfil-permissao.md b/docs/plans/ui-respeita-perfil-permissao.md new file mode 100644 index 00000000..5fa3dc94 --- /dev/null +++ b/docs/plans/ui-respeita-perfil-permissao.md @@ -0,0 +1,88 @@ +# Interface respeita o perfil de permissão (assessor somente-leitura sem controles de edição; visão Tudo no escopo completo) + +Status: aguardando execução +Atualizado em: 2026-08-19 +Issue: #107 +Priority: P1 +Model: cursor-grok-4.5-medium +Impeccable: B — passada de apresentação sobre as superfícies staff do `/campanha` +Rascunho UI: docs/plans/ui-respeita-perfil-permissao-ui-draft.html +Appetite: ~1–2 dias eng; telas passam a refletir o perfil (sem 403s à vista, escopo coerente) +Responsável: — + +## Intenção + +O item irmão (perfis de permissão por assessor) entrega o modelo e o enforcement no servidor. Sem esta passada, um assessor "Somente leitura" ainda **vê** todos os botões, células autosave, FABs e sheets de edição — e cada toque morre com erro de permissão, o oposto do produto que a mesa espera. E um assessor que ganhou "Visão Tudo" precisa que listas, detalhes e mapa carreguem o estado inteiro de forma coerente (contagens, facetas, filtros), não meia-lista. + +## Persona e fluxo + +- **Persona / contexto:** o assessor com perfil restrito, operando o `/campanha` no celular e no desktop — não pode, não deve e não quer tentar editar; e o assessor de visão total, querendo a mesa de trabalho completa. +- **Job principal:** a interface diz a verdade sobre o perfil: quem não edita não encontra edição; quem vê tudo vê tudo. +- **Fluxo desejado:** + 1. Assessor "Carteira · Somente leitura" abre `/campanha/municipios`: células são leitura pura, sem chips editáveis, sem "Registrar atualização", sem FAB de ações — nenhum controle de escrita à vista, sem aviso: a tela simplesmente não oferece edição. + 2. Assessor "Tudo · Edita carteira" abre as mesmas listas: vê o estado inteiro (todos os municípios/lideranças) e edita apenas o que administra — o controle de edição aparece só onde a carteira alcança. + 3. Assessor "Carteira · Edita carteira": exatamente o comportamento de hoje (nada muda). +- **Anti-goals de produto:** bloquear por mensagem de erro em vez de ocultar/desabilitar; cinza-fantasma que confunde o que é editável; redesenho de superfícies que não precisam mudar. + +### Esboço de fluxo (B/C/D) + +```text +[login assessor] → [perfil da conta resolve o que renderizar] + → [visão: escopo completo ou carteira] × [edição: controles presentes ou ausentes] + → [nenhum caminho leva a 403; nenhum dado fora do escopo é oferecido] +``` + +### Rascunho UI (B/C/D) + +![Rascunho UI — lista de municípios em modo leitura](ui-respeita-perfil-permissao-ui-draft-municipios-leitura.png) + +![Rascunho UI — lista de municípios com visão Tudo](ui-respeita-perfil-permissao-ui-draft-municipios-visao-tudo.png) + +![Rascunho UI — detalhe de demanda em modo leitura](ui-respeita-perfil-permissao-ui-draft-demanda-leitura.png) + +## Objetivo e aceite + +- Assessor sem permissão de edição **não encontra nenhum controle de escrita** nas superfícies staff: células de autosave, chips removíveis, "Registrar atualização", FAB/ações rápidas, wizards, sheets e triggers de Popover — no desktop e no mobile. Sem aviso de modo leitura: a presença/ausência dos controles é a única linguagem _(decidido no gate: opção B)_. +- Assessor "Visão Tudo" navega listas, detalhes e mapa no escopo completo, com contagens, facetas e filtros coerentes com o que ele vê. +- Atalhos de escrita (ex.: busca global) seguem a mesma regra: destino de escrita some para quem não pode escrever; atalhos de navegação permanecem _(decidido no gate: opção A)_. +- Nada muda para coordenador/candidato/liderança e para o assessor "Carteira · Edita carteira". +- O enforcement de segurança não é relaxado em nenhum ponto: a apresentação acompanha o servidor, nunca o substitui. + +## Dados (intenção) + +- **Vou apresentar dados?** Não — passada de apresentação sobre superfícies existentes. +- **Decisões desbloqueadas:** nenhuma decisão de dado nova. + +## Direção no codebase (hipótese) + +- **Áreas prováveis:** componentes `src/components/campaign//*` — células edit-in-place e cascas compartilhadas (`CampaignCellEditOverlay`, `CampaignListSheetProvider`, colunas por papel), triggers de autosave por lista, FAB/ações rápidas, botões "Registrar atualização" em municípios/atividades, controles de status em demandas; predicados client-safe de perfil em `src/lib/campaignRoles.ts` (ou o helper do item irmão); dashboards/mapa (`MunicipalityMapPanel` e loaders escopados). +- **Precedente a olhar:** estados `readOnly` já existentes (`RelationChipCell`/`RelationOptionCell` com `readOnly`), a matriz por papel da célula de pessoas (C116: assessor edita só onde a carteira alcança, resto read-only), card mobile de municípios (B193). +- **Risco de acoplamento:** o mapa e as listas já leem "escopo do ator" — cuidado para não duplicar lógica de escopo no cliente; o fragmento de escopo continua vivendo uma vez só (convenção P3-D). + +## Dependências + +- **C141** (modelo + enforcement + configuração) — este item só faz sentido depois do perfil existir e valer no servidor. + +## Fora de escopo + +- Qualquer mudança no modelo de permissão ou no enforcement (é o item irmão). +- Redesenho de superfícies não relacionadas a permissão. +- Estado de leitura para liderança (lockdown já é outra superfície, intocada). + +## Rabbit holes de produto + +- **"Vou esconder tudo com um flag e rezar."** A passada precisa achar **cada** caminho de escrita real (autosave, sheets, wizards, links para formulários). **Corte:** varrer por superfície com a matriz de papéis, como a célula de pessoas já faz; o que não for achado agora aparece no aceite do item. +- **"Vou redesenhar a lista de municípios."** Tocar layout por tocar não é o pedido. **Corte:** manter layouts; mudar só presença/ausência de controles e o aviso de modo leitura. +- **"Cinza-fantasma em tudo."** Desabilitar tudo visualmente polui mais do que ajuda. **Corte:** controles de edição **ocultos** para leitura; aviso discreto no topo. + +## Decisões do gate (2026-08-19) + +- **Modo leitura sem aviso** (opção B) — controles ocultos; presença/ausência de edição é a única linguagem. +- **Atalhos de escrita seguem a regra** (opção A) — destino de escrita some para quem não pode escrever. + +## Referências + +- Item irmão: `docs/plans/permissao-granular-assessores.md` (C141) e `docs/plans/demandas-responsaveis.md` (C143 — a regra de demandas muda o que a demanda renderiza para quem não é responsável). +- Rascunho UI (gate): `docs/plans/ui-respeita-perfil-permissao-ui-draft.html` + PNGs acima. +- Para abrir primeiro: `src/components/campaign/shared/CampaignCellEditOverlay.tsx` (casca dos overlays de edição), `src/lib/campaignRoles.ts` (predicados por papel), a matriz por papel em `pessoas-*` (C116). +- `AGENTS.md` — convenção P3-D do escopo de assessor. diff --git a/scripts/deploy-homeserver.sh b/scripts/deploy-homeserver.sh index 4c36d36d..420ccfa2 100644 --- a/scripts/deploy-homeserver.sh +++ b/scripts/deploy-homeserver.sh @@ -230,4 +230,26 @@ curl -fsS -o /dev/null -X POST "$base/campanha/webauthn/login-options" \ body="$(curl -fsS -X POST "$base/api/revalidate" -H "x-revalidate-secret: $REVALIDATE_SECRET" || true)" echo "$body" | grep -q '"revalidated":true' || smoke_fail "POST /api/revalidate did not confirm" +# --- post-deploy cleanup (INF3/F2) -------------------------------------- +# O deploy compila no homeserver e acumulava build cache + tags locais +# antigas no disco raiz (incidente 19/08: 45G de cache + ~20 tags teqo +# antigas). Best-effort e APÓS o smoke: falha de limpeza nunca falha um +# deploy verde. O registry localhost:5000 preserva as imagens (rollback +# intacto — runbook teqo-1313-deploy.md); removemos só as tags LOCAIS. +# Fail-closed: sem revision no container, não remove nada além do cache. + +say "post-deploy cleanup: build cache + tags locais antigas" +docker builder prune -f >/dev/null 2>&1 || true + +in_use="$(docker inspect -f '{{index .Config.Labels "org.opencontainers.image.revision"}}' teqo-1313 2>/dev/null || true)" +if [ -n "$in_use" ]; then + for img in $(docker images --format '{{.Repository}}:{{.Tag}}' | grep -E '^(localhost:5000/)?teqo-1313(-migrator)?:' || true); do + tag="${img##*:}" + [ "$tag" = "$in_use" ] && continue + docker rmi "$img" >/dev/null 2>&1 || true + done +else + say "cleanup: container sem revision — mantendo imagens locais" +fi + say "deploy of $SHA complete: $(docker inspect -f '{{.Image}}' teqo-1313)" diff --git a/src/app/(frontend)/(home)/CampaignNewsletterSection.tsx b/src/app/(frontend)/(home)/CampaignNewsletterSection.tsx index 20b41a7a..ccb8889d 100644 --- a/src/app/(frontend)/(home)/CampaignNewsletterSection.tsx +++ b/src/app/(frontend)/(home)/CampaignNewsletterSection.tsx @@ -5,8 +5,11 @@ import { CampaignNewsletterCapture } from '@/components/CampaignNewsletterForm' * above the footer (decision 2026-08-19): visitor leaves name + WhatsApp to * follow the campaign, choosing the engagement level. The hero CTA anchors * here (`#novidades`, smooth scroll on the campaign-site container). + * + * S10 — passes the site-level Meta pixel to the form so a successful capture + * fires exactly one `Lead` (the seam lives in the client form). */ -export const CampaignNewsletterSection = () => ( +export const CampaignNewsletterSection = ({ pixelId }: { pixelId?: string }) => (
(

- +
diff --git a/src/app/(frontend)/(home)/layout.tsx b/src/app/(frontend)/(home)/layout.tsx index 5c8131ab..b3b89d9c 100644 --- a/src/app/(frontend)/(home)/layout.tsx +++ b/src/app/(frontend)/(home)/layout.tsx @@ -1,9 +1,15 @@ +import { MetaPixel } from '@/components/MetaPixel' +import { getCampaignHomeMetaPixelId } from '@/utilities/campaignHomeTracking' import React from 'react' import '../styles.css' export default async function RootLayout(props: { children: React.ReactNode }) { const { children } = props + // S10 — the Meta base code + PageView for the campaign page. The read is + // cached under `global_site-settings` and fails closed (no ID → nothing). + const pixelId = await getCampaignHomeMetaPixelId() + // A root `(frontend)` trava o documento com `overflow-hidden`, então a home // é dona do container de scroll interno. `data-theme="campaign-site"` aplica // a paleta da campanha (vermelho PT + amarelo CTA) aos tokens `--pt-*`. @@ -12,6 +18,7 @@ export default async function RootLayout(props: { children: React.ReactNode }) { data-theme="campaign-site" className="relative h-dvh w-full scroll-smooth overflow-y-auto bg-(--campaign-cream) text-(--campaign-ink) motion-reduce:scroll-auto" > + {pixelId ? : null} {children} ) diff --git a/src/app/(frontend)/(home)/page.tsx b/src/app/(frontend)/(home)/page.tsx index e7351777..9527a720 100644 --- a/src/app/(frontend)/(home)/page.tsx +++ b/src/app/(frontend)/(home)/page.tsx @@ -5,6 +5,7 @@ import { CampaignFooter } from '@/components/CampaignFooter' import { CampaignHero } from '@/components/CampaignHero' import { CampaignProblemCard } from '@/components/CampaignProblemCard' import { CampaignStorySection } from '@/components/CampaignStorySection' +import { getCampaignHomeMetaPixelId } from '@/utilities/campaignHomeTracking' import type { ReactNode } from 'react' import { CampaignNewsletterSection } from './CampaignNewsletterSection' @@ -110,6 +111,9 @@ const proofItems = [ ] export default async function HomePage() { + // S10 — site-level Meta pixel for the campaign home (cached read, fail-closed). + const pixelId = await getCampaignHomeMetaPixelId() + return ( <>
@@ -231,7 +235,7 @@ export default async function HomePage() { - +
diff --git a/src/collections/Petition.ts b/src/collections/Petition.ts index 5ebc81bf..287f8208 100644 --- a/src/collections/Petition.ts +++ b/src/collections/Petition.ts @@ -1,4 +1,8 @@ -import { normalizeFacebookPixelId } from '@/lib/facebookPixel' +import { + FACEBOOK_PIXEL_ID_DESCRIPTION, + normalizeFacebookPixelId, + validateFacebookPixelId, +} from '@/lib/facebookPixel' import { payloadAdminOnly } from '@/utilities/campaignAccess' import { revalidateDocumentById } from '@/utilities/documents' import type { CollectionConfig } from 'payload' @@ -116,16 +120,9 @@ export const Petition: CollectionConfig = { type: 'text', label: 'ID do Pixel do Meta (Facebook)', admin: { - description: - 'Cole somente o ID numérico do Events Manager (ex.: 123456789012345), não o snippet HTML completo.', - }, - validate: (value: string | null | undefined) => { - if (!value) return true - if (!normalizeFacebookPixelId(String(value))) { - return 'Informe somente o ID numérico do Pixel (5 a 20 dígitos), sem HTML ou script.' - } - return true + description: FACEBOOK_PIXEL_ID_DESCRIPTION, }, + validate: validateFacebookPixelId, }, ], }, diff --git a/src/components/CampaignNewsletterForm.tsx b/src/components/CampaignNewsletterForm.tsx index a48027e9..b6fd5f37 100644 --- a/src/components/CampaignNewsletterForm.tsx +++ b/src/components/CampaignNewsletterForm.tsx @@ -10,13 +10,18 @@ import { Button } from '@/components/ui/button' import { Checkbox } from '@/components/ui/Checkbox' import { Field, FieldDescription, FieldError, FieldGroup } from '@/components/ui/field' import { Textarea } from '@/components/ui/textarea' +import { trackMetaLead } from '@/lib/facebookPixel' import { CampaignNewsletterInput, campaignNewsletterSchema } from '@/lib/schemas/campaignNewsletter' import { zodResolver } from '@hookform/resolvers/zod' import { CheckIcon } from 'lucide-react' import { useState, useTransition } from 'react' import { FormProvider, SubmitHandler, useForm, useWatch } from 'react-hook-form' +/** S10 — stable `content_name` for the `Lead` fired on a successful capture. */ +const NEWSLETTER_LEAD_CONTENT_NAME = 'novidades-da-campanha' + interface CampaignNewsletterFormProps { + pixelId?: string onSubmit: () => void } @@ -24,9 +29,9 @@ interface CampaignNewsletterFormProps { * S9 — public capture of campaign "novidades" on the home: name + WhatsApp * required, email/state/city/comment optional, engagement-level toggle * pre-selected ("Quero fazer parte do time"). Success swaps the form for an - * in-place confirmation (the seam where S10 will fire `Lead`). + * in-place confirmation (the seam where S10 fires `Lead`). */ -const CampaignNewsletterForm = ({ onSubmit }: CampaignNewsletterFormProps) => { +const CampaignNewsletterForm = ({ pixelId, onSubmit }: CampaignNewsletterFormProps) => { const methods = useForm({ resolver: zodResolver(campaignNewsletterSchema), defaultValues: { @@ -46,6 +51,18 @@ const CampaignNewsletterForm = ({ onSubmit }: CampaignNewsletterFormProps) => { startTransition(async () => { try { await submitCampaignNewsletter(input) + // S10 — exactly one `Lead` per successful capture, never on page load + // (petition precedent). The inner guard keeps a tracking hiccup (e.g. + // `crypto.randomUUID` on a non-secure context) from turning an + // already-committed capture into the error UI; `trackMetaLead` + // no-ops safely without fbq. + if (pixelId) { + try { + trackMetaLead(pixelId, NEWSLETTER_LEAD_CONTENT_NAME, crypto.randomUUID()) + } catch { + // tracking is invisible to the visitor + } + } methods.reset() onSubmit() } catch (error) { @@ -170,12 +187,12 @@ const CampaignNewsletterSuccess = () => ( ) /** S9 — wrapper owning the form ↔ success swap on the home section. */ -export const CampaignNewsletterCapture = () => { +export const CampaignNewsletterCapture = ({ pixelId }: { pixelId?: string }) => { const [submitted, setSubmitted] = useState(false) return submitted ? ( ) : ( - setSubmitted(true)} /> + setSubmitted(true)} /> ) } diff --git a/src/globals/SiteSettings.ts b/src/globals/SiteSettings.ts index d1a09cb5..f1ff2082 100644 --- a/src/globals/SiteSettings.ts +++ b/src/globals/SiteSettings.ts @@ -1,3 +1,8 @@ +import { + FACEBOOK_PIXEL_ID_DESCRIPTION, + normalizeFacebookPixelId, + validateFacebookPixelId, +} from '@/lib/facebookPixel' import { payloadAdminOnly } from '@/utilities/campaignAccess' import { revalidateGlobal } from '@/utilities/globals' import type { GlobalConfig } from 'payload' @@ -19,6 +24,14 @@ export const SiteSettings: GlobalConfig = { update: payloadAdminOnly, }, hooks: { + beforeChange: [ + ({ data }) => { + if (data?.tracking?.facebookPixelId != null) { + data.tracking.facebookPixelId = normalizeFacebookPixelId(data.tracking.facebookPixelId) + } + return data + }, + ], afterChange: [revalidate], }, fields: [ @@ -82,6 +95,22 @@ export const SiteSettings: GlobalConfig = { }, ], }, + { + name: 'tracking', + type: 'group', + label: 'Rastreamento / Ads', + fields: [ + { + name: 'facebookPixelId', + type: 'text', + label: 'ID do Pixel do Meta (Facebook)', + admin: { + description: FACEBOOK_PIXEL_ID_DESCRIPTION, + }, + validate: validateFacebookPixelId, + }, + ], + }, ], versions: { drafts: { diff --git a/src/lib/facebookPixel.ts b/src/lib/facebookPixel.ts index 51049afd..d29685dc 100644 --- a/src/lib/facebookPixel.ts +++ b/src/lib/facebookPixel.ts @@ -1,5 +1,10 @@ const FACEBOOK_PIXEL_ID_PATTERN = /^\d{5,20}$/ +// Shared admin copy: every surface that takes a Pixel ID must say the same +// thing — only the numeric ID, never the full snippet (drift would invite XSS). +export const FACEBOOK_PIXEL_ID_DESCRIPTION = + 'Cole somente o ID numérico do Events Manager (ex.: 123456789012345), não o snippet HTML completo.' + export function isValidFacebookPixelId(value: string | null | undefined): boolean { if (value == null || value === '') return false return FACEBOOK_PIXEL_ID_PATTERN.test(value) @@ -12,6 +17,16 @@ export function normalizeFacebookPixelId(value: string | null | undefined): stri return isValidFacebookPixelId(trimmed) ? trimmed : null } +// Payload field validation shared by every admin surface that takes a Pixel ID +// (petition + site settings): optional field, digits only when present. +export function validateFacebookPixelId(value: string | null | undefined): true | string { + if (!value) return true + if (!normalizeFacebookPixelId(String(value))) { + return 'Informe somente o ID numérico do Pixel (5 a 20 dígitos), sem HTML ou script.' + } + return true +} + declare global { interface Window { fbq?: ( diff --git a/src/migrations/20260819_213947_add_site_settings_facebook_pixel_id.json b/src/migrations/20260819_213947_add_site_settings_facebook_pixel_id.json new file mode 100644 index 00000000..b9c366f3 --- /dev/null +++ b/src/migrations/20260819_213947_add_site_settings_facebook_pixel_id.json @@ -0,0 +1,13776 @@ +{ + "version": "7", + "dialect": "postgresql", + "tables": { + "public.users_roles": { + "name": "users_roles", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum_users_roles", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "users_roles_order_idx": { + "name": "users_roles_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_roles_parent_idx": { + "name": "users_roles_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "users_roles_parent_fk": { + "name": "users_roles_parent_fk", + "tableFrom": "users_roles", + "tableTo": "users", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users_sessions": { + "name": "users_sessions", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "users_sessions_order_idx": { + "name": "users_sessions_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_sessions_parent_id_idx": { + "name": "users_sessions_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "users_sessions_parent_id_fk": { + "name": "users_sessions_parent_id_fk", + "tableFrom": "users_sessions", + "tableTo": "users", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "email": { + "name": "email", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "reset_password_token": { + "name": "reset_password_token", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "reset_password_expiration": { + "name": "reset_password_expiration", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "salt": { + "name": "salt", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "hash": { + "name": "hash", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "login_attempts": { + "name": "login_attempts", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "lock_until": { + "name": "lock_until", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "users_updated_at_idx": { + "name": "users_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_created_at_idx": { + "name": "users_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_email_idx": { + "name": "users_email_idx", + "columns": [ + { + "expression": "email", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.campaign_user_sessions": { + "name": "campaign_user_sessions", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "campaign_user_sessions_order_idx": { + "name": "campaign_user_sessions_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_user_sessions_parent_id_idx": { + "name": "campaign_user_sessions_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "campaign_user_sessions_parent_id_fk": { + "name": "campaign_user_sessions_parent_id_fk", + "tableFrom": "campaign_user_sessions", + "tableTo": "campaign_user", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.campaign_user": { + "name": "campaign_user", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "contact_id": { + "name": "contact_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "avatar_id": { + "name": "avatar_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "role": { + "name": "role", + "type": "enum_campaign_user_role", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'leader'" + }, + "phone": { + "name": "phone", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "email": { + "name": "email", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "username": { + "name": "username", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "reset_password_token": { + "name": "reset_password_token", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "reset_password_expiration": { + "name": "reset_password_expiration", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "salt": { + "name": "salt", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "hash": { + "name": "hash", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "login_attempts": { + "name": "login_attempts", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "lock_until": { + "name": "lock_until", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "campaign_user_contact_idx": { + "name": "campaign_user_contact_idx", + "columns": [ + { + "expression": "contact_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_user_avatar_idx": { + "name": "campaign_user_avatar_idx", + "columns": [ + { + "expression": "avatar_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_user_phone_idx": { + "name": "campaign_user_phone_idx", + "columns": [ + { + "expression": "phone", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_user_updated_at_idx": { + "name": "campaign_user_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_user_created_at_idx": { + "name": "campaign_user_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_user_email_idx": { + "name": "campaign_user_email_idx", + "columns": [ + { + "expression": "email", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_user_username_idx": { + "name": "campaign_user_username_idx", + "columns": [ + { + "expression": "username", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "campaign_user_contact_id_contact_id_fk": { + "name": "campaign_user_contact_id_contact_id_fk", + "tableFrom": "campaign_user", + "tableTo": "contact", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "campaign_user_avatar_id_media_id_fk": { + "name": "campaign_user_avatar_id_media_id_fk", + "tableFrom": "campaign_user", + "tableTo": "media", + "columnsFrom": [ + "avatar_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.campaign_web_authn_credential": { + "name": "campaign_web_authn_credential", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "credential_id": { + "name": "credential_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "public_key": { + "name": "public_key", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "counter": { + "name": "counter", + "type": "numeric", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "transports": { + "name": "transports", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "device_label": { + "name": "device_label", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "last_used_at": { + "name": "last_used_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "campaign_web_authn_credential_user_idx": { + "name": "campaign_web_authn_credential_user_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_web_authn_credential_credential_id_idx": { + "name": "campaign_web_authn_credential_credential_id_idx", + "columns": [ + { + "expression": "credential_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_web_authn_credential_updated_at_idx": { + "name": "campaign_web_authn_credential_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_web_authn_credential_created_at_idx": { + "name": "campaign_web_authn_credential_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "campaign_web_authn_credential_user_id_campaign_user_id_fk": { + "name": "campaign_web_authn_credential_user_id_campaign_user_id_fk", + "tableFrom": "campaign_web_authn_credential", + "tableTo": "campaign_user", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.notification": { + "name": "notification", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "recipient_id": { + "name": "recipient_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "enum_notification_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "payload": { + "name": "payload", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "municipality_id": { + "name": "municipality_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "read_at": { + "name": "read_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "notification_recipient_idx": { + "name": "notification_recipient_idx", + "columns": [ + { + "expression": "recipient_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "notification_type_idx": { + "name": "notification_type_idx", + "columns": [ + { + "expression": "type", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "notification_municipality_idx": { + "name": "notification_municipality_idx", + "columns": [ + { + "expression": "municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "notification_read_at_idx": { + "name": "notification_read_at_idx", + "columns": [ + { + "expression": "read_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "notification_updated_at_idx": { + "name": "notification_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "notification_created_at_idx": { + "name": "notification_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "notification_recipient_id_campaign_user_id_fk": { + "name": "notification_recipient_id_campaign_user_id_fk", + "tableFrom": "notification", + "tableTo": "campaign_user", + "columnsFrom": [ + "recipient_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "notification_municipality_id_municipality_id_fk": { + "name": "notification_municipality_id_municipality_id_fk", + "tableFrom": "notification", + "tableTo": "municipality", + "columnsFrom": [ + "municipality_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.push_subscription": { + "name": "push_subscription", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "endpoint": { + "name": "endpoint", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "p256dh": { + "name": "p256dh", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "auth": { + "name": "auth", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "expiration_time": { + "name": "expiration_time", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "consent_id": { + "name": "consent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "consent_content_hash": { + "name": "consent_content_hash", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "consented_at": { + "name": "consented_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "user_agent": { + "name": "user_agent", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "push_subscription_user_idx": { + "name": "push_subscription_user_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "push_subscription_endpoint_idx": { + "name": "push_subscription_endpoint_idx", + "columns": [ + { + "expression": "endpoint", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "push_subscription_consent_idx": { + "name": "push_subscription_consent_idx", + "columns": [ + { + "expression": "consent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "push_subscription_updated_at_idx": { + "name": "push_subscription_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "push_subscription_created_at_idx": { + "name": "push_subscription_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "push_subscription_user_id_campaign_user_id_fk": { + "name": "push_subscription_user_id_campaign_user_id_fk", + "tableFrom": "push_subscription", + "tableTo": "campaign_user", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "push_subscription_consent_id_consent_id_fk": { + "name": "push_subscription_consent_id_consent_id_fk", + "tableFrom": "push_subscription", + "tableTo": "consent", + "columnsFrom": [ + "consent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.campaign_invite": { + "name": "campaign_invite", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "token_hash": { + "name": "token_hash", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "leadership_id": { + "name": "leadership_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "kind": { + "name": "kind", + "type": "enum_campaign_invite_kind", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "used_at": { + "name": "used_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_by_id": { + "name": "created_by_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "campaign_invite_token_hash_idx": { + "name": "campaign_invite_token_hash_idx", + "columns": [ + { + "expression": "token_hash", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_invite_leadership_idx": { + "name": "campaign_invite_leadership_idx", + "columns": [ + { + "expression": "leadership_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_invite_kind_idx": { + "name": "campaign_invite_kind_idx", + "columns": [ + { + "expression": "kind", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_invite_expires_at_idx": { + "name": "campaign_invite_expires_at_idx", + "columns": [ + { + "expression": "expires_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_invite_used_at_idx": { + "name": "campaign_invite_used_at_idx", + "columns": [ + { + "expression": "used_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_invite_revoked_at_idx": { + "name": "campaign_invite_revoked_at_idx", + "columns": [ + { + "expression": "revoked_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_invite_created_by_idx": { + "name": "campaign_invite_created_by_idx", + "columns": [ + { + "expression": "created_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_invite_updated_at_idx": { + "name": "campaign_invite_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_invite_created_at_idx": { + "name": "campaign_invite_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_kind_idx": { + "name": "leadership_kind_idx", + "columns": [ + { + "expression": "leadership_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "kind", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "campaign_invite_leadership_id_leadership_id_fk": { + "name": "campaign_invite_leadership_id_leadership_id_fk", + "tableFrom": "campaign_invite", + "tableTo": "leadership", + "columnsFrom": [ + "leadership_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "campaign_invite_created_by_id_campaign_user_id_fk": { + "name": "campaign_invite_created_by_id_campaign_user_id_fk", + "tableFrom": "campaign_invite", + "tableTo": "campaign_user", + "columnsFrom": [ + "created_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.campaign_vote_summary_snapshot": { + "name": "campaign_vote_summary_snapshot", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "day": { + "name": "day", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "scope_key": { + "name": "scope_key", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'statewide'" + }, + "staff_vote_total_central": { + "name": "staff_vote_total_central", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "campaign_vote_summary_snapshot_day_idx": { + "name": "campaign_vote_summary_snapshot_day_idx", + "columns": [ + { + "expression": "day", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_vote_summary_snapshot_scope_key_idx": { + "name": "campaign_vote_summary_snapshot_scope_key_idx", + "columns": [ + { + "expression": "scope_key", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_vote_summary_snapshot_updated_at_idx": { + "name": "campaign_vote_summary_snapshot_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_vote_summary_snapshot_created_at_idx": { + "name": "campaign_vote_summary_snapshot_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "day_scopeKey_idx": { + "name": "day_scopeKey_idx", + "columns": [ + { + "expression": "day", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "scope_key", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.municipality_strengths": { + "name": "municipality_strengths", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "municipality_strengths_order_idx": { + "name": "municipality_strengths_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_strengths_parent_id_idx": { + "name": "municipality_strengths_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "municipality_strengths_parent_id_fk": { + "name": "municipality_strengths_parent_id_fk", + "tableFrom": "municipality_strengths", + "tableTo": "municipality", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.municipality_risks": { + "name": "municipality_risks", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "municipality_risks_order_idx": { + "name": "municipality_risks_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_risks_parent_id_idx": { + "name": "municipality_risks_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "municipality_risks_parent_id_fk": { + "name": "municipality_risks_parent_id_fk", + "tableFrom": "municipality_risks", + "tableTo": "municipality", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.municipality": { + "name": "municipality", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "kind": { + "name": "kind", + "type": "enum_municipality_kind", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "city": { + "name": "city", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "region": { + "name": "region", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "ibge_code": { + "name": "ibge_code", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "tse_city_code": { + "name": "tse_city_code", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "zone_number": { + "name": "zone_number", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "priority": { + "name": "priority", + "type": "enum_municipality_priority", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'normal'" + }, + "engagement_level": { + "name": "engagement_level", + "type": "enum_municipality_engagement_level", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "level_note": { + "name": "level_note", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "level_changed_at": { + "name": "level_changed_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "expected_votes_pessimistic": { + "name": "expected_votes_pessimistic", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "expected_votes_central": { + "name": "expected_votes_central", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "expected_votes_optimistic": { + "name": "expected_votes_optimistic", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "political_trend_status": { + "name": "political_trend_status", + "type": "enum_municipality_political_trend_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "political_trend_note": { + "name": "political_trend_note", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "political_trend_recorded_by_id": { + "name": "political_trend_recorded_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "political_trend_recorded_at": { + "name": "political_trend_recorded_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "dobradinha_notes": { + "name": "dobradinha_notes", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "next_steps": { + "name": "next_steps", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "budget_notes": { + "name": "budget_notes", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "last_update_at": { + "name": "last_update_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "municipality_name_idx": { + "name": "municipality_name_idx", + "columns": [ + { + "expression": "name", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_slug_idx": { + "name": "municipality_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_kind_idx": { + "name": "municipality_kind_idx", + "columns": [ + { + "expression": "kind", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_city_idx": { + "name": "municipality_city_idx", + "columns": [ + { + "expression": "city", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_region_idx": { + "name": "municipality_region_idx", + "columns": [ + { + "expression": "region", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_ibge_code_idx": { + "name": "municipality_ibge_code_idx", + "columns": [ + { + "expression": "ibge_code", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_tse_city_code_idx": { + "name": "municipality_tse_city_code_idx", + "columns": [ + { + "expression": "tse_city_code", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_zone_number_idx": { + "name": "municipality_zone_number_idx", + "columns": [ + { + "expression": "zone_number", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_priority_idx": { + "name": "municipality_priority_idx", + "columns": [ + { + "expression": "priority", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_engagement_level_idx": { + "name": "municipality_engagement_level_idx", + "columns": [ + { + "expression": "engagement_level", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_level_changed_at_idx": { + "name": "municipality_level_changed_at_idx", + "columns": [ + { + "expression": "level_changed_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_political_trend_political_trend_recorded_by_idx": { + "name": "municipality_political_trend_political_trend_recorded_by_idx", + "columns": [ + { + "expression": "political_trend_recorded_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_last_update_at_idx": { + "name": "municipality_last_update_at_idx", + "columns": [ + { + "expression": "last_update_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_updated_at_idx": { + "name": "municipality_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_created_at_idx": { + "name": "municipality_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "municipality_political_trend_recorded_by_id_campaign_user_id_fk": { + "name": "municipality_political_trend_recorded_by_id_campaign_user_id_fk", + "tableFrom": "municipality", + "tableTo": "campaign_user", + "columnsFrom": [ + "political_trend_recorded_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.municipality_rels": { + "name": "municipality_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "campaign_user_id": { + "name": "campaign_user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "state_deputy_id": { + "name": "state_deputy_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "municipality_rels_order_idx": { + "name": "municipality_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_rels_parent_idx": { + "name": "municipality_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_rels_path_idx": { + "name": "municipality_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_rels_campaign_user_id_idx": { + "name": "municipality_rels_campaign_user_id_idx", + "columns": [ + { + "expression": "campaign_user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_rels_state_deputy_id_idx": { + "name": "municipality_rels_state_deputy_id_idx", + "columns": [ + { + "expression": "state_deputy_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "municipality_rels_parent_fk": { + "name": "municipality_rels_parent_fk", + "tableFrom": "municipality_rels", + "tableTo": "municipality", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "municipality_rels_campaign_user_fk": { + "name": "municipality_rels_campaign_user_fk", + "tableFrom": "municipality_rels", + "tableTo": "campaign_user", + "columnsFrom": [ + "campaign_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "municipality_rels_state_deputy_fk": { + "name": "municipality_rels_state_deputy_fk", + "tableFrom": "municipality_rels", + "tableTo": "state_deputy", + "columnsFrom": [ + "state_deputy_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.leadership": { + "name": "leadership", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "contact_id": { + "name": "contact_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "exclusive": { + "name": "exclusive", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "support_status": { + "name": "support_status", + "type": "enum_leadership_support_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'a_abordar'" + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "consent_id": { + "name": "consent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "consent_content_hash": { + "name": "consent_content_hash", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "consented_at": { + "name": "consented_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "created_by_id": { + "name": "created_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "leadership_contact_idx": { + "name": "leadership_contact_idx", + "columns": [ + { + "expression": "contact_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_exclusive_idx": { + "name": "leadership_exclusive_idx", + "columns": [ + { + "expression": "exclusive", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_support_status_idx": { + "name": "leadership_support_status_idx", + "columns": [ + { + "expression": "support_status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_user_idx": { + "name": "leadership_user_idx", + "columns": [ + { + "expression": "user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_consent_idx": { + "name": "leadership_consent_idx", + "columns": [ + { + "expression": "consent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_created_by_idx": { + "name": "leadership_created_by_idx", + "columns": [ + { + "expression": "created_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_updated_at_idx": { + "name": "leadership_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_created_at_idx": { + "name": "leadership_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "leadership_contact_id_contact_id_fk": { + "name": "leadership_contact_id_contact_id_fk", + "tableFrom": "leadership", + "tableTo": "contact", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "leadership_user_id_campaign_user_id_fk": { + "name": "leadership_user_id_campaign_user_id_fk", + "tableFrom": "leadership", + "tableTo": "campaign_user", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "leadership_consent_id_consent_id_fk": { + "name": "leadership_consent_id_consent_id_fk", + "tableFrom": "leadership", + "tableTo": "consent", + "columnsFrom": [ + "consent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "leadership_created_by_id_campaign_user_id_fk": { + "name": "leadership_created_by_id_campaign_user_id_fk", + "tableFrom": "leadership", + "tableTo": "campaign_user", + "columnsFrom": [ + "created_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.leadership_rels": { + "name": "leadership_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "municipality_id": { + "name": "municipality_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "organization_id": { + "name": "organization_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "state_deputy_id": { + "name": "state_deputy_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "campaign_user_id": { + "name": "campaign_user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "leadership_rels_order_idx": { + "name": "leadership_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_rels_parent_idx": { + "name": "leadership_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_rels_path_idx": { + "name": "leadership_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_rels_municipality_id_idx": { + "name": "leadership_rels_municipality_id_idx", + "columns": [ + { + "expression": "municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_rels_organization_id_idx": { + "name": "leadership_rels_organization_id_idx", + "columns": [ + { + "expression": "organization_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_rels_state_deputy_id_idx": { + "name": "leadership_rels_state_deputy_id_idx", + "columns": [ + { + "expression": "state_deputy_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_rels_campaign_user_id_idx": { + "name": "leadership_rels_campaign_user_id_idx", + "columns": [ + { + "expression": "campaign_user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "leadership_rels_parent_fk": { + "name": "leadership_rels_parent_fk", + "tableFrom": "leadership_rels", + "tableTo": "leadership", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "leadership_rels_municipality_fk": { + "name": "leadership_rels_municipality_fk", + "tableFrom": "leadership_rels", + "tableTo": "municipality", + "columnsFrom": [ + "municipality_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "leadership_rels_organization_fk": { + "name": "leadership_rels_organization_fk", + "tableFrom": "leadership_rels", + "tableTo": "organization", + "columnsFrom": [ + "organization_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "leadership_rels_state_deputy_fk": { + "name": "leadership_rels_state_deputy_fk", + "tableFrom": "leadership_rels", + "tableTo": "state_deputy", + "columnsFrom": [ + "state_deputy_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "leadership_rels_campaign_user_fk": { + "name": "leadership_rels_campaign_user_fk", + "tableFrom": "leadership_rels", + "tableTo": "campaign_user", + "columnsFrom": [ + "campaign_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.organization": { + "name": "organization", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "kind": { + "name": "kind", + "type": "enum_organization_kind", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "notes": { + "name": "notes", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "created_by_id": { + "name": "created_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "organization_name_idx": { + "name": "organization_name_idx", + "columns": [ + { + "expression": "name", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "organization_slug_idx": { + "name": "organization_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "organization_kind_idx": { + "name": "organization_kind_idx", + "columns": [ + { + "expression": "kind", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "organization_created_by_idx": { + "name": "organization_created_by_idx", + "columns": [ + { + "expression": "created_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "organization_updated_at_idx": { + "name": "organization_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "organization_created_at_idx": { + "name": "organization_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "organization_created_by_id_campaign_user_id_fk": { + "name": "organization_created_by_id_campaign_user_id_fk", + "tableFrom": "organization", + "tableTo": "campaign_user", + "columnsFrom": [ + "created_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.organization_rels": { + "name": "organization_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "municipality_id": { + "name": "municipality_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "organization_rels_order_idx": { + "name": "organization_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "organization_rels_parent_idx": { + "name": "organization_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "organization_rels_path_idx": { + "name": "organization_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "organization_rels_municipality_id_idx": { + "name": "organization_rels_municipality_id_idx", + "columns": [ + { + "expression": "municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "organization_rels_parent_fk": { + "name": "organization_rels_parent_fk", + "tableFrom": "organization_rels", + "tableTo": "organization", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "organization_rels_municipality_fk": { + "name": "organization_rels_municipality_fk", + "tableFrom": "organization_rels", + "tableTo": "municipality", + "columnsFrom": [ + "municipality_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.state_deputy": { + "name": "state_deputy", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "contact_id": { + "name": "contact_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "party": { + "name": "party", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "ballot_name": { + "name": "ballot_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "created_by_id": { + "name": "created_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "state_deputy_contact_idx": { + "name": "state_deputy_contact_idx", + "columns": [ + { + "expression": "contact_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "state_deputy_slug_idx": { + "name": "state_deputy_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "state_deputy_party_idx": { + "name": "state_deputy_party_idx", + "columns": [ + { + "expression": "party", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "state_deputy_created_by_idx": { + "name": "state_deputy_created_by_idx", + "columns": [ + { + "expression": "created_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "state_deputy_updated_at_idx": { + "name": "state_deputy_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "state_deputy_created_at_idx": { + "name": "state_deputy_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "state_deputy_contact_id_contact_id_fk": { + "name": "state_deputy_contact_id_contact_id_fk", + "tableFrom": "state_deputy", + "tableTo": "contact", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "state_deputy_created_by_id_campaign_user_id_fk": { + "name": "state_deputy_created_by_id_campaign_user_id_fk", + "tableFrom": "state_deputy", + "tableTo": "campaign_user", + "columnsFrom": [ + "created_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.state_deputy_rels": { + "name": "state_deputy_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "campaign_user_id": { + "name": "campaign_user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "state_deputy_rels_order_idx": { + "name": "state_deputy_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "state_deputy_rels_parent_idx": { + "name": "state_deputy_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "state_deputy_rels_path_idx": { + "name": "state_deputy_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "state_deputy_rels_campaign_user_id_idx": { + "name": "state_deputy_rels_campaign_user_id_idx", + "columns": [ + { + "expression": "campaign_user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "state_deputy_rels_parent_fk": { + "name": "state_deputy_rels_parent_fk", + "tableFrom": "state_deputy_rels", + "tableTo": "state_deputy", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "state_deputy_rels_campaign_user_fk": { + "name": "state_deputy_rels_campaign_user_fk", + "tableFrom": "state_deputy_rels", + "tableTo": "campaign_user", + "columnsFrom": [ + "campaign_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.vote_pledge": { + "name": "vote_pledge", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "leadership_id": { + "name": "leadership_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "municipality_id": { + "name": "municipality_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "declared_votes": { + "name": "declared_votes", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "declared_at": { + "name": "declared_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "declared_by_id": { + "name": "declared_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "estimated_votes_pessimistic": { + "name": "estimated_votes_pessimistic", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "estimated_votes_central": { + "name": "estimated_votes_central", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "estimated_votes_optimistic": { + "name": "estimated_votes_optimistic", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "estimate_note": { + "name": "estimate_note", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "estimated_by_id": { + "name": "estimated_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "estimated_at": { + "name": "estimated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "vote_pledge_leadership_idx": { + "name": "vote_pledge_leadership_idx", + "columns": [ + { + "expression": "leadership_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "vote_pledge_municipality_idx": { + "name": "vote_pledge_municipality_idx", + "columns": [ + { + "expression": "municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "vote_pledge_declared_votes_idx": { + "name": "vote_pledge_declared_votes_idx", + "columns": [ + { + "expression": "declared_votes", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "vote_pledge_declared_by_idx": { + "name": "vote_pledge_declared_by_idx", + "columns": [ + { + "expression": "declared_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "vote_pledge_estimated_by_idx": { + "name": "vote_pledge_estimated_by_idx", + "columns": [ + { + "expression": "estimated_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "vote_pledge_updated_at_idx": { + "name": "vote_pledge_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "vote_pledge_created_at_idx": { + "name": "vote_pledge_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "leadership_municipality_idx": { + "name": "leadership_municipality_idx", + "columns": [ + { + "expression": "leadership_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "vote_pledge_leadership_id_leadership_id_fk": { + "name": "vote_pledge_leadership_id_leadership_id_fk", + "tableFrom": "vote_pledge", + "tableTo": "leadership", + "columnsFrom": [ + "leadership_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "vote_pledge_municipality_id_municipality_id_fk": { + "name": "vote_pledge_municipality_id_municipality_id_fk", + "tableFrom": "vote_pledge", + "tableTo": "municipality", + "columnsFrom": [ + "municipality_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "vote_pledge_declared_by_id_campaign_user_id_fk": { + "name": "vote_pledge_declared_by_id_campaign_user_id_fk", + "tableFrom": "vote_pledge", + "tableTo": "campaign_user", + "columnsFrom": [ + "declared_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "vote_pledge_estimated_by_id_campaign_user_id_fk": { + "name": "vote_pledge_estimated_by_id_campaign_user_id_fk", + "tableFrom": "vote_pledge", + "tableTo": "campaign_user", + "columnsFrom": [ + "estimated_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._vote_pledge_v": { + "name": "_vote_pledge_v", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_leadership_id": { + "name": "version_leadership_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "version_municipality_id": { + "name": "version_municipality_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "version_declared_votes": { + "name": "version_declared_votes", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "version_declared_at": { + "name": "version_declared_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_declared_by_id": { + "name": "version_declared_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_estimated_votes_pessimistic": { + "name": "version_estimated_votes_pessimistic", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "version_estimated_votes_central": { + "name": "version_estimated_votes_central", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "version_estimated_votes_optimistic": { + "name": "version_estimated_votes_optimistic", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "version_estimate_note": { + "name": "version_estimate_note", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_estimated_by_id": { + "name": "version_estimated_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_estimated_at": { + "name": "version_estimated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_updated_at": { + "name": "version_updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_created_at": { + "name": "version_created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "_vote_pledge_v_parent_idx": { + "name": "_vote_pledge_v_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_vote_pledge_v_version_version_leadership_idx": { + "name": "_vote_pledge_v_version_version_leadership_idx", + "columns": [ + { + "expression": "version_leadership_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_vote_pledge_v_version_version_municipality_idx": { + "name": "_vote_pledge_v_version_version_municipality_idx", + "columns": [ + { + "expression": "version_municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_vote_pledge_v_version_version_declared_votes_idx": { + "name": "_vote_pledge_v_version_version_declared_votes_idx", + "columns": [ + { + "expression": "version_declared_votes", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_vote_pledge_v_version_version_declared_by_idx": { + "name": "_vote_pledge_v_version_version_declared_by_idx", + "columns": [ + { + "expression": "version_declared_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_vote_pledge_v_version_version_estimated_by_idx": { + "name": "_vote_pledge_v_version_version_estimated_by_idx", + "columns": [ + { + "expression": "version_estimated_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_vote_pledge_v_version_version_updated_at_idx": { + "name": "_vote_pledge_v_version_version_updated_at_idx", + "columns": [ + { + "expression": "version_updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_vote_pledge_v_version_version_created_at_idx": { + "name": "_vote_pledge_v_version_version_created_at_idx", + "columns": [ + { + "expression": "version_created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_vote_pledge_v_created_at_idx": { + "name": "_vote_pledge_v_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_vote_pledge_v_updated_at_idx": { + "name": "_vote_pledge_v_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "version_leadership_version_municipality_idx": { + "name": "version_leadership_version_municipality_idx", + "columns": [ + { + "expression": "version_leadership_id", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "version_municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_vote_pledge_v_parent_id_vote_pledge_id_fk": { + "name": "_vote_pledge_v_parent_id_vote_pledge_id_fk", + "tableFrom": "_vote_pledge_v", + "tableTo": "vote_pledge", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_vote_pledge_v_version_leadership_id_leadership_id_fk": { + "name": "_vote_pledge_v_version_leadership_id_leadership_id_fk", + "tableFrom": "_vote_pledge_v", + "tableTo": "leadership", + "columnsFrom": [ + "version_leadership_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_vote_pledge_v_version_municipality_id_municipality_id_fk": { + "name": "_vote_pledge_v_version_municipality_id_municipality_id_fk", + "tableFrom": "_vote_pledge_v", + "tableTo": "municipality", + "columnsFrom": [ + "version_municipality_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_vote_pledge_v_version_declared_by_id_campaign_user_id_fk": { + "name": "_vote_pledge_v_version_declared_by_id_campaign_user_id_fk", + "tableFrom": "_vote_pledge_v", + "tableTo": "campaign_user", + "columnsFrom": [ + "version_declared_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_vote_pledge_v_version_estimated_by_id_campaign_user_id_fk": { + "name": "_vote_pledge_v_version_estimated_by_id_campaign_user_id_fk", + "tableFrom": "_vote_pledge_v", + "tableTo": "campaign_user", + "columnsFrom": [ + "version_estimated_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.allocation_decision": { + "name": "allocation_decision", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "municipality_id": { + "name": "municipality_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "pattern_id": { + "name": "pattern_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "outcome": { + "name": "outcome", + "type": "enum_allocation_decision_outcome", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "rationale": { + "name": "rationale", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "alternative_reading": { + "name": "alternative_reading", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "snapshot": { + "name": "snapshot", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "decided_by_id": { + "name": "decided_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "allocation_decision_municipality_idx": { + "name": "allocation_decision_municipality_idx", + "columns": [ + { + "expression": "municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "allocation_decision_pattern_id_idx": { + "name": "allocation_decision_pattern_id_idx", + "columns": [ + { + "expression": "pattern_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "allocation_decision_decided_by_idx": { + "name": "allocation_decision_decided_by_idx", + "columns": [ + { + "expression": "decided_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "allocation_decision_updated_at_idx": { + "name": "allocation_decision_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "allocation_decision_created_at_idx": { + "name": "allocation_decision_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "allocation_decision_municipality_id_municipality_id_fk": { + "name": "allocation_decision_municipality_id_municipality_id_fk", + "tableFrom": "allocation_decision", + "tableTo": "municipality", + "columnsFrom": [ + "municipality_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "allocation_decision_decided_by_id_campaign_user_id_fk": { + "name": "allocation_decision_decided_by_id_campaign_user_id_fk", + "tableFrom": "allocation_decision", + "tableTo": "campaign_user", + "columnsFrom": [ + "decided_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.campaign_demand_status_history": { + "name": "campaign_demand_status_history", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "status": { + "name": "status", + "type": "enum_campaign_demand_status_history_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "note": { + "name": "note", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "author_id": { + "name": "author_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "campaign_demand_status_history_order_idx": { + "name": "campaign_demand_status_history_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_status_history_parent_id_idx": { + "name": "campaign_demand_status_history_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_status_history_author_idx": { + "name": "campaign_demand_status_history_author_idx", + "columns": [ + { + "expression": "author_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "campaign_demand_status_history_author_id_campaign_user_id_fk": { + "name": "campaign_demand_status_history_author_id_campaign_user_id_fk", + "tableFrom": "campaign_demand_status_history", + "tableTo": "campaign_user", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "campaign_demand_status_history_parent_id_fk": { + "name": "campaign_demand_status_history_parent_id_fk", + "tableFrom": "campaign_demand_status_history", + "tableTo": "campaign_demand", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.campaign_demand": { + "name": "campaign_demand", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "kind": { + "name": "kind", + "type": "enum_campaign_demand_kind", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "municipality_id": { + "name": "municipality_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "activity_id": { + "name": "activity_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "leadership_id": { + "name": "leadership_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "enum_campaign_demand_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'aberta'" + }, + "decision_note": { + "name": "decision_note", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "decided_by_id": { + "name": "decided_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "decided_at": { + "name": "decided_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "cost": { + "name": "cost", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "created_by_id": { + "name": "created_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "campaign_demand_title_idx": { + "name": "campaign_demand_title_idx", + "columns": [ + { + "expression": "title", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_slug_idx": { + "name": "campaign_demand_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_kind_idx": { + "name": "campaign_demand_kind_idx", + "columns": [ + { + "expression": "kind", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_municipality_idx": { + "name": "campaign_demand_municipality_idx", + "columns": [ + { + "expression": "municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_activity_idx": { + "name": "campaign_demand_activity_idx", + "columns": [ + { + "expression": "activity_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_leadership_idx": { + "name": "campaign_demand_leadership_idx", + "columns": [ + { + "expression": "leadership_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_status_idx": { + "name": "campaign_demand_status_idx", + "columns": [ + { + "expression": "status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_decided_by_idx": { + "name": "campaign_demand_decided_by_idx", + "columns": [ + { + "expression": "decided_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_created_by_idx": { + "name": "campaign_demand_created_by_idx", + "columns": [ + { + "expression": "created_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_updated_at_idx": { + "name": "campaign_demand_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_created_at_idx": { + "name": "campaign_demand_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "campaign_demand_municipality_id_municipality_id_fk": { + "name": "campaign_demand_municipality_id_municipality_id_fk", + "tableFrom": "campaign_demand", + "tableTo": "municipality", + "columnsFrom": [ + "municipality_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "campaign_demand_activity_id_activity_id_fk": { + "name": "campaign_demand_activity_id_activity_id_fk", + "tableFrom": "campaign_demand", + "tableTo": "activity", + "columnsFrom": [ + "activity_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "campaign_demand_leadership_id_leadership_id_fk": { + "name": "campaign_demand_leadership_id_leadership_id_fk", + "tableFrom": "campaign_demand", + "tableTo": "leadership", + "columnsFrom": [ + "leadership_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "campaign_demand_decided_by_id_campaign_user_id_fk": { + "name": "campaign_demand_decided_by_id_campaign_user_id_fk", + "tableFrom": "campaign_demand", + "tableTo": "campaign_user", + "columnsFrom": [ + "decided_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "campaign_demand_created_by_id_campaign_user_id_fk": { + "name": "campaign_demand_created_by_id_campaign_user_id_fk", + "tableFrom": "campaign_demand", + "tableTo": "campaign_user", + "columnsFrom": [ + "created_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.campaign_demand_rels": { + "name": "campaign_demand_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "media_id": { + "name": "media_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "campaign_demand_rels_order_idx": { + "name": "campaign_demand_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_rels_parent_idx": { + "name": "campaign_demand_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_rels_path_idx": { + "name": "campaign_demand_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "campaign_demand_rels_media_id_idx": { + "name": "campaign_demand_rels_media_id_idx", + "columns": [ + { + "expression": "media_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "campaign_demand_rels_parent_fk": { + "name": "campaign_demand_rels_parent_fk", + "tableFrom": "campaign_demand_rels", + "tableTo": "campaign_demand", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "campaign_demand_rels_media_fk": { + "name": "campaign_demand_rels_media_fk", + "tableFrom": "campaign_demand_rels", + "tableTo": "media", + "columnsFrom": [ + "media_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.supporter": { + "name": "supporter", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "contact_id": { + "name": "contact_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "municipality_id": { + "name": "municipality_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vote_intention": { + "name": "vote_intention", + "type": "enum_supporter_vote_intention", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "consent_id": { + "name": "consent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "consent_content_hash": { + "name": "consent_content_hash", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "consented_at": { + "name": "consented_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "vote_intention_consent_id": { + "name": "vote_intention_consent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vote_intention_consent_content_hash": { + "name": "vote_intention_consent_content_hash", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "vote_intention_consented_at": { + "name": "vote_intention_consented_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "source": { + "name": "source", + "type": "enum_supporter_source", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'manual'" + }, + "consent_note": { + "name": "consent_note", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "created_by_id": { + "name": "created_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "supporter_contact_idx": { + "name": "supporter_contact_idx", + "columns": [ + { + "expression": "contact_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "supporter_municipality_idx": { + "name": "supporter_municipality_idx", + "columns": [ + { + "expression": "municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "supporter_vote_intention_idx": { + "name": "supporter_vote_intention_idx", + "columns": [ + { + "expression": "vote_intention", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "supporter_consent_idx": { + "name": "supporter_consent_idx", + "columns": [ + { + "expression": "consent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "supporter_vote_intention_consent_idx": { + "name": "supporter_vote_intention_consent_idx", + "columns": [ + { + "expression": "vote_intention_consent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "supporter_source_idx": { + "name": "supporter_source_idx", + "columns": [ + { + "expression": "source", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "supporter_created_by_idx": { + "name": "supporter_created_by_idx", + "columns": [ + { + "expression": "created_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "supporter_updated_at_idx": { + "name": "supporter_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "supporter_created_at_idx": { + "name": "supporter_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "supporter_contact_id_contact_id_fk": { + "name": "supporter_contact_id_contact_id_fk", + "tableFrom": "supporter", + "tableTo": "contact", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "supporter_municipality_id_municipality_id_fk": { + "name": "supporter_municipality_id_municipality_id_fk", + "tableFrom": "supporter", + "tableTo": "municipality", + "columnsFrom": [ + "municipality_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "supporter_consent_id_consent_id_fk": { + "name": "supporter_consent_id_consent_id_fk", + "tableFrom": "supporter", + "tableTo": "consent", + "columnsFrom": [ + "consent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "supporter_vote_intention_consent_id_consent_id_fk": { + "name": "supporter_vote_intention_consent_id_consent_id_fk", + "tableFrom": "supporter", + "tableTo": "consent", + "columnsFrom": [ + "vote_intention_consent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "supporter_created_by_id_campaign_user_id_fk": { + "name": "supporter_created_by_id_campaign_user_id_fk", + "tableFrom": "supporter", + "tableTo": "campaign_user", + "columnsFrom": [ + "created_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.supporter_import_batch": { + "name": "supporter_import_batch", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "batch_id": { + "name": "batch_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "actor_id": { + "name": "actor_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "rows": { + "name": "rows", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "supporter_import_batch_batch_id_idx": { + "name": "supporter_import_batch_batch_id_idx", + "columns": [ + { + "expression": "batch_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "supporter_import_batch_actor_idx": { + "name": "supporter_import_batch_actor_idx", + "columns": [ + { + "expression": "actor_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "supporter_import_batch_expires_at_idx": { + "name": "supporter_import_batch_expires_at_idx", + "columns": [ + { + "expression": "expires_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "supporter_import_batch_updated_at_idx": { + "name": "supporter_import_batch_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "supporter_import_batch_created_at_idx": { + "name": "supporter_import_batch_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "supporter_import_batch_actor_id_campaign_user_id_fk": { + "name": "supporter_import_batch_actor_id_campaign_user_id_fk", + "tableFrom": "supporter_import_batch", + "tableTo": "campaign_user", + "columnsFrom": [ + "actor_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.municipality_update": { + "name": "municipality_update", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "municipality_id": { + "name": "municipality_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "author_id": { + "name": "author_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "polarity": { + "name": "polarity", + "type": "enum_municipality_update_polarity", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'neutra'" + }, + "urgent": { + "name": "urgent", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "adversary_signal": { + "name": "adversary_signal", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "body": { + "name": "body", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "active_volunteers": { + "name": "active_volunteers", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "new_supports": { + "name": "new_supports", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "municipality_update_municipality_idx": { + "name": "municipality_update_municipality_idx", + "columns": [ + { + "expression": "municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_update_author_idx": { + "name": "municipality_update_author_idx", + "columns": [ + { + "expression": "author_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_update_polarity_idx": { + "name": "municipality_update_polarity_idx", + "columns": [ + { + "expression": "polarity", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_update_urgent_idx": { + "name": "municipality_update_urgent_idx", + "columns": [ + { + "expression": "urgent", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_update_adversary_signal_idx": { + "name": "municipality_update_adversary_signal_idx", + "columns": [ + { + "expression": "adversary_signal", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_update_updated_at_idx": { + "name": "municipality_update_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "municipality_update_created_at_idx": { + "name": "municipality_update_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "municipality_update_municipality_id_municipality_id_fk": { + "name": "municipality_update_municipality_id_municipality_id_fk", + "tableFrom": "municipality_update", + "tableTo": "municipality", + "columnsFrom": [ + "municipality_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "municipality_update_author_id_campaign_user_id_fk": { + "name": "municipality_update_author_id_campaign_user_id_fk", + "tableFrom": "municipality_update", + "tableTo": "campaign_user", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.activity_tasks": { + "name": "activity_tasks", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "responsible_id": { + "name": "responsible_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "done": { + "name": "done", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "done_at": { + "name": "done_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "activity_tasks_order_idx": { + "name": "activity_tasks_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_tasks_parent_id_idx": { + "name": "activity_tasks_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_tasks_responsible_idx": { + "name": "activity_tasks_responsible_idx", + "columns": [ + { + "expression": "responsible_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "activity_tasks_responsible_id_contact_id_fk": { + "name": "activity_tasks_responsible_id_contact_id_fk", + "tableFrom": "activity_tasks", + "tableTo": "contact", + "columnsFrom": [ + "responsible_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "activity_tasks_parent_id_fk": { + "name": "activity_tasks_parent_id_fk", + "tableFrom": "activity_tasks", + "tableTo": "activity", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.activity_updates": { + "name": "activity_updates", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "body": { + "name": "body", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "author_id": { + "name": "author_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "activity_updates_order_idx": { + "name": "activity_updates_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_updates_parent_id_idx": { + "name": "activity_updates_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_updates_author_idx": { + "name": "activity_updates_author_idx", + "columns": [ + { + "expression": "author_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "activity_updates_author_id_campaign_user_id_fk": { + "name": "activity_updates_author_id_campaign_user_id_fk", + "tableFrom": "activity_updates", + "tableTo": "campaign_user", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "activity_updates_parent_id_fk": { + "name": "activity_updates_parent_id_fk", + "tableFrom": "activity_updates", + "tableTo": "activity", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.activity": { + "name": "activity", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "status": { + "name": "status", + "type": "enum_activity_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'confirmado'" + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "deputy_present": { + "name": "deputy_present", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "all_day": { + "name": "all_day", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "start_at": { + "name": "start_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "end_at": { + "name": "end_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "municipality_id": { + "name": "municipality_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "locality": { + "name": "locality", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "task_total": { + "name": "task_total", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "task_done_count": { + "name": "task_done_count", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "result_summary": { + "name": "result_summary", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "result_recorded_by_id": { + "name": "result_recorded_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "result_recorded_at": { + "name": "result_recorded_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "last_mirrored_change_at": { + "name": "last_mirrored_change_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_by_id": { + "name": "created_by_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "activity_title_idx": { + "name": "activity_title_idx", + "columns": [ + { + "expression": "title", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_slug_idx": { + "name": "activity_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_status_idx": { + "name": "activity_status_idx", + "columns": [ + { + "expression": "status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_deputy_present_idx": { + "name": "activity_deputy_present_idx", + "columns": [ + { + "expression": "deputy_present", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_all_day_idx": { + "name": "activity_all_day_idx", + "columns": [ + { + "expression": "all_day", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_start_at_idx": { + "name": "activity_start_at_idx", + "columns": [ + { + "expression": "start_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_municipality_idx": { + "name": "activity_municipality_idx", + "columns": [ + { + "expression": "municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_result_recorded_by_idx": { + "name": "activity_result_recorded_by_idx", + "columns": [ + { + "expression": "result_recorded_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_created_by_idx": { + "name": "activity_created_by_idx", + "columns": [ + { + "expression": "created_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_updated_at_idx": { + "name": "activity_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_created_at_idx": { + "name": "activity_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "activity_municipality_id_municipality_id_fk": { + "name": "activity_municipality_id_municipality_id_fk", + "tableFrom": "activity", + "tableTo": "municipality", + "columnsFrom": [ + "municipality_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "activity_result_recorded_by_id_campaign_user_id_fk": { + "name": "activity_result_recorded_by_id_campaign_user_id_fk", + "tableFrom": "activity", + "tableTo": "campaign_user", + "columnsFrom": [ + "result_recorded_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "activity_created_by_id_campaign_user_id_fk": { + "name": "activity_created_by_id_campaign_user_id_fk", + "tableFrom": "activity", + "tableTo": "campaign_user", + "columnsFrom": [ + "created_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.activity_texts": { + "name": "activity_texts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "activity_texts_order_parent": { + "name": "activity_texts_order_parent", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_texts_text_idx": { + "name": "activity_texts_text_idx", + "columns": [ + { + "expression": "text", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "activity_texts_parent_fk": { + "name": "activity_texts_parent_fk", + "tableFrom": "activity_texts", + "tableTo": "activity", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.activity_rels": { + "name": "activity_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "organization_id": { + "name": "organization_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "campaign_user_id": { + "name": "campaign_user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "leadership_id": { + "name": "leadership_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "state_deputy_id": { + "name": "state_deputy_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "media_id": { + "name": "media_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "activity_rels_order_idx": { + "name": "activity_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_rels_parent_idx": { + "name": "activity_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_rels_path_idx": { + "name": "activity_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_rels_organization_id_idx": { + "name": "activity_rels_organization_id_idx", + "columns": [ + { + "expression": "organization_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_rels_campaign_user_id_idx": { + "name": "activity_rels_campaign_user_id_idx", + "columns": [ + { + "expression": "campaign_user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_rels_leadership_id_idx": { + "name": "activity_rels_leadership_id_idx", + "columns": [ + { + "expression": "leadership_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_rels_state_deputy_id_idx": { + "name": "activity_rels_state_deputy_id_idx", + "columns": [ + { + "expression": "state_deputy_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "activity_rels_media_id_idx": { + "name": "activity_rels_media_id_idx", + "columns": [ + { + "expression": "media_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "activity_rels_parent_fk": { + "name": "activity_rels_parent_fk", + "tableFrom": "activity_rels", + "tableTo": "activity", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "activity_rels_organization_fk": { + "name": "activity_rels_organization_fk", + "tableFrom": "activity_rels", + "tableTo": "organization", + "columnsFrom": [ + "organization_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "activity_rels_campaign_user_fk": { + "name": "activity_rels_campaign_user_fk", + "tableFrom": "activity_rels", + "tableTo": "campaign_user", + "columnsFrom": [ + "campaign_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "activity_rels_leadership_fk": { + "name": "activity_rels_leadership_fk", + "tableFrom": "activity_rels", + "tableTo": "leadership", + "columnsFrom": [ + "leadership_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "activity_rels_state_deputy_fk": { + "name": "activity_rels_state_deputy_fk", + "tableFrom": "activity_rels", + "tableTo": "state_deputy", + "columnsFrom": [ + "state_deputy_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "activity_rels_media_fk": { + "name": "activity_rels_media_fk", + "tableFrom": "activity_rels", + "tableTo": "media", + "columnsFrom": [ + "media_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.calendar_feed": { + "name": "calendar_feed", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "secret_slug": { + "name": "secret_slug", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "filter_municipality_id": { + "name": "filter_municipality_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "filter_deputy_present": { + "name": "filter_deputy_present", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "filter_tag": { + "name": "filter_tag", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "revoked_at": { + "name": "revoked_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_by_id": { + "name": "created_by_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "calendar_feed_secret_slug_idx": { + "name": "calendar_feed_secret_slug_idx", + "columns": [ + { + "expression": "secret_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "calendar_feed_filter_municipality_idx": { + "name": "calendar_feed_filter_municipality_idx", + "columns": [ + { + "expression": "filter_municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "calendar_feed_revoked_at_idx": { + "name": "calendar_feed_revoked_at_idx", + "columns": [ + { + "expression": "revoked_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "calendar_feed_created_by_idx": { + "name": "calendar_feed_created_by_idx", + "columns": [ + { + "expression": "created_by_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "calendar_feed_updated_at_idx": { + "name": "calendar_feed_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "calendar_feed_created_at_idx": { + "name": "calendar_feed_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "calendar_feed_filter_municipality_id_municipality_id_fk": { + "name": "calendar_feed_filter_municipality_id_municipality_id_fk", + "tableFrom": "calendar_feed", + "tableTo": "municipality", + "columnsFrom": [ + "filter_municipality_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "calendar_feed_created_by_id_campaign_user_id_fk": { + "name": "calendar_feed_created_by_id_campaign_user_id_fk", + "tableFrom": "calendar_feed", + "tableTo": "campaign_user", + "columnsFrom": [ + "created_by_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.google_calendar_sync": { + "name": "google_calendar_sync", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "calendar_id": { + "name": "calendar_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "disabled_at": { + "name": "disabled_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "last_synced_at": { + "name": "last_synced_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "last_success_at": { + "name": "last_success_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "last_error_at": { + "name": "last_error_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "last_error": { + "name": "last_error", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "push_channel_id": { + "name": "push_channel_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "push_channel_resource_id": { + "name": "push_channel_resource_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "push_channel_expires_at": { + "name": "push_channel_expires_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "push_channel_secret": { + "name": "push_channel_secret", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "push_channel_error": { + "name": "push_channel_error", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "last_seen_event_ids": { + "name": "last_seen_event_ids", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "google_calendar_sync_calendar_id_idx": { + "name": "google_calendar_sync_calendar_id_idx", + "columns": [ + { + "expression": "calendar_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "google_calendar_sync_disabled_at_idx": { + "name": "google_calendar_sync_disabled_at_idx", + "columns": [ + { + "expression": "disabled_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "google_calendar_sync_updated_at_idx": { + "name": "google_calendar_sync_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "google_calendar_sync_created_at_idx": { + "name": "google_calendar_sync_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.election_tally": { + "name": "election_tally", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "year": { + "name": "year", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "office": { + "name": "office", + "type": "enum_election_tally_office", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "turn": { + "name": "turn", + "type": "enum_election_tally_turn", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "state": { + "name": "state", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'BA'" + }, + "city_code": { + "name": "city_code", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "city_name": { + "name": "city_name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "zone_number": { + "name": "zone_number", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "aptos": { + "name": "aptos", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "comparecimento": { + "name": "comparecimento", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "abstencoes": { + "name": "abstencoes", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "votos_validos": { + "name": "votos_validos", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "votos_nominais_validos": { + "name": "votos_nominais_validos", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "votos_legenda": { + "name": "votos_legenda", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "votos_branco": { + "name": "votos_branco", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "votos_nulo": { + "name": "votos_nulo", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "votos_anulados": { + "name": "votos_anulados", + "type": "numeric", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "winner_candidate_number": { + "name": "winner_candidate_number", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "winner_candidate_name": { + "name": "winner_candidate_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "winner_votes": { + "name": "winner_votes", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "winner_coalition": { + "name": "winner_coalition", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "winner_party": { + "name": "winner_party", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "election_tally_year_idx": { + "name": "election_tally_year_idx", + "columns": [ + { + "expression": "year", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_tally_office_idx": { + "name": "election_tally_office_idx", + "columns": [ + { + "expression": "office", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_tally_turn_idx": { + "name": "election_tally_turn_idx", + "columns": [ + { + "expression": "turn", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_tally_state_idx": { + "name": "election_tally_state_idx", + "columns": [ + { + "expression": "state", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_tally_city_code_idx": { + "name": "election_tally_city_code_idx", + "columns": [ + { + "expression": "city_code", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_tally_city_name_idx": { + "name": "election_tally_city_name_idx", + "columns": [ + { + "expression": "city_name", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_tally_zone_number_idx": { + "name": "election_tally_zone_number_idx", + "columns": [ + { + "expression": "zone_number", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_tally_updated_at_idx": { + "name": "election_tally_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_tally_created_at_idx": { + "name": "election_tally_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "year_office_turn_state_cityCode_zoneNumber_idx": { + "name": "year_office_turn_state_cityCode_zoneNumber_idx", + "columns": [ + { + "expression": "year", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "office", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "turn", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "state", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "city_code", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "zone_number", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.election_candidate_vote": { + "name": "election_candidate_vote", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "year": { + "name": "year", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "office": { + "name": "office", + "type": "enum_election_candidate_vote_office", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "turn": { + "name": "turn", + "type": "enum_election_candidate_vote_turn", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "state": { + "name": "state", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'BA'" + }, + "city_code": { + "name": "city_code", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "city_name": { + "name": "city_name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "zone_number": { + "name": "zone_number", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "candidate_number": { + "name": "candidate_number", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "candidate_name": { + "name": "candidate_name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "coalition": { + "name": "coalition", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "party": { + "name": "party", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "vote_type": { + "name": "vote_type", + "type": "enum_election_candidate_vote_vote_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'nominal'" + }, + "votes": { + "name": "votes", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "election_candidate_vote_year_idx": { + "name": "election_candidate_vote_year_idx", + "columns": [ + { + "expression": "year", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_vote_office_idx": { + "name": "election_candidate_vote_office_idx", + "columns": [ + { + "expression": "office", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_vote_turn_idx": { + "name": "election_candidate_vote_turn_idx", + "columns": [ + { + "expression": "turn", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_vote_state_idx": { + "name": "election_candidate_vote_state_idx", + "columns": [ + { + "expression": "state", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_vote_city_code_idx": { + "name": "election_candidate_vote_city_code_idx", + "columns": [ + { + "expression": "city_code", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_vote_city_name_idx": { + "name": "election_candidate_vote_city_name_idx", + "columns": [ + { + "expression": "city_name", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_vote_zone_number_idx": { + "name": "election_candidate_vote_zone_number_idx", + "columns": [ + { + "expression": "zone_number", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_vote_candidate_number_idx": { + "name": "election_candidate_vote_candidate_number_idx", + "columns": [ + { + "expression": "candidate_number", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_vote_vote_type_idx": { + "name": "election_candidate_vote_vote_type_idx", + "columns": [ + { + "expression": "vote_type", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_vote_updated_at_idx": { + "name": "election_candidate_vote_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_vote_created_at_idx": { + "name": "election_candidate_vote_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "compound_index_idx": { + "name": "compound_index_idx", + "columns": [ + { + "expression": "year", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "office", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "turn", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "state", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "city_code", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "zone_number", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "candidate_number", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "vote_type", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.election_candidate": { + "name": "election_candidate", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "year": { + "name": "year", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "office": { + "name": "office", + "type": "enum_election_candidate_office", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "turn": { + "name": "turn", + "type": "enum_election_candidate_turn", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "state": { + "name": "state", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'BA'" + }, + "candidate_number": { + "name": "candidate_number", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "urna_name": { + "name": "urna_name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "complete_name": { + "name": "complete_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "party": { + "name": "party", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "coalition": { + "name": "coalition", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "candidate_status": { + "name": "candidate_status", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "elected": { + "name": "elected", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "elected_by": { + "name": "elected_by", + "type": "enum_election_candidate_elected_by", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "total_votes_state": { + "name": "total_votes_state", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "identity_key": { + "name": "identity_key", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "running_again2026": { + "name": "running_again2026", + "type": "enum_election_candidate_running_again2026", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'desconhecido'" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "election_candidate_year_idx": { + "name": "election_candidate_year_idx", + "columns": [ + { + "expression": "year", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_office_idx": { + "name": "election_candidate_office_idx", + "columns": [ + { + "expression": "office", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_turn_idx": { + "name": "election_candidate_turn_idx", + "columns": [ + { + "expression": "turn", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_state_idx": { + "name": "election_candidate_state_idx", + "columns": [ + { + "expression": "state", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_candidate_number_idx": { + "name": "election_candidate_candidate_number_idx", + "columns": [ + { + "expression": "candidate_number", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_elected_idx": { + "name": "election_candidate_elected_idx", + "columns": [ + { + "expression": "elected", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_identity_key_idx": { + "name": "election_candidate_identity_key_idx", + "columns": [ + { + "expression": "identity_key", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_updated_at_idx": { + "name": "election_candidate_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "election_candidate_created_at_idx": { + "name": "election_candidate_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "year_office_turn_state_candidateNumber_idx": { + "name": "year_office_turn_state_candidateNumber_idx", + "columns": [ + { + "expression": "year", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "office", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "turn", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "state", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "candidate_number", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.media": { + "name": "media", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "alt": { + "name": "alt", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "thumbnail_u_r_l": { + "name": "thumbnail_u_r_l", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filename": { + "name": "filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "mime_type": { + "name": "mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filesize": { + "name": "filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "width": { + "name": "width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "height": { + "name": "height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_x": { + "name": "focal_x", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_y": { + "name": "focal_y", + "type": "numeric", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "media_updated_at_idx": { + "name": "media_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_created_at_idx": { + "name": "media_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_filename_idx": { + "name": "media_filename_idx", + "columns": [ + { + "expression": "filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.petition": { + "name": "petition", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "subtitle": { + "name": "subtitle", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "body": { + "name": "body", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "form_title": { + "name": "form_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "form_subtitle": { + "name": "form_subtitle", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "form_consent_id": { + "name": "form_consent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tracking_facebook_pixel_id": { + "name": "tracking_facebook_pixel_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "_status": { + "name": "_status", + "type": "enum_petition_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + } + }, + "indexes": { + "petition_form_form_consent_idx": { + "name": "petition_form_form_consent_idx", + "columns": [ + { + "expression": "form_consent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "petition_updated_at_idx": { + "name": "petition_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "petition_created_at_idx": { + "name": "petition_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "petition__status_idx": { + "name": "petition__status_idx", + "columns": [ + { + "expression": "_status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "petition_form_consent_id_consent_id_fk": { + "name": "petition_form_consent_id_consent_id_fk", + "tableFrom": "petition", + "tableTo": "consent", + "columnsFrom": [ + "form_consent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._petition_v": { + "name": "_petition_v", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_title": { + "name": "version_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_subtitle": { + "name": "version_subtitle", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_enabled": { + "name": "version_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_body": { + "name": "version_body", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "version_form_title": { + "name": "version_form_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_form_subtitle": { + "name": "version_form_subtitle", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_form_consent_id": { + "name": "version_form_consent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_tracking_facebook_pixel_id": { + "name": "version_tracking_facebook_pixel_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_updated_at": { + "name": "version_updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_created_at": { + "name": "version_created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version__status": { + "name": "version__status", + "type": "enum__petition_v_version_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "latest": { + "name": "latest", + "type": "boolean", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_petition_v_parent_idx": { + "name": "_petition_v_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_petition_v_version_form_version_form_consent_idx": { + "name": "_petition_v_version_form_version_form_consent_idx", + "columns": [ + { + "expression": "version_form_consent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_petition_v_version_version_updated_at_idx": { + "name": "_petition_v_version_version_updated_at_idx", + "columns": [ + { + "expression": "version_updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_petition_v_version_version_created_at_idx": { + "name": "_petition_v_version_version_created_at_idx", + "columns": [ + { + "expression": "version_created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_petition_v_version_version__status_idx": { + "name": "_petition_v_version_version__status_idx", + "columns": [ + { + "expression": "version__status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_petition_v_created_at_idx": { + "name": "_petition_v_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_petition_v_updated_at_idx": { + "name": "_petition_v_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_petition_v_latest_idx": { + "name": "_petition_v_latest_idx", + "columns": [ + { + "expression": "latest", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_petition_v_parent_id_petition_id_fk": { + "name": "_petition_v_parent_id_petition_id_fk", + "tableFrom": "_petition_v", + "tableTo": "petition", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_petition_v_version_form_consent_id_consent_id_fk": { + "name": "_petition_v_version_form_consent_id_consent_id_fk", + "tableFrom": "_petition_v", + "tableTo": "consent", + "columnsFrom": [ + "version_form_consent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.contact_phones": { + "name": "contact_phones", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "value": { + "name": "value", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "contact_phones_order_idx": { + "name": "contact_phones_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "contact_phones_parent_id_idx": { + "name": "contact_phones_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "contact_phones_value_idx": { + "name": "contact_phones_value_idx", + "columns": [ + { + "expression": "value", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "contact_phones_parent_id_fk": { + "name": "contact_phones_parent_id_fk", + "tableFrom": "contact_phones", + "tableTo": "contact", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.contact": { + "name": "contact", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "email": { + "name": "email", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "gender": { + "name": "gender", + "type": "enum_contact_gender", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "state": { + "name": "state", + "type": "enum_contact_state", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "city": { + "name": "city", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "postal_code": { + "name": "postal_code", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "contact_updated_at_idx": { + "name": "contact_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "contact_created_at_idx": { + "name": "contact_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.consent": { + "name": "consent", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "key": { + "name": "key", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "text": { + "name": "text", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "consent_key_idx": { + "name": "consent_key_idx", + "columns": [ + { + "expression": "key", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "consent_updated_at_idx": { + "name": "consent_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "consent_created_at_idx": { + "name": "consent_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.signature": { + "name": "signature", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "contact_id": { + "name": "contact_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "petition_id": { + "name": "petition_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "consent_id": { + "name": "consent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "comment": { + "name": "comment", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "signature_contact_idx": { + "name": "signature_contact_idx", + "columns": [ + { + "expression": "contact_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "signature_petition_idx": { + "name": "signature_petition_idx", + "columns": [ + { + "expression": "petition_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "signature_consent_idx": { + "name": "signature_consent_idx", + "columns": [ + { + "expression": "consent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "signature_updated_at_idx": { + "name": "signature_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "signature_created_at_idx": { + "name": "signature_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "signature_contact_id_contact_id_fk": { + "name": "signature_contact_id_contact_id_fk", + "tableFrom": "signature", + "tableTo": "contact", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "signature_petition_id_petition_id_fk": { + "name": "signature_petition_id_petition_id_fk", + "tableFrom": "signature", + "tableTo": "petition", + "columnsFrom": [ + "petition_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "signature_consent_id_consent_id_fk": { + "name": "signature_consent_id_consent_id_fk", + "tableFrom": "signature", + "tableTo": "consent", + "columnsFrom": [ + "consent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.subscription": { + "name": "subscription", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "contact_id": { + "name": "contact_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "consent_id": { + "name": "consent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "comment": { + "name": "comment", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "campaign_level": { + "name": "campaign_level", + "type": "enum_subscription_campaign_level", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "subscription_contact_idx": { + "name": "subscription_contact_idx", + "columns": [ + { + "expression": "contact_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "subscription_consent_idx": { + "name": "subscription_consent_idx", + "columns": [ + { + "expression": "consent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "subscription_updated_at_idx": { + "name": "subscription_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "subscription_created_at_idx": { + "name": "subscription_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "subscription_contact_id_contact_id_fk": { + "name": "subscription_contact_id_contact_id_fk", + "tableFrom": "subscription", + "tableTo": "contact", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "subscription_consent_id_consent_id_fk": { + "name": "subscription_consent_id_consent_id_fk", + "tableFrom": "subscription", + "tableTo": "consent", + "columnsFrom": [ + "consent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.post": { + "name": "post", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "type": { + "name": "type", + "type": "enum_post_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "category_id": { + "name": "category_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "subtitle": { + "name": "subtitle", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "cover_image_id": { + "name": "cover_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "published_date": { + "name": "published_date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "body": { + "name": "body", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "_status": { + "name": "_status", + "type": "enum_post_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + } + }, + "indexes": { + "post_slug_idx": { + "name": "post_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "post_category_idx": { + "name": "post_category_idx", + "columns": [ + { + "expression": "category_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "post_cover_image_idx": { + "name": "post_cover_image_idx", + "columns": [ + { + "expression": "cover_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "post_updated_at_idx": { + "name": "post_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "post_created_at_idx": { + "name": "post_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "post__status_idx": { + "name": "post__status_idx", + "columns": [ + { + "expression": "_status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "post_category_id_tag_id_fk": { + "name": "post_category_id_tag_id_fk", + "tableFrom": "post", + "tableTo": "tag", + "columnsFrom": [ + "category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "post_cover_image_id_media_id_fk": { + "name": "post_cover_image_id_media_id_fk", + "tableFrom": "post", + "tableTo": "media", + "columnsFrom": [ + "cover_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.post_rels": { + "name": "post_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "tag_id": { + "name": "tag_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "post_rels_order_idx": { + "name": "post_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "post_rels_parent_idx": { + "name": "post_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "post_rels_path_idx": { + "name": "post_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "post_rels_tag_id_idx": { + "name": "post_rels_tag_id_idx", + "columns": [ + { + "expression": "tag_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "post_rels_parent_fk": { + "name": "post_rels_parent_fk", + "tableFrom": "post_rels", + "tableTo": "post", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "post_rels_tag_fk": { + "name": "post_rels_tag_fk", + "tableFrom": "post_rels", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._post_v": { + "name": "_post_v", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_title": { + "name": "version_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug": { + "name": "version_slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_type": { + "name": "version_type", + "type": "enum__post_v_version_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "version_category_id": { + "name": "version_category_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_subtitle": { + "name": "version_subtitle", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_cover_image_id": { + "name": "version_cover_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_published_date": { + "name": "version_published_date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_body": { + "name": "version_body", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "version_updated_at": { + "name": "version_updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_created_at": { + "name": "version_created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version__status": { + "name": "version__status", + "type": "enum__post_v_version_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "latest": { + "name": "latest", + "type": "boolean", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_post_v_parent_idx": { + "name": "_post_v_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_post_v_version_version_slug_idx": { + "name": "_post_v_version_version_slug_idx", + "columns": [ + { + "expression": "version_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_post_v_version_version_category_idx": { + "name": "_post_v_version_version_category_idx", + "columns": [ + { + "expression": "version_category_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_post_v_version_version_cover_image_idx": { + "name": "_post_v_version_version_cover_image_idx", + "columns": [ + { + "expression": "version_cover_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_post_v_version_version_updated_at_idx": { + "name": "_post_v_version_version_updated_at_idx", + "columns": [ + { + "expression": "version_updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_post_v_version_version_created_at_idx": { + "name": "_post_v_version_version_created_at_idx", + "columns": [ + { + "expression": "version_created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_post_v_version_version__status_idx": { + "name": "_post_v_version_version__status_idx", + "columns": [ + { + "expression": "version__status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_post_v_created_at_idx": { + "name": "_post_v_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_post_v_updated_at_idx": { + "name": "_post_v_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_post_v_latest_idx": { + "name": "_post_v_latest_idx", + "columns": [ + { + "expression": "latest", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_post_v_parent_id_post_id_fk": { + "name": "_post_v_parent_id_post_id_fk", + "tableFrom": "_post_v", + "tableTo": "post", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_post_v_version_category_id_tag_id_fk": { + "name": "_post_v_version_category_id_tag_id_fk", + "tableFrom": "_post_v", + "tableTo": "tag", + "columnsFrom": [ + "version_category_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_post_v_version_cover_image_id_media_id_fk": { + "name": "_post_v_version_cover_image_id_media_id_fk", + "tableFrom": "_post_v", + "tableTo": "media", + "columnsFrom": [ + "version_cover_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._post_v_rels": { + "name": "_post_v_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "tag_id": { + "name": "tag_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_post_v_rels_order_idx": { + "name": "_post_v_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_post_v_rels_parent_idx": { + "name": "_post_v_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_post_v_rels_path_idx": { + "name": "_post_v_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_post_v_rels_tag_id_idx": { + "name": "_post_v_rels_tag_id_idx", + "columns": [ + { + "expression": "tag_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_post_v_rels_parent_fk": { + "name": "_post_v_rels_parent_fk", + "tableFrom": "_post_v_rels", + "tableTo": "_post_v", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "_post_v_rels_tag_fk": { + "name": "_post_v_rels_tag_fk", + "tableFrom": "_post_v_rels", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tag": { + "name": "tag", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "hidden": { + "name": "hidden", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "tag_slug_idx": { + "name": "tag_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "tag_updated_at_idx": { + "name": "tag_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "tag_created_at_idx": { + "name": "tag_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.exports": { + "name": "exports", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "format": { + "name": "format", + "type": "enum_exports_format", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'csv'" + }, + "limit": { + "name": "limit", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "page": { + "name": "page", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 1 + }, + "sort": { + "name": "sort", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sort_order": { + "name": "sort_order", + "type": "enum_exports_sort_order", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "drafts": { + "name": "drafts", + "type": "enum_exports_drafts", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'yes'" + }, + "collection_slug": { + "name": "collection_slug", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'signature'" + }, + "where": { + "name": "where", + "type": "jsonb", + "primaryKey": false, + "notNull": false, + "default": "'{}'::jsonb" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "thumbnail_u_r_l": { + "name": "thumbnail_u_r_l", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filename": { + "name": "filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "mime_type": { + "name": "mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filesize": { + "name": "filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "width": { + "name": "width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "height": { + "name": "height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_x": { + "name": "focal_x", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_y": { + "name": "focal_y", + "type": "numeric", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "exports_updated_at_idx": { + "name": "exports_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "exports_created_at_idx": { + "name": "exports_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "exports_filename_idx": { + "name": "exports_filename_idx", + "columns": [ + { + "expression": "filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.exports_texts": { + "name": "exports_texts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "exports_texts_order_parent": { + "name": "exports_texts_order_parent", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + }, + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "exports_texts_parent_fk": { + "name": "exports_texts_parent_fk", + "tableFrom": "exports_texts", + "tableTo": "exports", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.imports": { + "name": "imports", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "collection_slug": { + "name": "collection_slug", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "import_mode": { + "name": "import_mode", + "type": "enum_imports_import_mode", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "match_field": { + "name": "match_field", + "type": "varchar", + "primaryKey": false, + "notNull": false, + "default": "'id'" + }, + "status": { + "name": "status", + "type": "enum_imports_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'pending'" + }, + "summary_imported": { + "name": "summary_imported", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "summary_updated": { + "name": "summary_updated", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "summary_total": { + "name": "summary_total", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "summary_issues": { + "name": "summary_issues", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "summary_issue_details": { + "name": "summary_issue_details", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "thumbnail_u_r_l": { + "name": "thumbnail_u_r_l", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filename": { + "name": "filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "mime_type": { + "name": "mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filesize": { + "name": "filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "width": { + "name": "width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "height": { + "name": "height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_x": { + "name": "focal_x", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_y": { + "name": "focal_y", + "type": "numeric", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "imports_updated_at_idx": { + "name": "imports_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "imports_created_at_idx": { + "name": "imports_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "imports_filename_idx": { + "name": "imports_filename_idx", + "columns": [ + { + "expression": "filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_kv": { + "name": "payload_kv", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "key": { + "name": "key", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "data": { + "name": "data", + "type": "jsonb", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "payload_kv_key_idx": { + "name": "payload_kv_key_idx", + "columns": [ + { + "expression": "key", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_jobs_log": { + "name": "payload_jobs_log", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "executed_at": { + "name": "executed_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "task_slug": { + "name": "task_slug", + "type": "enum_payload_jobs_log_task_slug", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "task_i_d": { + "name": "task_i_d", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "input": { + "name": "input", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "output": { + "name": "output", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "state": { + "name": "state", + "type": "enum_payload_jobs_log_state", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "error": { + "name": "error", + "type": "jsonb", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "payload_jobs_log_order_idx": { + "name": "payload_jobs_log_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_log_parent_id_idx": { + "name": "payload_jobs_log_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "payload_jobs_log_parent_id_fk": { + "name": "payload_jobs_log_parent_id_fk", + "tableFrom": "payload_jobs_log", + "tableTo": "payload_jobs", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_jobs": { + "name": "payload_jobs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "input": { + "name": "input", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "total_tried": { + "name": "total_tried", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "has_error": { + "name": "has_error", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "error": { + "name": "error", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "task_slug": { + "name": "task_slug", + "type": "enum_payload_jobs_task_slug", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "queue": { + "name": "queue", + "type": "varchar", + "primaryKey": false, + "notNull": false, + "default": "'default'" + }, + "wait_until": { + "name": "wait_until", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "processing": { + "name": "processing", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_jobs_completed_at_idx": { + "name": "payload_jobs_completed_at_idx", + "columns": [ + { + "expression": "completed_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_total_tried_idx": { + "name": "payload_jobs_total_tried_idx", + "columns": [ + { + "expression": "total_tried", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_has_error_idx": { + "name": "payload_jobs_has_error_idx", + "columns": [ + { + "expression": "has_error", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_task_slug_idx": { + "name": "payload_jobs_task_slug_idx", + "columns": [ + { + "expression": "task_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_queue_idx": { + "name": "payload_jobs_queue_idx", + "columns": [ + { + "expression": "queue", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_wait_until_idx": { + "name": "payload_jobs_wait_until_idx", + "columns": [ + { + "expression": "wait_until", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_processing_idx": { + "name": "payload_jobs_processing_idx", + "columns": [ + { + "expression": "processing", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_updated_at_idx": { + "name": "payload_jobs_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_created_at_idx": { + "name": "payload_jobs_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_locked_documents": { + "name": "payload_locked_documents", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "global_slug": { + "name": "global_slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_locked_documents_global_slug_idx": { + "name": "payload_locked_documents_global_slug_idx", + "columns": [ + { + "expression": "global_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_updated_at_idx": { + "name": "payload_locked_documents_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_created_at_idx": { + "name": "payload_locked_documents_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_locked_documents_rels": { + "name": "payload_locked_documents_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "users_id": { + "name": "users_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "campaign_user_id": { + "name": "campaign_user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "campaign_web_authn_credential_id": { + "name": "campaign_web_authn_credential_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "notification_id": { + "name": "notification_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "push_subscription_id": { + "name": "push_subscription_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "campaign_invite_id": { + "name": "campaign_invite_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "campaign_vote_summary_snapshot_id": { + "name": "campaign_vote_summary_snapshot_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "municipality_id": { + "name": "municipality_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "leadership_id": { + "name": "leadership_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "organization_id": { + "name": "organization_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "state_deputy_id": { + "name": "state_deputy_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "vote_pledge_id": { + "name": "vote_pledge_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "allocation_decision_id": { + "name": "allocation_decision_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "campaign_demand_id": { + "name": "campaign_demand_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "supporter_id": { + "name": "supporter_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "supporter_import_batch_id": { + "name": "supporter_import_batch_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "municipality_update_id": { + "name": "municipality_update_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "activity_id": { + "name": "activity_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "calendar_feed_id": { + "name": "calendar_feed_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "google_calendar_sync_id": { + "name": "google_calendar_sync_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "election_tally_id": { + "name": "election_tally_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "election_candidate_vote_id": { + "name": "election_candidate_vote_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "election_candidate_id": { + "name": "election_candidate_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "media_id": { + "name": "media_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "petition_id": { + "name": "petition_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "contact_id": { + "name": "contact_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "consent_id": { + "name": "consent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "signature_id": { + "name": "signature_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "subscription_id": { + "name": "subscription_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "post_id": { + "name": "post_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tag_id": { + "name": "tag_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "payload_locked_documents_rels_order_idx": { + "name": "payload_locked_documents_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_parent_idx": { + "name": "payload_locked_documents_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_path_idx": { + "name": "payload_locked_documents_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_users_id_idx": { + "name": "payload_locked_documents_rels_users_id_idx", + "columns": [ + { + "expression": "users_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_campaign_user_id_idx": { + "name": "payload_locked_documents_rels_campaign_user_id_idx", + "columns": [ + { + "expression": "campaign_user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_campaign_web_authn_credent_idx": { + "name": "payload_locked_documents_rels_campaign_web_authn_credent_idx", + "columns": [ + { + "expression": "campaign_web_authn_credential_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_notification_id_idx": { + "name": "payload_locked_documents_rels_notification_id_idx", + "columns": [ + { + "expression": "notification_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_push_subscription_id_idx": { + "name": "payload_locked_documents_rels_push_subscription_id_idx", + "columns": [ + { + "expression": "push_subscription_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_campaign_invite_id_idx": { + "name": "payload_locked_documents_rels_campaign_invite_id_idx", + "columns": [ + { + "expression": "campaign_invite_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_campaign_vote_summary_snap_idx": { + "name": "payload_locked_documents_rels_campaign_vote_summary_snap_idx", + "columns": [ + { + "expression": "campaign_vote_summary_snapshot_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_municipality_id_idx": { + "name": "payload_locked_documents_rels_municipality_id_idx", + "columns": [ + { + "expression": "municipality_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_leadership_id_idx": { + "name": "payload_locked_documents_rels_leadership_id_idx", + "columns": [ + { + "expression": "leadership_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_organization_id_idx": { + "name": "payload_locked_documents_rels_organization_id_idx", + "columns": [ + { + "expression": "organization_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_state_deputy_id_idx": { + "name": "payload_locked_documents_rels_state_deputy_id_idx", + "columns": [ + { + "expression": "state_deputy_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_vote_pledge_id_idx": { + "name": "payload_locked_documents_rels_vote_pledge_id_idx", + "columns": [ + { + "expression": "vote_pledge_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_allocation_decision_id_idx": { + "name": "payload_locked_documents_rels_allocation_decision_id_idx", + "columns": [ + { + "expression": "allocation_decision_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_campaign_demand_id_idx": { + "name": "payload_locked_documents_rels_campaign_demand_id_idx", + "columns": [ + { + "expression": "campaign_demand_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_supporter_id_idx": { + "name": "payload_locked_documents_rels_supporter_id_idx", + "columns": [ + { + "expression": "supporter_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_supporter_import_batch_id_idx": { + "name": "payload_locked_documents_rels_supporter_import_batch_id_idx", + "columns": [ + { + "expression": "supporter_import_batch_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_municipality_update_id_idx": { + "name": "payload_locked_documents_rels_municipality_update_id_idx", + "columns": [ + { + "expression": "municipality_update_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_activity_id_idx": { + "name": "payload_locked_documents_rels_activity_id_idx", + "columns": [ + { + "expression": "activity_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_calendar_feed_id_idx": { + "name": "payload_locked_documents_rels_calendar_feed_id_idx", + "columns": [ + { + "expression": "calendar_feed_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_google_calendar_sync_id_idx": { + "name": "payload_locked_documents_rels_google_calendar_sync_id_idx", + "columns": [ + { + "expression": "google_calendar_sync_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_election_tally_id_idx": { + "name": "payload_locked_documents_rels_election_tally_id_idx", + "columns": [ + { + "expression": "election_tally_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_election_candidate_vote_id_idx": { + "name": "payload_locked_documents_rels_election_candidate_vote_id_idx", + "columns": [ + { + "expression": "election_candidate_vote_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_election_candidate_id_idx": { + "name": "payload_locked_documents_rels_election_candidate_id_idx", + "columns": [ + { + "expression": "election_candidate_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_media_id_idx": { + "name": "payload_locked_documents_rels_media_id_idx", + "columns": [ + { + "expression": "media_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_petition_id_idx": { + "name": "payload_locked_documents_rels_petition_id_idx", + "columns": [ + { + "expression": "petition_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_contact_id_idx": { + "name": "payload_locked_documents_rels_contact_id_idx", + "columns": [ + { + "expression": "contact_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_consent_id_idx": { + "name": "payload_locked_documents_rels_consent_id_idx", + "columns": [ + { + "expression": "consent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_signature_id_idx": { + "name": "payload_locked_documents_rels_signature_id_idx", + "columns": [ + { + "expression": "signature_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_subscription_id_idx": { + "name": "payload_locked_documents_rels_subscription_id_idx", + "columns": [ + { + "expression": "subscription_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_post_id_idx": { + "name": "payload_locked_documents_rels_post_id_idx", + "columns": [ + { + "expression": "post_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_tag_id_idx": { + "name": "payload_locked_documents_rels_tag_id_idx", + "columns": [ + { + "expression": "tag_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "payload_locked_documents_rels_parent_fk": { + "name": "payload_locked_documents_rels_parent_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "payload_locked_documents", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_users_fk": { + "name": "payload_locked_documents_rels_users_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "users", + "columnsFrom": [ + "users_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_campaign_user_fk": { + "name": "payload_locked_documents_rels_campaign_user_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "campaign_user", + "columnsFrom": [ + "campaign_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_campaign_web_authn_credenti_fk": { + "name": "payload_locked_documents_rels_campaign_web_authn_credenti_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "campaign_web_authn_credential", + "columnsFrom": [ + "campaign_web_authn_credential_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_notification_fk": { + "name": "payload_locked_documents_rels_notification_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "notification", + "columnsFrom": [ + "notification_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_push_subscription_fk": { + "name": "payload_locked_documents_rels_push_subscription_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "push_subscription", + "columnsFrom": [ + "push_subscription_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_campaign_invite_fk": { + "name": "payload_locked_documents_rels_campaign_invite_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "campaign_invite", + "columnsFrom": [ + "campaign_invite_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_campaign_vote_summary_snaps_fk": { + "name": "payload_locked_documents_rels_campaign_vote_summary_snaps_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "campaign_vote_summary_snapshot", + "columnsFrom": [ + "campaign_vote_summary_snapshot_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_municipality_fk": { + "name": "payload_locked_documents_rels_municipality_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "municipality", + "columnsFrom": [ + "municipality_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_leadership_fk": { + "name": "payload_locked_documents_rels_leadership_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "leadership", + "columnsFrom": [ + "leadership_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_organization_fk": { + "name": "payload_locked_documents_rels_organization_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "organization", + "columnsFrom": [ + "organization_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_state_deputy_fk": { + "name": "payload_locked_documents_rels_state_deputy_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "state_deputy", + "columnsFrom": [ + "state_deputy_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_vote_pledge_fk": { + "name": "payload_locked_documents_rels_vote_pledge_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "vote_pledge", + "columnsFrom": [ + "vote_pledge_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_allocation_decision_fk": { + "name": "payload_locked_documents_rels_allocation_decision_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "allocation_decision", + "columnsFrom": [ + "allocation_decision_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_campaign_demand_fk": { + "name": "payload_locked_documents_rels_campaign_demand_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "campaign_demand", + "columnsFrom": [ + "campaign_demand_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_supporter_fk": { + "name": "payload_locked_documents_rels_supporter_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "supporter", + "columnsFrom": [ + "supporter_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_supporter_import_batch_fk": { + "name": "payload_locked_documents_rels_supporter_import_batch_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "supporter_import_batch", + "columnsFrom": [ + "supporter_import_batch_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_municipality_update_fk": { + "name": "payload_locked_documents_rels_municipality_update_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "municipality_update", + "columnsFrom": [ + "municipality_update_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_activity_fk": { + "name": "payload_locked_documents_rels_activity_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "activity", + "columnsFrom": [ + "activity_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_calendar_feed_fk": { + "name": "payload_locked_documents_rels_calendar_feed_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "calendar_feed", + "columnsFrom": [ + "calendar_feed_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_google_calendar_sync_fk": { + "name": "payload_locked_documents_rels_google_calendar_sync_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "google_calendar_sync", + "columnsFrom": [ + "google_calendar_sync_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_election_tally_fk": { + "name": "payload_locked_documents_rels_election_tally_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "election_tally", + "columnsFrom": [ + "election_tally_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_election_candidate_vote_fk": { + "name": "payload_locked_documents_rels_election_candidate_vote_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "election_candidate_vote", + "columnsFrom": [ + "election_candidate_vote_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_election_candidate_fk": { + "name": "payload_locked_documents_rels_election_candidate_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "election_candidate", + "columnsFrom": [ + "election_candidate_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_media_fk": { + "name": "payload_locked_documents_rels_media_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "media", + "columnsFrom": [ + "media_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_petition_fk": { + "name": "payload_locked_documents_rels_petition_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "petition", + "columnsFrom": [ + "petition_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_contact_fk": { + "name": "payload_locked_documents_rels_contact_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "contact", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_consent_fk": { + "name": "payload_locked_documents_rels_consent_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "consent", + "columnsFrom": [ + "consent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_signature_fk": { + "name": "payload_locked_documents_rels_signature_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "signature", + "columnsFrom": [ + "signature_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_subscription_fk": { + "name": "payload_locked_documents_rels_subscription_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "subscription", + "columnsFrom": [ + "subscription_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_post_fk": { + "name": "payload_locked_documents_rels_post_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_tag_fk": { + "name": "payload_locked_documents_rels_tag_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_preferences": { + "name": "payload_preferences", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "key": { + "name": "key", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "value": { + "name": "value", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_preferences_key_idx": { + "name": "payload_preferences_key_idx", + "columns": [ + { + "expression": "key", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_updated_at_idx": { + "name": "payload_preferences_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_created_at_idx": { + "name": "payload_preferences_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_preferences_rels": { + "name": "payload_preferences_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "users_id": { + "name": "users_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "campaign_user_id": { + "name": "campaign_user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "payload_preferences_rels_order_idx": { + "name": "payload_preferences_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_parent_idx": { + "name": "payload_preferences_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_path_idx": { + "name": "payload_preferences_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_users_id_idx": { + "name": "payload_preferences_rels_users_id_idx", + "columns": [ + { + "expression": "users_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_campaign_user_id_idx": { + "name": "payload_preferences_rels_campaign_user_id_idx", + "columns": [ + { + "expression": "campaign_user_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "payload_preferences_rels_parent_fk": { + "name": "payload_preferences_rels_parent_fk", + "tableFrom": "payload_preferences_rels", + "tableTo": "payload_preferences", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_preferences_rels_users_fk": { + "name": "payload_preferences_rels_users_fk", + "tableFrom": "payload_preferences_rels", + "tableTo": "users", + "columnsFrom": [ + "users_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_preferences_rels_campaign_user_fk": { + "name": "payload_preferences_rels_campaign_user_fk", + "tableFrom": "payload_preferences_rels", + "tableTo": "campaign_user", + "columnsFrom": [ + "campaign_user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_migrations": { + "name": "payload_migrations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "batch": { + "name": "batch", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_migrations_updated_at_idx": { + "name": "payload_migrations_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_migrations_created_at_idx": { + "name": "payload_migrations_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.site_settings_social_links": { + "name": "site_settings_social_links", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "platform": { + "name": "platform", + "type": "enum_site_settings_social_links_platform", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "site_settings_social_links_order_idx": { + "name": "site_settings_social_links_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "site_settings_social_links_parent_id_idx": { + "name": "site_settings_social_links_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "site_settings_social_links_parent_id_fk": { + "name": "site_settings_social_links_parent_id_fk", + "tableFrom": "site_settings_social_links", + "tableTo": "site_settings", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.site_settings": { + "name": "site_settings", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "header_title": { + "name": "header_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "tracking_facebook_pixel_id": { + "name": "tracking_facebook_pixel_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "_status": { + "name": "_status", + "type": "enum_site_settings_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "site_settings__status_idx": { + "name": "site_settings__status_idx", + "columns": [ + { + "expression": "_status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._site_settings_v_version_social_links": { + "name": "_site_settings_v_version_social_links", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "platform": { + "name": "platform", + "type": "enum__site_settings_v_version_social_links_platform", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "_uuid": { + "name": "_uuid", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_site_settings_v_version_social_links_order_idx": { + "name": "_site_settings_v_version_social_links_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_site_settings_v_version_social_links_parent_id_idx": { + "name": "_site_settings_v_version_social_links_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_site_settings_v_version_social_links_parent_id_fk": { + "name": "_site_settings_v_version_social_links_parent_id_fk", + "tableFrom": "_site_settings_v_version_social_links", + "tableTo": "_site_settings_v", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._site_settings_v": { + "name": "_site_settings_v", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "version_header_title": { + "name": "version_header_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_tracking_facebook_pixel_id": { + "name": "version_tracking_facebook_pixel_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version__status": { + "name": "version__status", + "type": "enum__site_settings_v_version_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + }, + "version_updated_at": { + "name": "version_updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_created_at": { + "name": "version_created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "latest": { + "name": "latest", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "autosave": { + "name": "autosave", + "type": "boolean", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_site_settings_v_version_version__status_idx": { + "name": "_site_settings_v_version_version__status_idx", + "columns": [ + { + "expression": "version__status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_site_settings_v_created_at_idx": { + "name": "_site_settings_v_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_site_settings_v_updated_at_idx": { + "name": "_site_settings_v_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_site_settings_v_latest_idx": { + "name": "_site_settings_v_latest_idx", + "columns": [ + { + "expression": "latest", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_site_settings_v_autosave_idx": { + "name": "_site_settings_v_autosave_idx", + "columns": [ + { + "expression": "autosave", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.home": { + "name": "home", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "image_id": { + "name": "image_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "home_image_idx": { + "name": "home_image_idx", + "columns": [ + { + "expression": "image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "home_image_id_media_id_fk": { + "name": "home_image_id_media_id_fk", + "tableFrom": "home", + "tableTo": "media", + "columnsFrom": [ + "image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.metadata_keywords": { + "name": "metadata_keywords", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "keyword": { + "name": "keyword", + "type": "varchar", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "metadata_keywords_order_idx": { + "name": "metadata_keywords_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "metadata_keywords_parent_id_idx": { + "name": "metadata_keywords_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "metadata_keywords_parent_id_fk": { + "name": "metadata_keywords_parent_id_fk", + "tableFrom": "metadata_keywords", + "tableTo": "metadata", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.metadata": { + "name": "metadata", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "open_graph_site_name": { + "name": "open_graph_site_name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "open_graph_description": { + "name": "open_graph_description", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "twitter_creator": { + "name": "twitter_creator", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "twitter_description": { + "name": "twitter_description", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "image_id": { + "name": "image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "metadata_image_idx": { + "name": "metadata_image_idx", + "columns": [ + { + "expression": "image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "metadata_image_id_media_id_fk": { + "name": "metadata_image_id_media_id_fk", + "tableFrom": "metadata", + "tableTo": "media", + "columnsFrom": [ + "image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.privacy_policy": { + "name": "privacy_policy", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "published": { + "name": "published", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "body": { + "name": "body", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.campaign_goals": { + "name": "campaign_goals", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "state_goal": { + "name": "state_goal", + "type": "numeric", + "primaryKey": false, + "notNull": true, + "default": 150000 + }, + "margin": { + "name": "margin", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "base_year": { + "name": "base_year", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "note": { + "name": "note", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.social_feed_settings_excluded_items": { + "name": "social_feed_settings_excluded_items", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "platform": { + "name": "platform", + "type": "enum_social_feed_settings_excluded_items_platform", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "item_id": { + "name": "item_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "reason": { + "name": "reason", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "social_feed_settings_excluded_items_order_idx": { + "name": "social_feed_settings_excluded_items_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "social_feed_settings_excluded_items_parent_id_idx": { + "name": "social_feed_settings_excluded_items_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "social_feed_settings_excluded_items_parent_id_fk": { + "name": "social_feed_settings_excluded_items_parent_id_fk", + "tableFrom": "social_feed_settings_excluded_items", + "tableTo": "social_feed_settings", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.social_feed_settings": { + "name": "social_feed_settings", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "youtube_enabled": { + "name": "youtube_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "youtube_api_key": { + "name": "youtube_api_key", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "youtube_channel_id": { + "name": "youtube_channel_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "youtube_max_items": { + "name": "youtube_max_items", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 3 + }, + "instagram_enabled": { + "name": "instagram_enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "instagram_access_token": { + "name": "instagram_access_token", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "instagram_user_id": { + "name": "instagram_user_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "instagram_max_items": { + "name": "instagram_max_items", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 3 + }, + "youtube_feed_snapshot": { + "name": "youtube_feed_snapshot", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "instagram_feed_snapshot": { + "name": "instagram_feed_snapshot", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.enum_users_roles": { + "name": "enum_users_roles", + "schema": "public", + "values": [ + "admin", + "editor" + ] + }, + "public.enum_campaign_user_role": { + "name": "enum_campaign_user_role", + "schema": "public", + "values": [ + "coordinator", + "advisor", + "candidate", + "leader" + ] + }, + "public.enum_notification_type": { + "name": "enum_notification_type", + "schema": "public", + "values": [ + "municipality_update", + "new_supporter", + "activity_attention", + "invite_accepted" + ] + }, + "public.enum_campaign_invite_kind": { + "name": "enum_campaign_invite_kind", + "schema": "public", + "values": [ + "login", + "autopreenchimento" + ] + }, + "public.enum_municipality_kind": { + "name": "enum_municipality_kind", + "schema": "public", + "values": [ + "municipio", + "zona" + ] + }, + "public.enum_municipality_priority": { + "name": "enum_municipality_priority", + "schema": "public", + "values": [ + "alta", + "normal" + ] + }, + "public.enum_municipality_engagement_level": { + "name": "enum_municipality_engagement_level", + "schema": "public", + "values": [ + "n0", + "n1", + "n2", + "n3", + "n4" + ] + }, + "public.enum_municipality_political_trend_status": { + "name": "enum_municipality_political_trend_status", + "schema": "public", + "values": [ + "favoravel", + "neutra", + "desfavoravel" + ] + }, + "public.enum_leadership_support_status": { + "name": "enum_leadership_support_status", + "schema": "public", + "values": [ + "engajado", + "a_abordar", + "em_disputa", + "lembranca", + "negativo" + ] + }, + "public.enum_organization_kind": { + "name": "enum_organization_kind", + "schema": "public", + "values": [ + "sindicato", + "associacao", + "religioso", + "movimento", + "categoria_profissional", + "outro" + ] + }, + "public.enum_allocation_decision_outcome": { + "name": "enum_allocation_decision_outcome", + "schema": "public", + "values": [ + "aceita", + "descarta", + "movimento", + "adiada" + ] + }, + "public.enum_campaign_demand_status_history_status": { + "name": "enum_campaign_demand_status_history_status", + "schema": "public", + "values": [ + "aberta", + "em_analise", + "escalada", + "aprovada", + "rejeitada" + ] + }, + "public.enum_campaign_demand_kind": { + "name": "enum_campaign_demand_kind", + "schema": "public", + "values": [ + "material", + "servico", + "transporte", + "alimentacao", + "infraestrutura", + "espaco", + "equipamento", + "pessoal_apoio", + "outro" + ] + }, + "public.enum_campaign_demand_status": { + "name": "enum_campaign_demand_status", + "schema": "public", + "values": [ + "aberta", + "em_analise", + "escalada", + "aprovada", + "rejeitada" + ] + }, + "public.enum_supporter_vote_intention": { + "name": "enum_supporter_vote_intention", + "schema": "public", + "values": [ + "certo", + "tende_a_certo", + "indeciso", + "outro" + ] + }, + "public.enum_supporter_source": { + "name": "enum_supporter_source", + "schema": "public", + "values": [ + "import_csv", + "manual", + "lideranca", + "convite", + "evento" + ] + }, + "public.enum_municipality_update_polarity": { + "name": "enum_municipality_update_polarity", + "schema": "public", + "values": [ + "boa", + "neutra", + "ruim" + ] + }, + "public.enum_activity_status": { + "name": "enum_activity_status", + "schema": "public", + "values": [ + "confirmado", + "realizado", + "cancelado" + ] + }, + "public.enum_election_tally_office": { + "name": "enum_election_tally_office", + "schema": "public", + "values": [ + "presidente", + "governador", + "deputado_federal", + "deputado_estadual" + ] + }, + "public.enum_election_tally_turn": { + "name": "enum_election_tally_turn", + "schema": "public", + "values": [ + "1", + "2" + ] + }, + "public.enum_election_candidate_vote_office": { + "name": "enum_election_candidate_vote_office", + "schema": "public", + "values": [ + "presidente", + "governador", + "deputado_federal", + "deputado_estadual" + ] + }, + "public.enum_election_candidate_vote_turn": { + "name": "enum_election_candidate_vote_turn", + "schema": "public", + "values": [ + "1", + "2" + ] + }, + "public.enum_election_candidate_vote_vote_type": { + "name": "enum_election_candidate_vote_vote_type", + "schema": "public", + "values": [ + "nominal", + "legenda" + ] + }, + "public.enum_election_candidate_office": { + "name": "enum_election_candidate_office", + "schema": "public", + "values": [ + "presidente", + "governador", + "deputado_federal", + "deputado_estadual" + ] + }, + "public.enum_election_candidate_turn": { + "name": "enum_election_candidate_turn", + "schema": "public", + "values": [ + "1", + "2" + ] + }, + "public.enum_election_candidate_elected_by": { + "name": "enum_election_candidate_elected_by", + "schema": "public", + "values": [ + "QP", + "média", + "2º turno" + ] + }, + "public.enum_election_candidate_running_again2026": { + "name": "enum_election_candidate_running_again2026", + "schema": "public", + "values": [ + "sim", + "nao", + "desconhecido" + ] + }, + "public.enum_petition_status": { + "name": "enum_petition_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum__petition_v_version_status": { + "name": "enum__petition_v_version_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum_contact_gender": { + "name": "enum_contact_gender", + "schema": "public", + "values": [ + "feminino", + "masculino", + "outro", + "nao_informado" + ] + }, + "public.enum_contact_state": { + "name": "enum_contact_state", + "schema": "public", + "values": [ + "AC", + "AL", + "AM", + "AP", + "BA", + "CE", + "DF", + "ES", + "GO", + "MA", + "MG", + "MS", + "MT", + "PA", + "PB", + "PE", + "PI", + "PR", + "RJ", + "RN", + "RO", + "RR", + "RS", + "SC", + "SE", + "SP", + "TO" + ] + }, + "public.enum_subscription_campaign_level": { + "name": "enum_subscription_campaign_level", + "schema": "public", + "values": [ + "time", + "esporadico" + ] + }, + "public.enum_post_type": { + "name": "enum_post_type", + "schema": "public", + "values": [ + "noticia", + "campanha", + "artigo", + "evento" + ] + }, + "public.enum_post_status": { + "name": "enum_post_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum__post_v_version_type": { + "name": "enum__post_v_version_type", + "schema": "public", + "values": [ + "noticia", + "campanha", + "artigo", + "evento" + ] + }, + "public.enum__post_v_version_status": { + "name": "enum__post_v_version_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum_exports_format": { + "name": "enum_exports_format", + "schema": "public", + "values": [ + "csv", + "json" + ] + }, + "public.enum_exports_sort_order": { + "name": "enum_exports_sort_order", + "schema": "public", + "values": [ + "asc", + "desc" + ] + }, + "public.enum_exports_drafts": { + "name": "enum_exports_drafts", + "schema": "public", + "values": [ + "yes", + "no" + ] + }, + "public.enum_imports_import_mode": { + "name": "enum_imports_import_mode", + "schema": "public", + "values": [ + "create", + "update", + "upsert" + ] + }, + "public.enum_imports_status": { + "name": "enum_imports_status", + "schema": "public", + "values": [ + "pending", + "completed", + "partial", + "failed" + ] + }, + "public.enum_payload_jobs_log_task_slug": { + "name": "enum_payload_jobs_log_task_slug", + "schema": "public", + "values": [ + "inline", + "createCollectionExport", + "createCollectionImport", + "schedulePublish" + ] + }, + "public.enum_payload_jobs_log_state": { + "name": "enum_payload_jobs_log_state", + "schema": "public", + "values": [ + "failed", + "succeeded" + ] + }, + "public.enum_payload_jobs_task_slug": { + "name": "enum_payload_jobs_task_slug", + "schema": "public", + "values": [ + "inline", + "createCollectionExport", + "createCollectionImport", + "schedulePublish" + ] + }, + "public.enum_site_settings_social_links_platform": { + "name": "enum_site_settings_social_links_platform", + "schema": "public", + "values": [ + "instagram", + "facebook", + "youtube", + "whatsapp" + ] + }, + "public.enum_site_settings_status": { + "name": "enum_site_settings_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum__site_settings_v_version_social_links_platform": { + "name": "enum__site_settings_v_version_social_links_platform", + "schema": "public", + "values": [ + "instagram", + "facebook", + "youtube", + "whatsapp" + ] + }, + "public.enum__site_settings_v_version_status": { + "name": "enum__site_settings_v_version_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum_social_feed_settings_excluded_items_platform": { + "name": "enum_social_feed_settings_excluded_items_platform", + "schema": "public", + "values": [ + "youtube", + "instagram" + ] + } + }, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "id": "2c7abc67-4745-400d-a4c8-750ff234031d", + "prevId": "00000000-0000-0000-0000-000000000000" +} \ No newline at end of file diff --git a/src/migrations/20260819_213947_add_site_settings_facebook_pixel_id.ts b/src/migrations/20260819_213947_add_site_settings_facebook_pixel_id.ts new file mode 100644 index 00000000..015eeb5c --- /dev/null +++ b/src/migrations/20260819_213947_add_site_settings_facebook_pixel_id.ts @@ -0,0 +1,13 @@ +import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres' + +export async function up({ db, payload, req }: MigrateUpArgs): Promise { + await db.execute(sql` + ALTER TABLE "site_settings" ADD COLUMN "tracking_facebook_pixel_id" varchar; + ALTER TABLE "_site_settings_v" ADD COLUMN "version_tracking_facebook_pixel_id" varchar;`) +} + +export async function down({ db, payload, req }: MigrateDownArgs): Promise { + await db.execute(sql` + ALTER TABLE "site_settings" DROP COLUMN "tracking_facebook_pixel_id"; + ALTER TABLE "_site_settings_v" DROP COLUMN "version_tracking_facebook_pixel_id";`) +} diff --git a/src/migrations/index.ts b/src/migrations/index.ts index fa335e21..5517a8c7 100644 --- a/src/migrations/index.ts +++ b/src/migrations/index.ts @@ -57,6 +57,7 @@ import * as migration_20260811_234822_add_state_deputy_ballot_name from './20260 import * as migration_20260818_111748_add_social_feed_settings from './20260818_111748_add_social_feed_settings'; import * as migration_20260818_192948_add_instagram_social_feed_fields from './20260818_192948_add_instagram_social_feed_fields'; import * as migration_20260819_192605_add_campaign_newsletter_capture from './20260819_192605_add_campaign_newsletter_capture'; +import * as migration_20260819_213947_add_site_settings_facebook_pixel_id from './20260819_213947_add_site_settings_facebook_pixel_id'; import * as migration_20260819_214755_add_campaign_user_advisor_permission_profile from './20260819_214755_add_campaign_user_advisor_permission_profile'; import * as migration_20260819_233503_add_campaign_demand_responsibles from './20260819_233503_add_campaign_demand_responsibles'; import * as migration_20260820_003426_add_instagram_sync_status from './20260820_003426_add_instagram_sync_status'; @@ -353,9 +354,14 @@ export const migrations = [ name: '20260818_192948_add_instagram_social_feed_fields', }, { -up: migration_20260819_192605_add_campaign_newsletter_capture.up, + up: migration_20260819_192605_add_campaign_newsletter_capture.up, down: migration_20260819_192605_add_campaign_newsletter_capture.down, - name: '20260819_192605_add_campaign_newsletter_capture' + name: '20260819_192605_add_campaign_newsletter_capture', + }, + { + up: migration_20260819_213947_add_site_settings_facebook_pixel_id.up, + down: migration_20260819_213947_add_site_settings_facebook_pixel_id.down, + name: '20260819_213947_add_site_settings_facebook_pixel_id', }, { up: migration_20260819_214755_add_campaign_user_advisor_permission_profile.up, @@ -365,11 +371,11 @@ up: migration_20260819_192605_add_campaign_newsletter_capture.up, { up: migration_20260819_233503_add_campaign_demand_responsibles.up, down: migration_20260819_233503_add_campaign_demand_responsibles.down, - name: '20260819_233503_add_campaign_demand_responsibles' + name: '20260819_233503_add_campaign_demand_responsibles', }, { up: migration_20260820_003426_add_instagram_sync_status.up, down: migration_20260820_003426_add_instagram_sync_status.down, - name: '20260820_003426_add_instagram_sync_status' + name: '20260820_003426_add_instagram_sync_status', }, ]; diff --git a/src/payload-types.ts b/src/payload-types.ts index 52f5304d..677caeaf 100644 --- a/src/payload-types.ts +++ b/src/payload-types.ts @@ -2293,6 +2293,12 @@ export interface SiteSetting { id?: string | null; }[] | null; + tracking?: { + /** + * Cole somente o ID numérico do Events Manager (ex.: 123456789012345), não o snippet HTML completo. + */ + facebookPixelId?: string | null; + }; _status?: ('draft' | 'published') | null; updatedAt?: string | null; createdAt?: string | null; @@ -2487,6 +2493,11 @@ export interface SiteSettingsSelect { enabled?: T; id?: T; }; + tracking?: + | T + | { + facebookPixelId?: T; + }; _status?: T; updatedAt?: T; createdAt?: T; diff --git a/src/utilities/campaignHomeTracking.ts b/src/utilities/campaignHomeTracking.ts new file mode 100644 index 00000000..6bbb72f1 --- /dev/null +++ b/src/utilities/campaignHomeTracking.ts @@ -0,0 +1,15 @@ +import 'server-only' + +import { normalizeFacebookPixelId } from '@/lib/facebookPixel' +import { getCachedGlobal } from '@/utilities/globalReads' + +/** + * S10 — the Meta pixel configured in `SiteSettings.tracking` for the public + * campaign page. Cached under `global_site-settings`, so an admin edit of the + * global already revalidates the home (the `afterChange` hook busts the tag). + * Fail-closed: no configured ID → null → nothing renders on the page. + */ +export const getCampaignHomeMetaPixelId = async (): Promise => { + const settings = await getCachedGlobal('site-settings')() + return normalizeFacebookPixelId(settings.tracking?.facebookPixelId) +} diff --git a/tests/e2e/campaignHomePixel.e2e.spec.ts b/tests/e2e/campaignHomePixel.e2e.spec.ts new file mode 100644 index 00000000..da768970 --- /dev/null +++ b/tests/e2e/campaignHomePixel.e2e.spec.ts @@ -0,0 +1,97 @@ +import type { APIRequestContext } from '@playwright/test' + +import { adminHeaders } from '../helpers/adminApi' +import { seedTestUser } from '../helpers/seedUser' +import { expect, test } from './fixtures/e2eTest' + +/** + * S10 — the Meta pixel on the public campaign page: configured through + * `SiteSettings.tracking.facebookPixelId` (admin REST), the home renders the + * base code (inline `next/script` + `fbq` init) and nothing at all without a + * configured ID (fail-closed). The external `fbevents.js` fetch is fulfilled + * locally by the shared e2e guard (fixtures/e2eTest.ts), so no spec ever + * depends on the Meta CDN; the base code itself is inline. The `Lead` wiring + * (successful S9 capture → exactly one queued `fbq` Lead) is pinned by the + * unit spec `campaignNewsletterLead.unit.spec.tsx` — a real submission here + * would share the `campanha-novidades` consent key with the parallel + * `campaignNewsletter` spec's purge/create lifecycle. Serial mode (precedent + * `campaignNearestMunicipality`): the tests share one worker — a parallel + * split would race two `seedTestUser` beforeAlls. + */ +test.describe.configure({ mode: 'serial' }) + +test.describe('Campaign home Meta pixel', () => { + const baseURL = process.env.PLAYWRIGHT_BASE_URL ?? 'http://localhost:3000' + const runSuffix = Date.now() + // Valid 15-digit numeric ID (same class the admin validation accepts). + const PIXEL_ID = '123456789012345' + + // `_status: 'published'` publishes through the global's draft pipeline, same + // pattern the frontend spec uses for versioned documents. + const setSitePixel = async ( + request: APIRequestContext, + headers: Record, + pixelId: string | null, + ) => { + // Insurance against the same-user concurrent-login session race with + // specs that do NOT route their login through the advisory-locked + // `adminHeaders` helper (e.g. the frontend spec's inline logins): a 403 + // means the session row was lost to another worker — re-login mints a + // fresh one. The locked helper already serializes the specs that use it. + for (let attempt = 0; attempt < 2; attempt += 1) { + const response = await request.post(`${baseURL}/api/globals/site-settings`, { + headers, + data: { tracking: { facebookPixelId: pixelId }, _status: 'published' }, + }) + if (response.ok()) return + if (response.status() === 403 && attempt === 0) { + headers = await adminHeaders(request, baseURL) + continue + } + throw new Error(`setSitePixel(${pixelId}) failed with ${response.status()}`) + } + } + + test.beforeAll(async ({ request }) => { + await seedTestUser() + // Self-healing lifecycle (S9 precedent): an aborted run could leave the + // pixel behind and poison the fail-closed assertion — purge first. + const headers = await adminHeaders(request, baseURL) + await setSitePixel(request, headers, null) + }) + + test.afterAll(async ({ request }) => { + const headers = await adminHeaders(request, baseURL).catch(() => undefined) + if (headers) { + await setSitePixel(request, headers, null) + } + }) + + test('renders nothing without a configured pixel ID', async ({ page }) => { + // Fresh load (unique query param misses every HTTP/router cache entry — + // the content-section trick); the app ignores unknown params. The + // fail-closed read comes from the global, which beforeAll just reset. + await page.goto(`/?e2e=${runSuffix}-none`) + await expect(page.locator('script[id^="meta-pixel-"]')).toHaveCount(0) + }) + + test('renders the base code when the site settings carry a valid ID', async ({ + page, + request, + }) => { + const headers = await adminHeaders(request, baseURL) + // The REST update busts `global_site-settings` via afterChange BEFORE the + // goto, so the fresh render carries the pixel (deterministic, no cache race). + await setSitePixel(request, headers, PIXEL_ID) + await page.goto(`/?e2e=${runSuffix}-set`) + + const pixelScript = page.locator(`script#meta-pixel-${PIXEL_ID}`) + await expect(pixelScript).toBeAttached() + + // The base code defines `window.fbq` synchronously (queue-based no-op + // until fbevents.js processes it) — the seam `trackMetaLead` uses. + await expect + .poll(() => page.evaluate(() => typeof (window as { fbq?: unknown }).fbq === 'function')) + .toBe(true) + }) +}) diff --git a/tests/e2e/campaignNewsletter.e2e.spec.ts b/tests/e2e/campaignNewsletter.e2e.spec.ts index c34ac08e..e3079f08 100644 --- a/tests/e2e/campaignNewsletter.e2e.spec.ts +++ b/tests/e2e/campaignNewsletter.e2e.spec.ts @@ -1,7 +1,8 @@ import type { APIRequestContext } from '@playwright/test' import { CAMPAIGN_NEWSLETTER_CONSENT_KEY } from '@/lib/campaignConsentKeys' -import { seedTestUser, testUser } from '../helpers/seedUser' +import { adminHeaders } from '../helpers/adminApi' +import { seedTestUser } from '../helpers/seedUser' import { expect, test } from './fixtures/e2eTest' /** @@ -22,15 +23,6 @@ test.describe('Campaign home novidades capture', () => { let consentID: number | undefined - const adminHeaders = async (request: APIRequestContext): Promise> => { - const login = await request.post(`${baseURL}/api/users/login`, { - data: { email: testUser.email, password: testUser.password }, - }) - expect(login.ok()).toBeTruthy() - const { token } = await login.json() - return { cookie: `payload-token=${token}` } - } - const createNewsletterConsent = async ( request: APIRequestContext, headers: Record, @@ -130,12 +122,12 @@ test.describe('Campaign home novidades capture', () => { test.beforeAll(async ({ request }) => { await seedTestUser() - const headers = await adminHeaders(request) + const headers = await adminHeaders(request, baseURL) await createNewsletterConsent(request, headers) }) test.afterAll(async ({ request }) => { - const headers = await adminHeaders(request).catch(() => undefined) + const headers = await adminHeaders(request, baseURL).catch(() => undefined) if (headers) { await cleanup(request, headers) } @@ -173,7 +165,7 @@ test.describe('Campaign home novidades capture', () => { await expect(flagsLink).toHaveAttribute('href', '#bandeiras') // The record is visible to the admin with the level choice. - const headers = await adminHeaders(request) + const headers = await adminHeaders(request, baseURL) const contacts = await request.get( `${baseURL}/api/contact?where[phones.value][equals]=${successPhone}&limit=1&depth=0`, { headers }, diff --git a/tests/e2e/fixtures/e2eTest.ts b/tests/e2e/fixtures/e2eTest.ts index 27e57f07..a600f86c 100644 --- a/tests/e2e/fixtures/e2eTest.ts +++ b/tests/e2e/fixtures/e2eTest.ts @@ -107,6 +107,14 @@ export const test = base.extend({ // player loading — same spirit as the S2/S3 feed stubs). await context.route('https://www.youtube-nocookie.com/**', (route) => route.abort()) + // S10 — the campaign-home pixel spec publishes a Meta Pixel ID into the + // shared test DB, so concurrent specs may render the home with the base + // code. Fulfill the external script locally (never a real request to + // Meta): a blocked network would trip the console-error guard below. + await context.route('https://connect.facebook.net/**', (route) => + route.fulfill({ body: '', contentType: 'application/javascript' }), + ) + await use() page.off('console', onConsole) diff --git a/tests/helpers/adminApi.ts b/tests/helpers/adminApi.ts new file mode 100644 index 00000000..311c21c1 --- /dev/null +++ b/tests/helpers/adminApi.ts @@ -0,0 +1,41 @@ +import type { APIRequestContext } from '@playwright/test' +import { Client } from 'pg' + +import { testUser } from './seedUser' + +// Arbitrary fixed key — every spec logs the same test user in through this +// helper, so one serialization point covers the whole suite. +const ADMIN_LOGIN_LOCK_KEY = 727_001 + +/** + * Logs the shared test user in and returns the `payload-token` cookie. + * + * Serialized by a Postgres advisory lock: Payload keeps auth sessions as a + * read-modify-write array on the user document (the campaign WebAuthn note + * documents the exact class), so two parallel workers logging the same + * `dev@payloadcms.com` in concurrently can lose one session row — the loser's + * token then resolves to nobody and every admin request answers 403. The + * lock makes the read-modify-write exclusive; a waiting worker logs in after + * the winner, keeping every session. + */ +export const adminHeaders = async ( + request: APIRequestContext, + baseURL: string, +): Promise> => { + const client = new Client({ connectionString: process.env.DATABASE_URL }) + await client.connect() + try { + await client.query('SELECT pg_advisory_lock($1)', [ADMIN_LOGIN_LOCK_KEY]) + const login = await request.post(`${baseURL}/api/users/login`, { + data: { email: testUser.email, password: testUser.password }, + }) + if (!login.ok()) { + throw new Error(`admin login failed with ${login.status()}`) + } + const { token } = await login.json() + return { cookie: `payload-token=${token}` } + } finally { + await client.query('SELECT pg_advisory_unlock($1)', [ADMIN_LOGIN_LOCK_KEY]).catch(() => {}) + await client.end() + } +} diff --git a/tests/helpers/seedUser.ts b/tests/helpers/seedUser.ts index 4a468255..e251aedd 100644 --- a/tests/helpers/seedUser.ts +++ b/tests/helpers/seedUser.ts @@ -10,29 +10,30 @@ export const testUser = { /** * Seeds a test user for e2e admin tests. + * + * Create-if-missing on purpose: specs run fully parallel across workers and + * share this one user, so a delete-then-create left a window where (a) a + * concurrent `create` hit the unique email, and (b) the user — and every + * already-minted admin token — briefly vanished. The credentials are constant + * (testUser), so a row created by any worker is identical to the one another + * would create: the unique-conflict loser simply proceeds, and no password + * reset ever invalidates a live session. */ export async function seedTestUser(): Promise { assertTestDatabase(process.env.DATABASE_URL) const payload = await getPayload({ config }) - // Delete existing test user if any - await payload.delete({ - collection: 'users', - where: { - email: { - equals: testUser.email, + try { + await payload.create({ + collection: 'users', + data: { + ...testUser, + roles: ['admin'], }, - }, - }) - - // Create fresh test user - await payload.create({ - collection: 'users', - data: { - ...testUser, - roles: ['admin'], - }, - }) + }) + } catch { + // A parallel worker already seeded the shared user; nothing to reset. + } } /** diff --git a/tests/unit/campaignHome.unit.spec.tsx b/tests/unit/campaignHome.unit.spec.tsx index d0d4a5b8..c8f8e7e2 100644 --- a/tests/unit/campaignHome.unit.spec.tsx +++ b/tests/unit/campaignHome.unit.spec.tsx @@ -29,6 +29,12 @@ vi.mock('@/components/CampaignNewsletterForm', () => ({ CampaignNewsletterCapture: () => null, })) +// S10 — the section reads the site-settings global (server-only, Payload DB); +// the unit env has no database, and the pixel behavior is e2e-covered. +vi.mock('@/utilities/campaignHomeTracking', () => ({ + getCampaignHomeMetaPixelId: async () => null, +})) + afterEach(cleanup) describe('Campaign home', () => { diff --git a/tests/unit/campaignNewsletterLead.unit.spec.tsx b/tests/unit/campaignNewsletterLead.unit.spec.tsx new file mode 100644 index 00000000..318180de --- /dev/null +++ b/tests/unit/campaignNewsletterLead.unit.spec.tsx @@ -0,0 +1,98 @@ +import { act, cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react' +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest' + +import { CampaignNewsletterCapture } from '@/components/CampaignNewsletterForm' + +/** + * S10 — the `Lead` wiring of the S9 capture form: a successful submission + * with a configured pixel fires exactly one `trackMetaLead` (content_name + * `novidades-da-campanha`, UUID eventID); without a pixel, or when the + * submission fails, nothing fires. The e2e covers the base-code render; the + * real submission stays out of e2e on purpose (the `campanha-novidades` + * consent key is shared with the parallel `campaignNewsletter` spec). + */ +const submitCampaignNewsletterMock = vi.fn() +const trackMetaLeadMock = vi.fn() + +vi.mock('@/app/(frontend)/actions/submitCampaignNewsletter', () => ({ + submitCampaignNewsletter: (...args: unknown[]) => submitCampaignNewsletterMock(...args), +})) + +vi.mock('@/lib/facebookPixel', () => ({ + trackMetaLead: (...args: unknown[]) => trackMetaLeadMock(...args), +})) + +const PIXEL_ID = '123456789012345' + +beforeAll(() => { + // Radix comboboxes (StateSelect/CitySelect) need ResizeObserver in jsdom. + vi.stubGlobal( + 'ResizeObserver', + class { + observe() {} + unobserve() {} + disconnect() {} + }, + ) +}) + +const fillAndSubmit = async () => { + // FormInput propagates to react-hook-form through the native `input` event. + fireEvent.input(screen.getByPlaceholderText('Nome completo*'), { + target: { value: 'Maria Teste' }, + }) + fireEvent.input(screen.getByPlaceholderText('WhatsApp (com DDD)*'), { + target: { value: '71987654321' }, + }) + await act(async () => { + fireEvent.click(screen.getByRole('button', { name: 'QUERO RECEBER NOVIDADES' })) + }) +} + +describe('Campaign newsletter Lead wiring', () => { + beforeEach(() => { + submitCampaignNewsletterMock.mockReset() + trackMetaLeadMock.mockReset() + submitCampaignNewsletterMock.mockResolvedValue(undefined) + }) + + afterEach(() => { + cleanup() + }) + + it('fires exactly one Lead on a successful capture with a configured pixel', async () => { + render() + await fillAndSubmit() + + await waitFor(() => { + expect(screen.getByRole('heading', { name: 'Inscrição confirmada' })).toBeTruthy() + }) + expect(trackMetaLeadMock).toHaveBeenCalledTimes(1) + expect(trackMetaLeadMock).toHaveBeenCalledWith( + PIXEL_ID, + 'novidades-da-campanha', + expect.any(String), + ) + }) + + it('never fires a Lead without a configured pixel', async () => { + render() + await fillAndSubmit() + + await waitFor(() => { + expect(screen.getByRole('heading', { name: 'Inscrição confirmada' })).toBeTruthy() + }) + expect(trackMetaLeadMock).not.toHaveBeenCalled() + }) + + it('never fires a Lead when the capture fails', async () => { + submitCampaignNewsletterMock.mockRejectedValue(new Error('boom')) + render() + await fillAndSubmit() + + await waitFor(() => { + expect(screen.getByText('Falha ao enviar. Tente novamente.')).toBeTruthy() + }) + expect(trackMetaLeadMock).not.toHaveBeenCalled() + }) +}) diff --git a/tests/unit/codebaseConventions.unit.spec.ts b/tests/unit/codebaseConventions.unit.spec.ts index c0d25081..195c02e5 100644 --- a/tests/unit/codebaseConventions.unit.spec.ts +++ b/tests/unit/codebaseConventions.unit.spec.ts @@ -433,6 +433,9 @@ describe('src/utilities top-level is pinned', () => { 'campaignFormFields.ts', 'campaignGeolocation.ts', 'campaignGoals.ts', + // S10 — campaign-home Meta pixel read (site-settings global, fail-closed); + // shared by the home layout (PageView) and the page (Lead prop). + 'campaignHomeTracking.ts', 'campaignInvite.ts', 'campaignInviteCreation.ts', 'campaignInviteOrigin.ts', diff --git a/tests/unit/facebookPixel.unit.spec.ts b/tests/unit/facebookPixel.unit.spec.ts index eafa5698..ab3ee971 100644 --- a/tests/unit/facebookPixel.unit.spec.ts +++ b/tests/unit/facebookPixel.unit.spec.ts @@ -6,6 +6,7 @@ import { isValidFacebookPixelId, normalizeFacebookPixelId, trackMetaLead, + validateFacebookPixelId, } from '@/lib/facebookPixel' describe('facebookPixel', () => { @@ -35,6 +36,24 @@ describe('facebookPixel', () => { }) }) + describe('validateFacebookPixelId', () => { + it('accepts empty values (optional field)', () => { + expect(validateFacebookPixelId('')).toBe(true) + expect(validateFacebookPixelId(null)).toBe(true) + expect(validateFacebookPixelId(undefined)).toBe(true) + }) + + it('accepts numeric IDs between 5 and 20 digits', () => { + expect(validateFacebookPixelId('123456789012345')).toBe(true) + }) + + it('rejects non-numeric and out-of-range values with the admin message', () => { + const message = 'Informe somente o ID numérico do Pixel (5 a 20 dígitos), sem HTML ou script.' + expect(validateFacebookPixelId('1234')).toBe(message) + expect(validateFacebookPixelId('')).toBe(message) + }) + }) + describe('trackMetaLead', () => { it('no-ops when fbq is unavailable', () => { expect(() => trackMetaLead('123456789012345', 'Petição teste', 'event-1')).not.toThrow()

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 literal 0 HcmV?d00001 diff --git a/docs/plans/ui-respeita-perfil-permissao-ui-draft.html b/docs/plans/ui-respeita-perfil-permissao-ui-draft.html new file mode 100644 index 00000000..e89ccaeb --- /dev/null +++ b/docs/plans/ui-respeita-perfil-permissao-ui-draft.html @@ -0,0 +1,230 @@ + + + + + + + UI draft — Interface respeita o perfil de permissão + + +