diff --git a/.gitignore b/.gitignore index 639b17b0..a627c186 100644 --- a/.gitignore +++ b/.gitignore @@ -57,6 +57,7 @@ next-env.d.ts .env /media +/reelMedia # TSE open-data zip cache (pnpm db:seed:tse) /data/tse/ diff --git a/docs/changelog/2026-09-18-c193.md b/docs/changelog/2026-09-18-c193.md new file mode 100644 index 00000000..7d226fae --- /dev/null +++ b/docs/changelog/2026-09-18-c193.md @@ -0,0 +1 @@ +**C193 — Reel privado no CMS: modelo, arquivos privados e kill switch (2026-09-18):** a assessoria produz os Reels de tutorial fora do Teqo e eles não tinham onde existir. Entregou-se a base no `/campanha`: (1) **collection `reel`** (grupo `Comunicação`) com `title`, `feature` (lista fechada, começando `cards`), `status` `draft→published→unpublished`, e os artefatos como uploads 1:1 — `video` (MP4 sem áudio, primário, required), `videoWithAudio`, `narrationAudio`, `captions` (`.srt`), `cover` (required) — mais `transcript` em texto, `publishedAt` carimbado na transição para `published` e `createdBy` do ator; (2) **collection de upload privada `reelMedia`** separada de `media` (que é leitura pública por contrato, pinada no lockdown): `read/create/update/delete` só para `communicator`/`coordinator`/`candidate` + admin, registrada no plugin S3 (`reelMedia: true`) para não cair em disco efêmero em produção; (3) **rota autenticada de mídia** `GET /campanha/comunicacao/reels/[id]/media/[kind]` — sob `/campanha` de propósito, porque é o path do cookie `campaign-token` que `