Skip to content

feature: produtiza trend detection — DAG + job + migration#190

Merged
nitaibezerra merged 4 commits into
mainfrom
feat/entity-trending-scores
Jun 23, 2026
Merged

feature: produtiza trend detection — DAG + job + migration#190
nitaibezerra merged 4 commits into
mainfrom
feat/entity-trending-scores

Conversation

@nitaibezerra

Copy link
Copy Markdown
Contributor

Summary

  • Adiciona tabela entity_trending_scores via migration 025 (inclui volume_ratio para o portal)
  • Cria job package src/data_platform/jobs/trend_detection/ com signals.py, scorer.py (NDCG@10=1.0) e persist.py
  • Novo DAG compute_entity_trending rodando 4× ao dia (schedule: 0 */6 * * *)
  • Testes TDD: scorer (8 casos), persist (4 casos), DAG estrutural (5 casos AST)

Test plan

  • pytest tests/unit/jobs/test_trend_detection_scorer.py — verde
  • pytest tests/unit/jobs/test_trend_detection_persist.py — verde
  • pytest tests/unit/dags/test_compute_entity_trending.py — verde
  • Após merge: aplicar migration 025 via db-migrate.yaml
  • Após migration: DAG roda em até 6h, confirmar SELECT COUNT(*) FROM entity_trending_scores;

🤖 Generated with Claude Code

Adiciona compute_entity_trending DAG (6h), job package trend_detection/
com signals.py adaptado, scorer.py copiado (NDCG=1.0) e persist.py com
UPSERT idempotente em entity_trending_scores. Migration 025 cria a tabela
com coluna volume_ratio (exibida no portal).
Migration 024 estava no working tree mas não estava commitada, causando
sequence gap no validator de integração.
O framework de testes de integração (_apply_all_migrations) aplica TODAS as
migrations CONCURRENTLY numa Phase 2 antes de rodar as demais. Como 024 é
detectada como concurrent (contém o token CONCURRENTLY), ela era aplicada logo
após 009 — antes das migrations 021/022 que criam news_entities e entity_edges.

As tabelas são novas, então não há risco de lock em produção. IF NOT EXISTS
já garante idempotência.
O scanner _find_concurrent_migrations() faz match simples de string no texto
completo do arquivo (incluindo comentários). A migration 024 tinha a palavra
no comentário explicativo, causando sua classificação como concurrent e
aplicação em Phase 2 — antes das migrations 021/022 que criam as tabelas.
@nitaibezerra nitaibezerra merged commit a22a6f0 into main Jun 23, 2026
1 check passed
@nitaibezerra nitaibezerra deleted the feat/entity-trending-scores branch June 23, 2026 19:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant