Cerebro Studio · Backlog · Changelog
RioNoTeatro • /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md
Abrir Studio Projeto externo em modo read-only; encaminhamento permitido, escrita bloqueada.

Backlog Unificado

Projeto: RioNoTeatro. Fonte principal: /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.

Modo read-only: ações de escrita ficam disponíveis apenas para o Cérebro.

Sem itens pendentes em /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.

Especificações Disponíveis (fora da fila pendente)

Detalhe do BK Selecionado

/www/wwwroot/rionoteatro.com.br/docs/backlog/BK-242-pecas-encerradas-ainda-ativas-no-admin.md • 2026-04-09T18:18:55.414Z

BK-242 - Peças encerradas ainda ativas no admin

Objetivo

  • impedir que peças com fim_temporada < hoje permaneçam com status = 'A'
  • impedir que essas peças sigam aparecendo na aba Ativas do admin por inércia de status
  • acoplar a inativação automática ao fluxo do admin e ao script de sincronização

Evidência inicial

  • consulta real na VPS em 2026-04-09:
  • SELECT id,nome,status,inicio_temporada,fim_temporada,origem,id_produtor,parceria_online FROM pecas WHERE nome LIKE '%Bee Gees%' ORDER BY id DESC
  • resultado relevante:
  • id=333
  • nome=Bee Gees, Abba e Carpenters - Nos embalos de SÁBADO a noite
  • status=A
  • inicio_temporada=2026-03-04
  • fim_temporada=2026-03-25
  • origem=admin
  • contagem adicional:
  • 79 peças ainda estavam com status='A' apesar de fim_temporada < CURDATE()

Causa raiz

  • a aba Ativas em admin/modulos/pecas/index.php filtra apenas p.status = 'A'
  • a query da listagem não corta por fim_temporada
  • já existia um utilitário avulso em admin/cron/tmp_inativar_pecas_antigas.php, mas fora do fluxo normal

Plano

  • criar helper compartilhado para localizar e inativar peças vencidas com guarda contra reexecução excessiva
  • chamar o helper no carregamento da listagem do admin
  • chamar o helper também no início de admin/cron/sync_facebook_events.php
  • validar em SQL e em sintaxe PHP

Arquivos em escopo

  • admin/modulos/pecas/index.php
  • admin/cron/sync_facebook_events.php
  • admin/cron/expired_pecas_status_helper.php
  • docs/LOCK.md
  • docs/BACKLOG.md

Execução desta rodada

  • criado o helper compartilhado admin/cron/expired_pecas_status_helper.php
  • admin/modulos/pecas/index.php agora chama o helper antes de montar a listagem
  • admin/cron/sync_facebook_events.php agora chama o helper antes da sincronização e loga quando houver atualização
  • a regra aplicada na automação ficou:
  • status = 'A'
  • fim_temporada IS NOT NULL
  • fim_temporada <> '0000-00-00'
  • DATE(fim_temporada) < CURDATE()

Validações executadas

  • php -l admin/cron/expired_pecas_status_helper.php
  • php -l admin/modulos/pecas/index.php
  • php -l admin/cron/sync_facebook_events.php
  • execução real da rotina:
  • updated=79
  • matched=79
  • a peça id=333 passou de status='A' para status='I'
  • conferência posterior:
  • SELECT COUNT(*) AS total FROM pecas WHERE status='A' AND fim_temporada < CURDATE() retornou 0

Ponto de atenção

  • o filtro Ativas do admin continua semanticamente baseado em status = 'A'
  • a correção desta rodada não mudou essa regra de listagem; ela corrige a base para que peças vencidas não permaneçam ativas por inércia

Fechamento