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-252-bot-identidade-origem-consistencia.md • 2026-04-10T20:56:03.546Z
BK-252 - Consistência entre origem='bot' e BOT_PRODUTOR_ID
Objetivo
- Registrar a duplicidade conceitual atual do BOT no Rio no Teatro.
- Definir a regra de consistência para evitar drift entre
origem='bot'e o produtor técnicobot@rionoteatro.com.br. - Disponibilizar um auditor seguro antes de qualquer migração ampla.
Contexto
Hoje o sistema usa dois marcadores para o mesmo agente:
- marcador semântico de negócio:
pecas.origem = 'bot'- identidade técnica legada:
pecas.id_produtor = BOT_PRODUTOR_ID- cliente técnico
bot@rionoteatro.com.br
Isso não significa “dois bots diferentes”. Significa uma modelagem duplicada:
- um campo para roteamento/regra de negócio
- um FK técnico para caber no schema legado e reaproveitar fluxos de produtor/cliente
Invariantes desejadas
- Se
origem = 'bot', entãoid_produtor = BOT_PRODUTOR_ID - Se
id_produtor = BOT_PRODUTOR_ID, entãoorigem = 'bot'ou, no máximo, vazio durante janela transitória controlada - Filtros de UI e relatórios não devem depender de heurísticas divergentes entre
origem,id_produtoreemail
Auditoria executada nesta rodada
Data: 2026-04-10
Resultado da base viva:
origem='bot'comid_produtordivergente:0id_produtor=BOT_PRODUTOR_IDcomorigemvazia:0id_produtor=BOT_PRODUTOR_IDcomorigemdivergente não-vazia:0pecascomorigem='bot':159pecascomid_produtor=BOT_PRODUTOR_ID:159
Leitura:
- a base viva atual está consistente
- o risco maior hoje não está nos dados correntes, e sim nas queries e fallback híbridos espalhados pelo código
Entrega desta rodada
- script one-shot de auditoria:
admin/cron/audit_bot_identity_consistency.php- modo padrão:
dry-run- modo opcional:
--apply
Reparo automático permitido pelo script:
origem='bot'comid_produtordivergente:- corrige
id_produtorparaBOT_PRODUTOR_ID id_produtor=BOT_PRODUTOR_IDcomorigemvazia:- corrige
origem='bot'
Reparo que o script NÃO força automaticamente:
id_produtor=BOT_PRODUTOR_IDcomorigem='admin'ouorigem='produtor'- esse cenário deve ser tratado manualmente porque pode esconder regra de negócio legítima ou drift antigo
Próximo passo recomendado
- Centralizar uma função/condição canônica para “item BOT” nas listagens admin.
- Remover fallback por
email='bot@...'onde a base já estiver íntegra. - Deixar
origem='bot'como marcador canônico de negócio. - Manter
BOT_PRODUTOR_IDcomo identidade técnica obrigatoriamente alinhada aoorigem='bot'.