teqo-backup/src/migrations
Francisco Solla cb61cf1152 feat(C211): Central de Conteúdos interna — envio em lote, link, catalogação e publicação
Envio em lote (1 request raw-body por arquivo, fan-out ≤2, até 50 arquivos) e
adicionar por link (Instagram/YouTube; extração só pela Graph API da conta
própria, senão peça-link) em /campanha/comunicacao/conteudos. Cada peça tem
estado próprio (Processando/Pronto/Falhou + Reprocessar), transcrição/texto e
catalogação automática revisável; publicar/despublicar preserva arquivo, slug
e publishedAt.

- collections contentPiece + contentMedia (upload privado no S3) e migration
  20260923_032714_add_content_piece (slug único gerado no 1º publish,
  sourceUrl única, searchText com índice trigram)
- pipeline reusa C199 (job after() + reaper + retry condicional, transcrição
  DeepInfra, ffmpeg/chunk), o classificador de facetas do acervo e o
  institutionCatalog; curatedFields impede o job de sobrescrever curadoria
- gate único canReadCommunicationCatalog (advisor/leader negados); delete
  só pelo admin; sem Consent novo
- UI portada do design aprovado (lista desktop + cards mobile, diálogo de
  lote com progresso por arquivo, diálogo de link, ficha editável, kill
  switch); nav/chrome/column-picker/manifest atualizados
- instagramFeed expõe mediaUrl; revalidateTag ganha wrapper seguro fora de
  request (fixtures/scripts)
- testes: 2 unit specs, 1 int spec (16 casos) e 7 e2e na vertical
- follow-up de engenharia: #1267 (docs/plans/escala-dry-pos-c211.md)

Closes #1254
2026-09-23 02:25:15 -03:00
..
data Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
20260715_163458_initial.json Isolate local/dev and tests from the production database 2026-07-15 13:52:30 -03:00
20260715_163458_initial.ts Isolate local/dev and tests from the production database 2026-07-15 13:52:30 -03:00
20260715_163500_consent_text_to_jsonb.ts Isolate local/dev and tests from the production database 2026-07-15 13:52:30 -03:00
20260715_181058_add_post_and_tag.json Add Post and Tag collections for news and publications 2026-07-15 19:12:11 -03:00
20260715_181058_add_post_and_tag.ts Add Post and Tag collections for news and publications 2026-07-15 19:12:11 -03:00
20260715_215834_rename_tag_visible_to_hidden.json Add Post and Tag collections for news and publications 2026-07-15 19:12:11 -03:00
20260715_215834_rename_tag_visible_to_hidden.ts Add Post and Tag collections for news and publications 2026-07-15 19:12:11 -03:00
20260716_010420_add_campaign_user.json Add /campanha internal area with isolated Payload auth 2026-07-15 22:33:26 -03:00
20260716_010420_add_campaign_user.ts Add /campanha internal area with isolated Payload auth 2026-07-15 22:33:26 -03:00
20260718_010733_consolidate_campaign_schema.json Ship /campanha nuclei MVP with RBAC, invites, and vote estimates. 2026-07-18 15:01:56 -03:00
20260718_010733_consolidate_campaign_schema.ts Ship /campanha nuclei MVP with RBAC, invites, and vote estimates. 2026-07-18 15:01:56 -03:00
20260718_190559_territorio_multi_municipio_bairro.json Support multi-municipality and multi-neighborhood nucleus territory. 2026-07-18 18:31:51 -03:00
20260718_190559_territorio_multi_municipio_bairro.ts Support multi-municipality and multi-neighborhood nucleus territory. 2026-07-18 18:31:51 -03:00
20260718_195854_add_election_results.json Add TSE 2022 election results model and local seed import. 2026-07-18 18:25:19 -03:00
20260718_195854_add_election_results.ts Add TSE 2022 election results model and local seed import. 2026-07-18 18:25:19 -03:00
20260718_222656_add_supporter.json Add C2 nominal supporter registry for /campanha. 2026-07-18 20:32:54 -03:00
20260718_222656_add_supporter.ts Add C2 nominal supporter registry for /campanha. 2026-07-18 20:32:54 -03:00
20260718_222832_add_action_plan.json Add action-plan agenda vertical for /campanha/planos. 2026-07-18 20:56:20 -03:00
20260718_222832_add_action_plan.ts Add action-plan agenda vertical for /campanha/planos. 2026-07-18 20:56:20 -03:00
20260719_011015_add_supporter_import_batch.json Add C6 scale/DRY for supporters: bulk import, KPI aggregate, shared shells. 2026-07-18 22:17:31 -03:00
20260719_011015_add_supporter_import_batch.ts Add C6 scale/DRY for supporters: bulk import, KPI aggregate, shared shells. 2026-07-18 22:17:31 -03:00
20260719_014906_action_plan_list_perf.json Deliver C7 partial scale/DRY for action plans and register remaining simplify debts. 2026-07-19 00:07:31 -03:00
20260719_014906_action_plan_list_perf.ts Deliver C7 partial scale/DRY for action plans and register remaining simplify debts. 2026-07-19 00:07:31 -03:00
20260719_020000_add_contact_trgm_index.ts Deliver C8 scale/DRY for supporters and register C9 follow-ups. 2026-07-19 00:31:06 -03:00
20260719_054522_add_nucleus_goals_strategy.json Add nucleus vote goals foundation for E1/E3. 2026-07-19 04:36:58 -03:00
20260719_054522_add_nucleus_goals_strategy.ts Add nucleus vote goals foundation for E1/E3. 2026-07-19 04:36:58 -03:00
20260719_054706_add_privacy_policy_global.json Deliver Onda 0 MVP: provisional Consent, privacy policy, and /privacidade. 2026-07-19 03:38:21 -03:00
20260719_054706_add_privacy_policy_global.ts Deliver Onda 0 MVP: provisional Consent, privacy policy, and /privacidade. 2026-07-19 03:38:21 -03:00
20260719_054707_seed_onda0_consent_and_privacy.ts Deliver Onda 0 MVP: provisional Consent, privacy policy, and /privacidade. 2026-07-19 03:38:21 -03:00
20260719_061302_add_campaign_user_avatar.json Add campaign password reset, profile photo, and RS+ follow-up plan. 2026-07-19 05:26:56 -03:00
20260719_061302_add_campaign_user_avatar.ts Add campaign password reset, profile photo, and RS+ follow-up plan. 2026-07-19 05:26:56 -03:00
20260721_020109_remodel_plazas.json Remodel /campanha around predefined Praças replacing electoral nuclei. 2026-07-21 02:28:00 -03:00
20260721_020109_remodel_plazas.ts Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
20260721_133444_add_plaza_expected_votes.json Deliver A9 plaza expectedVotes and register A9+ follow-up. 2026-07-21 11:02:11 -03:00
20260721_133444_add_plaza_expected_votes.ts Deliver A9 plaza expectedVotes and register A9+ follow-up. 2026-07-21 11:02:11 -03:00
20260721_133531_add_petition_facebook_pixel_id.json Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
20260721_133531_add_petition_facebook_pixel_id.ts Add Meta Pixel tracking to public petition pages. 2026-07-21 10:51:47 -03:00
20260723_025513_add_import_export_plugin.json Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
20260723_025513_add_import_export_plugin.ts Add admin CSV export for signatures and contacts. 2026-07-23 00:53:04 -03:00
20260723_124200_add_vote_estimate_scenarios.ts Ship A10 vote estimate scenarios (pessimistic/central/optimistic) for Praças. 2026-07-23 19:12:22 -03:00
20260723_200000_remodel_municipalities.ts Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
20260723_201000_add_state_deputy.ts Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
20260723_202000_reconcile_municipality_remodel.ts Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
20260724_133600_drop_municipality_vote_goals.ts Remove duplicated voteGoals; seed projection sheet into expectedVotes. 2026-07-24 14:04:44 -03:00
20260724_175500_contact_phone_optional.ts Import projection-sheet strategy columns into municipalities (E4R fase 2) 2026-07-24 15:58:06 -03:00
20260724_180000_add_campaign_foundation_records.json Implement C12 campaign foundation records 2026-07-24 19:27:15 -03:00
20260724_180000_add_campaign_foundation_records.ts Implement C12 campaign foundation records 2026-07-24 19:27:15 -03:00
20260724_180000_add_campaign_goals_global.ts E8: Conta da cadeira (metas derivadas, potencial por município, cobertura) 2026-07-24 22:54:27 -03:00
20260725_022155_add_municipality_budget_notes.json E16: Dossiê do município (pré-agenda) with print view and budgetNotes. 2026-07-25 01:28:03 -03:00
20260725_022155_add_municipality_budget_notes.ts E16: Dossiê do município (pré-agenda) with print view and budgetNotes. 2026-07-25 01:28:03 -03:00
20260725_170000_whatsapp_subscription_consent_key.ts Pass 2: formatacao da revisao (prettier em tabelas md + ordenacao de imports; SQL da migration inalterado) e remocao de duplicata stray do CampaignListEmptyState no path antigo 2026-07-25 16:53:51 -03:00
20260725_213000_rename_action_plan_to_activity.json C13: renomeia "Plano de Acao" para "Atividade" em toda a vertical /campanha 2026-07-25 20:50:38 -03:00
20260725_213000_rename_action_plan_to_activity.ts C13 pos-simplify: fecha os residuos da varredura e estreita os guards 2026-07-25 21:29:32 -03:00
20260727_032523_add_users_roles.json Add users.roles so Payload /admin can separate editors from admins. 2026-07-27 01:54:29 -03:00
20260727_032523_add_users_roles.ts Add users.roles so Payload /admin can separate editors from admins. 2026-07-27 01:54:29 -03:00
20260727_161752_add_municipality_engagement_level.json E14: engagement levels N0-N4 and the first allocationDecision writer. 2026-07-27 21:19:33 -03:00
20260727_161752_add_municipality_engagement_level.ts E14: engagement levels N0-N4 and the first allocationDecision writer. 2026-07-27 21:19:33 -03:00
20260728_041547_add_allocation_decision_adiada_outcome.json E11: suggestion engine v1 — the human-in-the-loop decision queue. 2026-07-28 14:03:29 -03:00
20260728_041547_add_allocation_decision_adiada_outcome.ts E11: suggestion engine v1 — the human-in-the-loop decision queue. 2026-07-28 14:03:29 -03:00
20260728_041958_add_campaign_webauthn_credentials.json Deliver B40: biometric login for /campanha. 2026-07-28 10:59:23 -03:00
20260728_041958_add_campaign_webauthn_credentials.ts Deliver B40: biometric login for /campanha. 2026-07-28 10:59:23 -03:00
20260730_010601_simplify_municipality_signal_fields.json B62: simplify the signal model to type + text (drop fonte/triangulado). 2026-07-29 23:24:00 -03:00
20260730_010601_simplify_municipality_signal_fields.ts B62: simplify the signal model to type + text (drop fonte/triangulado). 2026-07-29 23:24:00 -03:00
20260730_043306_simplify_leadership_fields.json B69: simplify the leadership model to exclusive + drop sector/consentNote. 2026-07-30 02:32:56 -03:00
20260730_043306_simplify_leadership_fields.ts B69: simplify the leadership model to exclusive + drop sector/consentNote. 2026-07-30 02:32:56 -03:00
20260731_014319_add_campaign_notifications.json D2 — Push + sino in-app para /campanha 2026-07-31 01:51:41 +00:00
20260731_014319_add_campaign_notifications.ts D2 — Push + sino in-app para /campanha 2026-07-31 01:51:41 +00:00
20260801_062558_add_campaign_vote_summary_snapshot.json B57 — delta 7 dias do total estimado no Início 2026-08-01 06:33:39 +00:00
20260801_062558_add_campaign_vote_summary_snapshot.ts B57 — delta 7 dias do total estimado no Início 2026-08-01 06:33:39 +00:00
20260802_230000_strip_engagement_reversal_signals.ts B134 — motivo opcional (tendência + nível); remove reversalSignals 2026-08-02 23:02:53 +00:00
20260804_061017_add_state_deputy_advisors.json B156 — assessores por dobradinha (campo, coluna e seção; RelationOptionCell extraído) 2026-08-04 04:57:15 -03:00
20260804_061017_add_state_deputy_advisors.ts B156 — assessores por dobradinha (campo, coluna e seção; RelationOptionCell extraído) 2026-08-04 04:57:15 -03:00
20260806_082110_add_state_deputy_contact.json feat(campanha): B163 — editar contatos das dobradinhas 2026-08-06 16:52:55 -03:00
20260806_082110_add_state_deputy_contact.ts fix(campanha): preserve StateDeputy migration identity 2026-08-06 18:38:47 -03:00
20260806_120000_c14_remodel_activity_agenda.ts feat(campaign): C14 remodel activity for agenda paradigm (#389) 2026-08-06 05:20:05 -03:00
20260807_030000_unify_municipality_update.json feat(campaign): C87 — atualização unificada (texto + polaridade + urgente) 2026-08-07 05:04:41 -03:00
20260807_030000_unify_municipality_update.ts feat(campaign): C87 — atualização unificada (texto + polaridade + urgente) 2026-08-07 05:04:41 -03:00
20260808_134911_add_calendar_feed.json feat(C16): add calendar feed sync by filter with Google Calendar import link (#419) 2026-08-08 14:47:17 +00:00
20260808_134911_add_calendar_feed.ts feat(C16): add calendar feed sync by filter with Google Calendar import link (#419) 2026-08-08 14:47:17 +00:00
20260808_184113_remodel_activity_responsible.json feat(C90): remodela responsáveis da Atividade em campo único polimórfico 2026-08-08 17:10:48 -03:00
20260808_184113_remodel_activity_responsible.ts feat(C90): remodela responsáveis da Atividade em campo único polimórfico 2026-08-08 17:10:48 -03:00
20260809_204728_add_campaign_user_contact_and_leadership_advisors.json feat(C99): toda conta campaignUser aponta para uma ficha Contact; lideranças ganham assessores responsáveis 2026-08-09 19:12:35 -03:00
20260809_204728_add_campaign_user_contact_and_leadership_advisors.ts feat(C99): toda conta campaignUser aponta para uma ficha Contact; lideranças ganham assessores responsáveis 2026-08-09 19:12:35 -03:00
20260810_010844_add_activity_all_day.json feat(C104): compromisso 'Todo o dia' na criação rápida da agenda (só datas, multi-dia) 2026-08-10 01:13:12 -03:00
20260810_010844_add_activity_all_day.ts feat(C104): compromisso 'Todo o dia' na criação rápida da agenda (só datas, multi-dia) 2026-08-10 01:13:12 -03:00
20260811_111828_add_contact_phones_array.json feat(C112): múltiplos telefones por pessoa — Contact.phones array (ordem = prioridade) 2026-08-11 10:47:02 -03:00
20260811_111828_add_contact_phones_array.ts feat(C112): múltiplos telefones por pessoa — Contact.phones array (ordem = prioridade) 2026-08-11 10:47:02 -03:00
20260811_133332_add_google_calendar_sync.ts feat(C114): agenda da campanha espelhada no Google Calendar com notificação (push Teqo → Google) 2026-08-11 13:53:51 -03:00
20260811_155116_add_lembranca_support_status.json chore(C119): snapshot da migration contra main com google_calendar (C114) — evita drift no próximo migrate:create 2026-08-11 14:54:33 -03:00
20260811_155116_add_lembranca_support_status.ts chore(C119): regenera migration sobre main rebaseada (C112 phones) e ajusta teste int para schema phones 2026-08-11 14:52:49 -03:00
20260811_183016_drop_activity_task_due.json feat(C124): tarefa de atividade só com texto, responsável e concluída (sem prazo) 2026-08-11 16:05:07 -03:00
20260811_183016_drop_activity_task_due.ts feat(C124): tarefa de atividade só com texto, responsável e concluída (sem prazo) 2026-08-11 16:05:07 -03:00
20260811_205157_add_google_calendar_push_channel.ts feat(C115): edição pelo Google Calendar volta para o Teqo (motor bidirecional + webhook push) 2026-08-11 22:38:53 -03:00
20260811_213648_add_activity_last_mirrored_change_at.ts fix(C115): revisão /simplify — relógio com baseline de espelho, reopen sem re-cancelamento, hardening do webhook 2026-08-11 22:42:05 -03:00
20260811_234822_add_state_deputy_ballot_name.json feat(C129): nome de legenda da dobradinha — campo ballotName + display discreto sob o nome (Closes #696) 2026-08-12 12:52:35 -03:00
20260811_234822_add_state_deputy_ballot_name.ts feat(C129): nome de legenda da dobradinha — campo ballotName + display discreto sob o nome (Closes #696) 2026-08-12 12:52:35 -03:00
20260818_111748_add_social_feed_settings.json feat(S2): seção de conteúdos da home de campanha inclui os vídeos do YouTube 2026-08-18 15:23:50 -03:00
20260818_111748_add_social_feed_settings.ts feat(S2): seção de conteúdos da home de campanha inclui os vídeos do YouTube 2026-08-18 15:23:50 -03:00
20260818_192948_add_instagram_social_feed_fields.json feat(S3): seção de conteúdos da home de campanha inclui os posts do Instagram 2026-08-18 20:29:50 -03:00
20260818_192948_add_instagram_social_feed_fields.ts feat(S3): seção de conteúdos da home de campanha inclui os posts do Instagram 2026-08-18 20:29:50 -03:00
20260819_192605_add_campaign_newsletter_capture.json feat(S9): captura de novidades da campanha na home pública (form + CTA do hero) 2026-08-20 02:19:58 +00:00
20260819_192605_add_campaign_newsletter_capture.ts feat(S9): captura de novidades da campanha na home pública (form + CTA do hero) 2026-08-20 02:19:58 +00:00
20260819_213947_add_site_settings_facebook_pixel_id.json merge(OPS75): convergência Forgejo→GitHub — GitHub como fonte única 2026-08-21 01:41:18 -03:00
20260819_213947_add_site_settings_facebook_pixel_id.ts merge(OPS75): convergência Forgejo→GitHub — GitHub como fonte única 2026-08-21 01:41:18 -03:00
20260819_214755_add_campaign_user_advisor_permission_profile.json feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
20260819_214755_add_campaign_user_advisor_permission_profile.ts feat(C141): perfis de permissão por assessor — Visão × Edição configuráveis, enforcement fail-closed (Closes #105) 2026-08-20 14:25:01 -03:00
20260819_233503_add_campaign_demand_responsibles.json feat(C143): demandas visíveis apenas para responsáveis explícitos + candidato/coordenador 2026-08-19 23:55:07 -03:00
20260819_233503_add_campaign_demand_responsibles.ts feat(C143): demandas visíveis apenas para responsáveis explícitos + candidato/coordenador 2026-08-19 23:55:07 -03:00
20260820_003426_add_instagram_sync_status.json feat(S11): feed do Instagram configurado não aparece na home — painel de status da sincronização no admin 2026-08-20 00:54:58 -03:00
20260820_003426_add_instagram_sync_status.ts feat(S11): feed do Instagram configurado não aparece na home — painel de status da sincronização no admin 2026-08-20 00:54:58 -03:00
20260823_161905_add_municipality_update_deliberation.json feat(campaign): C88 deliberação na atualização — responsável, fio e resolvido (Closes #397) 2026-08-23 18:58:26 -03:00
20260823_161905_add_municipality_update_deliberation.ts feat(campaign): C88 deliberação na atualização — responsável, fio e resolvido (Closes #397) 2026-08-23 18:58:26 -03:00
20260824_000000_reconcile_allocation_decision_rationale_nullable.ts fix(E16): reconcile allocation_decision.rationale NOT NULL drift 2026-08-24 17:24:13 -03:00
20260824_010000_make_supporter_import_batch_actor_nullable.ts fix(campaign): D13 — align supporter_import_batch.actor_id schema drift (Closes #643) 2026-08-24 22:39:03 -03:00
20260912_052226_add_google_calendar_oauth_connection.json feat(campaign): C149 — botão Conectar com o Google (OAuth) substitui a configuração manual da service account (Closes #934) 2026-09-12 19:49:24 -03:00
20260912_052226_add_google_calendar_oauth_connection.ts feat(campaign): C149 — botão Conectar com o Google (OAuth) substitui a configuração manual da service account (Closes #934) 2026-09-12 19:49:24 -03:00
20260912_224719_add_activity_public_event.json feat(C151): marca atividade como evento público 2026-09-12 20:28:59 -03:00
20260912_224719_add_activity_public_event.ts feat(C151): marca atividade como evento público 2026-09-12 20:28:59 -03:00
20260913_001112_add_speech_catalog.json feat(C153): catálogo de falas do Solla — schema, access, import idempotente e busca 2026-09-13 02:08:55 -03:00
20260913_001112_add_speech_catalog.ts feat(C153): catálogo de falas do Solla — schema, access, import idempotente e busca 2026-09-13 02:08:55 -03:00
20260913_001200_add_speech_segment_trgm_index.ts feat(C153): catálogo de falas do Solla — schema, access, import idempotente e busca 2026-09-13 02:08:55 -03:00
20260913_145820_add_speech_search_text.json feat(C154): vertical de comunicação — papel communicator e acervo pesquisável 2026-09-13 13:46:58 -03:00
20260913_145820_add_speech_search_text.ts feat(C154): vertical de comunicação — papel communicator e acervo pesquisável 2026-09-13 13:46:58 -03:00
20260913_150000_backfill_speech_search_text_trgm_index.ts feat(C154): vertical de comunicação — papel communicator e acervo pesquisável 2026-09-13 13:46:58 -03:00
20260915_122356_add_speech_cut.json feat(C167): corta o trecho [início,fim] do acervo e publica o arquivo numa página compartilhável 2026-09-15 10:24:36 -03:00
20260915_122356_add_speech_cut.ts feat(C167): corta o trecho [início,fim] do acervo e publica o arquivo numa página compartilhável 2026-09-15 10:24:36 -03:00
20260915_142058_activity_google_import_link.json feat(campaign): C165 — importa eventos do Google como atividades sem município (Closes #1010) 2026-09-15 11:54:21 -03:00
20260915_142058_activity_google_import_link.ts feat(campaign): C165 — importa eventos do Google como atividades sem município (Closes #1010) 2026-09-15 11:54:21 -03:00
20260918_201009_add_reel.json feat(C193): reel privado no CMS — modelo, upload privado e kill switch (Closes #1152) 2026-09-18 17:48:34 -03:00
20260918_201009_add_reel.ts feat(C193): reel privado no CMS — modelo, upload privado e kill switch (Closes #1152) 2026-09-18 17:48:34 -03:00
20260919_002605_add_reel_source_hash.json feat(C195): ingestão do pacote do reel na biblioteca privada (Closes #1154) 2026-09-18 21:47:48 -03:00
20260919_002605_add_reel_source_hash.ts feat(C195): ingestão do pacote do reel na biblioteca privada (Closes #1154) 2026-09-18 21:47:48 -03:00
20260919_003440_add_recording.json feat(C199): gravações enviadas no acervo de comunicação (Closes #1166) 2026-09-18 23:42:30 -03:00
20260919_003440_add_recording.ts feat(C199): gravações enviadas no acervo de comunicação (Closes #1166) 2026-09-18 23:42:30 -03:00
20260919_032729_add_recording_speakers.json feat(C200): separar falas por pessoa nas gravações enviadas (Closes #1167) 2026-09-19 12:32:46 -03:00
20260919_032729_add_recording_speakers.ts feat(C200): separar falas por pessoa nas gravações enviadas (Closes #1167) 2026-09-19 12:32:46 -03:00
20260919_155232_add_share_link.json feat(S19): links de compartilhamento com miniatura OG (Closes #1207) 2026-09-19 14:02:17 -03:00
20260919_155232_add_share_link.ts feat(S19): links de compartilhamento com miniatura OG (Closes #1207) 2026-09-19 14:02:17 -03:00
20260920_031320_add_jingle.json feat(S21): jingles de Jorge Solla no site público — ouvir e baixar (Closes #1222) 2026-09-20 01:48:20 -03:00
20260920_031320_add_jingle.ts feat(S21): jingles de Jorge Solla no site público — ouvir e baixar (Closes #1222) 2026-09-20 01:48:20 -03:00
20260923_032714_add_content_piece.json feat(C211): Central de Conteúdos interna — envio em lote, link, catalogação e publicação 2026-09-23 02:25:15 -03:00
20260923_032714_add_content_piece.ts feat(C211): Central de Conteúdos interna — envio em lote, link, catalogação e publicação 2026-09-23 02:25:15 -03:00
index.ts feat(C211): Central de Conteúdos interna — envio em lote, link, catalogação e publicação 2026-09-23 02:25:15 -03:00