[FEATURE] Coleta mensal

[FEATURE] Coleta mensal

Feature: Implementar Pipeline de Automação Mensal (Coleta + Enriquecimento)

🎯 Descrição

Atualmente, a atualização do banco de dados do OncoMap depende de execução manual de múltiplos scripts. Precisamos automatizar esse processo para garantir que o sistema receba novos dados periodicamente sem intervenção humana.

Esta tarefa visa criar um Pipeline de Dados no GitHub Actions que roda mensalmente para coletar novos diários oficiais e processá-los automaticamente com a IA.

✅ Objetivos

  1. Coleta Automática: Buscar diários dos últimos 30 dias na API do Querido Diário.
  2. Processamento Contínuo: Executar a análise do Gemini (PDF e TXT) nos novos dados coletados.
  3. Agendamento: Configurar tudo para rodar automaticamente no dia 1º de cada mês.

📝 Tarefas (To-Do)

1. Backend (Scripts)

  • Criar src/scripts/monthly_collector.js:
    • Deve buscar diários na API do Querido Diário filtrando por published_since (últimos 30/45 dias).
    • Deve salvar source_url (PDF) e txt_url (Texto) diretamente no banco.
    • Deve ignorar diários que já existem (ON CONFLICT DO NOTHING).
  • Refatorar enrichment_pdf.js:
    • Remover a necessidade de argumentos de ID (startId, endId).
    • Alterar a query para buscar automaticamente menções onde gemini_analysis IS NULL.
  • Refatorar enrichment_txt.js:
    • Remover a necessidade de argumentos de ID.
    • Alterar a query para buscar automaticamente onde gemini_analysis_txt IS NULL (fallback).

2. DevOps (GitHub Actions)

  • Criar Workflow .github/workflows/pipeline_mensal.yml:
    • Configurar gatilho schedule (Cron: 0 5 1 * *).
    • Adicionar gatilho workflow_dispatch (para execução manual).
    • Definir jobs em sequência: Coleta -> Enriquecimento PDF -> Enriquecimento TXT.
  • Configurar Secrets:
    • Documentar a necessidade das chaves DATABASE_URL, SUPABASE_URL, SUPABASE_KEY e GEMINI_API_KEYS.

📊 Critérios de Aceite

  • O script monthly_collector.js roda com sucesso e popula o banco com novos dados.
  • Os scripts de enriquecimento rodam sem argumentos e processam apenas o que está pendente.
  • O Workflow do GitHub Actions completa todos os passos (verde ✅) ao ser acionado manualmente.
  • Novos dados aparecem no banco de dados (Supabase) após a execução do pipeline.

🔗 Dependências

  • Necessário ter as chaves de API (Supabase e Google Gemini) configuradas nos Secrets do repositório.