CL-2026-03-25-BK-160 · Carrossel semanal cover por peça
Resumo
- O cron
admin/cron/sync_facebook_events.phpagora gera até 10 slides individuais do carrossel semanal, cada um exibindo a capa oficial da peça em 1080x1350 com cropcovere rolagem lateral nativa. - O weekly comercial passou a espelhar o universo de
pecas.phpsem 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_mtimepara gerar cache key por peça. - refatorou
buildWeeklyCarouselSlidespara produzir um arquivo JPEG por peça ao invés do mosaico 3x3 anterior. - manteve
items[]compatível com ocreateFeedCarouselPost/createInstagramCarousele 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 filaplanner_weekly_carousel. - implementou trava para evitar reemissão de json de aprovação semanal quando a fila já consta como
pending_approvale nenhum dado novo requer atenção (apenasupdated_atatualizou). - endureceu a seleção semanal com guarda explícita de
inicio_temporada/fim_temporada, mas sem exigir linha emtab_sessoespara manter a peça comercial elegível. - passou a aceitar weekly comercial com apenas
1peça, trocando a headline paraPROMOÇÃ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 Atualizarcoerente 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 fornecendoimagem_urle o limite de 10 itens protege o sincronismo do Instagram. - O cache dos slides usa hash com
week_start,piece_ideimage_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.phpphp -l admin/modulos/campanhas/aprovar_squad.phpgit diff --check