Cerebro Studio · Backlog · Changelog
RioNoTeatro • /www/wwwroot/rionoteatro.com.br/docs/changelog/2026/CL-2026-03-25-BK-160.md • 2026-03-26T00:23:07.194Z

CL-2026-03-25-BK-160 · Carrossel semanal cover por peça

Resumo

  • O cron admin/cron/sync_facebook_events.php agora gera até 10 slides individuais do carrossel semanal, cada um exibindo a capa oficial da peça em 1080x1350 com crop cover e rolagem lateral nativa.
  • O weekly comercial passou a espelhar o universo de pecas.php sem depender de existir sessão cadastrada na semana para a peça continuar elegível.
  • O fluxo semanal foi dividido operacionalmente entre:
  • domingo -> approval comercial da segunda;
  • segunda -> approval editorial da quarta.

Escopo entregue

  • admin/cron/sync_facebook_events.php
  • limitou a seleção de peças elegíveis a 10 itens e reaproveitou image_mtime para gerar cache key por peça.
  • refatorou buildWeeklyCarouselSlides para produzir um arquivo JPEG por peça ao invés do mosaico 3x3 anterior.
  • manteve items[] compatível com o createFeedCarouselPost/createInstagramCarousel e preservou as mensagens de legenda já existentes.
  • integrou a criação do payload de aprovação preenchendo a galeria do carrossel (media, carousel_items) e dados da fila planner_weekly_carousel.
  • implementou trava para evitar reemissão de json de aprovação semanal quando a fila já consta como pending_approval e nenhum dado novo requer atenção (apenas updated_at atualizou).
  • endureceu a seleção semanal com guarda explícita de inicio_temporada / fim_temporada, mas sem exigir linha em tab_sessoes para manter a peça comercial elegível.
  • passou a aceitar weekly comercial com apenas 1 peça, trocando a headline para PROMOÇÃO DA SEMANA! no singular.
  • passou a resumir sessões com dia da semana, data e hora no formato editorial do approval/carrossel.
  • abriu um segundo tipo de fila semanal para o carrossel editorial dos eventos mais acessados, com approval separado na segunda e publicação na quarta.
  • admin/modulos/campanhas/action_squad.php
  • alinhado para manter Corrigir e Atualizar coerente com headline singular/plural e com os tipos semanais.
  • admin/modulos/campanhas/aprovar_squad.php
  • passou a renderizar uma galeria de slides (carousel_items) quando o approval corresponder a um carrossel semanal, mantendo o layout unitário para mídias normais.
  • includes/inc_palcofan.php
  • endurecido para renderizar estrelas e botão de avaliação com estrelas unicode + JS ES5, reduzindo dependência visual do Font Awesome e evitando sumiço do CTA em browsers/mobile mais frágeis.
  • docs/BACKLOG.md
  • adicionou o BK-160 ao bloco ativo do backlog e registrou o BK-161 para auditoria futura da pasta órfã /www/wwwroot/rionoteatro.
  • docs/backlog/BK-160-carousel-semanal-cover-por-peca.md
  • descreveu o escopo, o objetivo e as validações obrigatórias deste BK.
  • docs/changelog/2026/CL-2026-03-25-BK-160.md
  • (este changelog, já publicado)

Resultado técnico observado

  • A fila semanal do Meta agora recebe slides full-width por peça e dispensa o cartão 3x3 que misturava várias capas em um único frame.
  • O payload de carrossel continua sendo aceito pelas APIs do Facebook e Instagram porque items[] segue fornecendo imagem_url e o limite de 10 itens protege o sincronismo do Instagram.
  • O cache dos slides usa hash com week_start, piece_id e image_mtime, evitando recriações desnecessárias quando a capa não muda.
  • O link de approval do weekly carousel deixa de ficar vazio: o operador passa a enxergar o preview do primeiro slide e a galeria completa dos slides antes de aprovar.
  • A lógica da semana deixa de aceitar cegamente peça ativa fora da temporada alvo; agora a janela semanal respeita fim_temporada, o que evita casos como peça encerrada ainda aparecer no planejamento da semana seguinte, mas sem derrubar peça comercial só porque a sessão da semana ainda não foi cadastrada.
  • O PalcoFan volta a expor estrelas clicáveis e CTA visível de avaliação mesmo em ambientes onde o ícone antigo não carregava bem.

Validações

  • php -l admin/cron/sync_facebook_events.php
  • php -l admin/modulos/campanhas/aprovar_squad.php
  • git diff --check