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)
- BK-136
- BK-137
- BK-138
- BK-147
- BK-148
- BK-149
- BK-150
- BK-151
- BK-156
- BK-158
- BK-159
- BK-160
- BK-161
- BK-162
- BK-163
- BK-164
- BK-165
- BK-166
- BK-170
- BK-171
- BK-172
- BK-177
- BK-183
- BK-186
- BK-187
- BK-189
- BK-190
- BK-191
- BK-192
- BK-193
- BK-195
- BK-196
- BK-197
- BK-198
- BK-199
- BK-201
- BK-205
- BK-207
- BK-208
- BK-209
- BK-210
- BK-211
- BK-212
- BK-213
- BK-214
- BK-215
- BK-216
- BK-217
- BK-218
- BK-219
- BK-220
- BK-221
- BK-229
- BK-230
- BK-231
- BK-232
- BK-233
- BK-234
- BK-235
- BK-236
- BK-239
- BK-240
- BK-241
- BK-242
- BK-243
- BK-244
- BK-245
- BK-246
- BK-248
- BK-249
- BK-250
- BK-251
- BK-252
- BK-253
- BK-254
- BK-255
- BK-256
- BK-257
- BK-258
- BK-259
- BK-260
- BK-261
- BK-262
- BK-263
- BK-264
- BK-265
- BK-266
- BK-267
- BK-268
- BK-269
- BK-270
- BK-271
- BK-272
- BK-275
- BK-276
- BK-277
- BK-278
- BK-279
- BK-280
- BK-295
- BK-313
Detalhe do BK Selecionado
/www/wwwroot/rionoteatro.com.br/docs/backlog/BK-267-unificacao-eventos-duplicados-conciliacao.md • 2026-04-13T03:41:59.406Z
BK-267 - Unificação de eventos duplicados na conciliação
Status
- concluído em
2026-04-12
Objetivo
- evitar que o bot crie múltiplos eventos separados para o mesmo espetáculo quando só mudam as datas
- adicionar a ação
Unificarna abaProváveis Duplicatas - preservar o link externo correto por sessão/data para o CTA do evento unificado
Caso real
Comédia 3 Em 1 Na Lapa- hoje existe em múltiplos registros
pecascom mesmo nome/slug/teatro/origembot - variando principalmente:
data_iniciodata_fimurl_origemlink_externo
Regras da rodada
- duplicata forte deve considerar:
- nome normalizado
- local/teatro equivalente
- valor quando fizer sentido
- caso 100% coerente:
- mesmo nome normalizado
- mesmo local/teatro equivalente
- mesma sessão (
data + hora) - mesmo valor
- nesse cenário o BOT deve tratar como evento já conhecido, e não abrir novo item
- exceção crítica:
- se o
link_externo/url_origemfor o mesmo e a data mudar, isso deve ir paraAtualizações - não deve virar novo evento nem nova sessão
- cautela crítica com preço:
- diferença de valor isolada não pode ser tratada como alteração confiável
- o valor salvo pelo admin pode ser o unitário, enquanto a origem externa destaca combo/duplo ou outro valor agregado
- se a única divergência for preço, segurar a automação e não promover como alteração certa
- ainda assim, esse caso deve entrar em
Atualizaçõespara conferência humana - quando o admin corrigir manualmente um valor captado errado, salvar:
- valor captado
- valor corrigido
- sessão/data
- se o mesmo valor errado voltar a ser captado na mesma sessão, isso não deve voltar como nova alteração
- alteração textual:
- se a mudança for só sinopse/descrição, o sistema só pode atualizar automaticamente quando houver identidade mínima forte
- identidade mínima forte:
- mesmo link externo
- ou mesmo nome + mesmo local + mesma sessão
- unificação deve:
- manter um evento mestre
- anexar sessões das sugestões duplicadas ao mestre
- guardar o link externo por sessão/data
Escopo
bot/handlers/event_matcher.phpadmin/modulos/eventos/conciliacao.phpadmin/modulos/eventos/action.phpevento.php
Entrega consolidada
event_matcher.php- passou a diferenciar melhor
same_external_linkesame_session_duplicate - mesmo link externo prioriza
Atualizações - mesma sessão no mesmo local fortalece a ida para
Prováveis Duplicatas conciliacao.php- aba
Prováveis Duplicatasrecebeu açãoUnificar action.php- nova ação
conciliar_unificar - persistência de
sec_link_externoemtab_sessoes - links externos por sessão passaram a sobreviver ao fluxo de unificação/regeneração
evento.php- CTA externo agora abre modal de data quando houver múltiplos links por sessão
- minicard
Valor Indicativoincluído - minicard de classificação incluído
- documentação viva atualizada em
docs/documentacao_tecnica/BOT_CAPTADOR_EVENTOS.md
Validações executadas
php -l admin/modulos/eventos/action.phpphp -l admin/modulos/eventos/conciliacao.phpphp -l evento.phpphp -l peca.phpphp -l eventos.phpphp -l pecas.php
Achado operacional pós-entrega
- o caso real
País Gambiarramostrou que a fila de conciliação não é a única fonte de duplicatas: - havia
6eventos já aprovados/ativos empecas, com mesmoslug, mesmo teatro e mesma origembot - a vitrine de
eventos.phpestava correta ao listar todos; o problema era dado legado ativo no banco - saneamento operacional aplicado em
2026-04-12: - evento mestre mantido:
1513 - duplicados inativados:
1512,1514,1515,1516,1517 - sessões consolidadas no mestre com
sec_link_externopor data - consequência prática:
- além da aba de duplicatas pendentes, precisamos também de uma pesquisa periódica de similares já aprovados
- relatório operacional gerado fora do Git:
/root/rnt_similares_aprovados_50_20260412-1837.json- follow-up operacional:
Unificarpassou a forçar o evento destino parastatus = 'A'- quando o admin edita o nome antes de
Vincular/Unificar, a peça destino passa a usar o nome editado - o slug canônico existente do destino é preservado
- a conciliação deixou de alterar
origemeid_produtor - a partir daqui,
Vincular,Unificar,Aplicar AtualizaçãoeReativarpreservam sempre o produtor/origem atuais do evento destino
Achado operacional de performance em 2026-04-13
- a página
admin/modulos/eventos/conciliacao.phpestava lenta principalmente no retorno pós-ação porque o servidor montava todas as abas no mesmo request - isso fazia a volta para
#duplicatascontinuar pagando o custo de: novosduplicatasatualizacoesreativaraprovadosaprovados-similaresignorados- gargalo crítico identificado:
getAprovadosSimilaresConciliacao()fazia scan de todos os eventos ativos e ainda executavaCOUNT(pedidos)por evento- correção aplicada:
action.phppassou a devolver?tab=<aba>#<aba>na URL de retornoconciliacao.phppassou a ler$_GET['tab']como aba ativa do servidor- o PHP agora renderiza pesado apenas a aba ativa no request inicial
- a navegação entre abas passou a recarregar a página com
tab=para que o servidor saiba qual conteúdo montar getAprovadosSimilaresConciliacao()deixou de fazerCOUNTpor evento e passou a pré-carregar os totais em uma única query agrupada- efeito esperado:
- retorno muito mais rápido nas ações de
Duplicatas,AtualizaçõeseReativar - a aba
Aprovados Similarescontinua mais pesada que as demais, mas deixa de contaminar todo reload da tela
Paridade Eventim em 2026-04-13
admin/modulos/eventos/conciliacao_eventim.phprecebeu a paridade operacional das melhorias que já existiam na trilha Sympla- melhorias refletidas em todas as abas:
NovosDuplicatasAtualizaçõesReativarAprovadosAprovados SimilaresIgnorados- paridade portada:
- navegação com
?tab=<aba>#<aba>para o servidor saber a aba alvo no retorno - render pesado apenas da aba ativa
- busca/vínculo manual no padrão mais novo
Duplicatascom links do captado e do existente- ação
Unificartambém no Eventim - selo
Preserva produtor/origem ReativareAprovadoscom os mesmos atalhos operacionaisIgnoradoscom limpeza automática de passados e açãoExcluir da ListaAprovados Similarescom helper de similaridade e merge manual- observação arquitetural:
- a entrega resolveu a paridade operacional agora
- a duplicação estrutural entre Sympla e Eventim continua existindo
- a refatoração para base única foi separada para o roadmap
BK-270