--- name: Social Media - Fluxo Cronograma/Publicação description: Fluxo completo de planejamento → publicação com dois estágios de aprovação do cliente type: project --- ## Fluxo Cronograma de Posts (atualizado 2026-04-06) ### Etapa 1 - Planejamento (Cronograma) - Admin cria cronograma com: título, data, hora, tipo, planejamento/briefing, imagens de referência - **NÃO inclui**: texto da publicação, hashtags, arte final - Campo `planejamento` na tabela `social_posts` (coluna adicionada 2026-04-06) - Cronograma enviado ao cliente via WhatsApp com link `aprovacao.gotechbr.com.br/aprovacao-cronograma/{token}` - Cliente pode aprovar individualmente cada item ou tudo de uma vez - Token expira em 48h - Ao aprovar: `status` → `aceito`, `aprovacao_status` → `nao_requer` ### Etapa 2 - Publicação (Conteúdo Final) - Admin insere no post aceito: texto final, hashtags, arte/vídeo definitivo - Modal "Inserir conteúdo para publicação" (modo 2) mostra briefing como referência - Ao clicar "Enviar para aprovação do cliente": 1. Salva post (`aprovacao_status` → `pendente`, gera token 4h) 2. Envia WhatsApp com link `aprovacao.gotechbr.com.br/aprovacao/{token}` (via endpoint separado `/post/notificar/:id`) - Cliente vê preview estilo Instagram e aprova ou solicita alteração - Auto-aprovação em 4h via CronSocialMedia ### Lógica de decisão do modal admin (JS) - `temConteudo` = post tem texto de publicação preenchido - `rejeitado + temConteudo` → Modal recusada (editar e reenviar) - `pendente + temConteudo` → Modal aguardando aprovação da publicação - `aprovado/agendado/publicado` → Modal aprovado - `cronograma_rejeitado` → Modal planejamento recusado - `cronograma_aprovado || status==='aceito'` → Modal inserir conteúdo (modo 2) - Else → Modal visualização planejamento (modo 1) ### Subdomínio SSL - `aprovacao.gotechbr.com.br` → SSL Let's Encrypt (expira 2026-07-05) - Certbot com webroot via Nginx location `^~` + ACL para nginx user - Scripts DNS auth/cleanup em `/usr/local/bin/dns-auth.sh` e `dns-cleanup.sh` - Nginx ACME config: `/etc/nginx/conf.d/users/gotechbr/aprovacao.gotechbr.com.br/acme.conf` ### Anti-duplicata - `enviarConteudoPost` faz 2 requisições: salvar (rápido) + notificar WhatsApp (background) - `cronogramaEnviarCliente` bloqueia reenvio em < 5 minutos ### Campos no cronograma (criar) - Título/tema, Data, Hora, Planejamento/briefing, Tipo, Imagens de referência (múltiplas) - SEM: texto publicação, hashtags **Why:** Separar planejamento (datas/temas) da publicação (arte/texto final) para o cliente aprovar em 2 etapas **How to apply:** Modal de criação do cronograma não tem campos de conteúdo/hashtags. Post aceito abre modal de inserir conteúdo.