namespace :reem do desc "Diagnóstico do dashboard: verifica dados da tabela externa por conta/período" task diagnostico: :environment do ini = ENV['INICIO'] ? Date.parse(ENV['INICIO']) : Date.current.beginning_of_month fim = ENV['FIM'] ? Date.parse(ENV['FIM']) : Date.current puts "================ DIAGNÓSTICO REEM ================" puts "Período analisado: #{ini} → #{fim}" puts "DB_EXISTING_ACCOUNT_ID: #{ENV.fetch('DB_EXISTING_ACCOUNT_ID', '95907 (default)')}" puts "-------------------------------------------------" puts "Entregas no período (com filtro Gade): #{Entrega.da_conta_gade.no_periodo(ini, fim).count}" puts "Entregas no período (SEM filtro conta): #{Entrega.no_periodo(ini, fim).count}" puts "Pagas no período (com filtro Gade): #{Entrega.da_conta_gade.pagas.no_periodo(ini, fim).count}" puts "-------------------------------------------------" puts "account_ids presentes na tabela:" Entrega.group(:account_id).count.each { |acc, qtd| puts " account_id=#{acc.inspect} → #{qtd} linhas" } puts "-------------------------------------------------" puts "planned_date mais antiga: #{Entrega.minimum(:planned_date)}" puts "planned_date mais recente: #{Entrega.maximum(:planned_date)}" puts "=================================================" puts "Leitura:" puts " • 'SEM filtro' > 0 e 'com filtro Gade' = 0 → ajuste DB_EXISTING_ACCOUNT_ID no .env" puts " • ambos = 0 → não há dados nesse período (use as datas acima)" rescue => e warn "[diagnostico] Falha: #{e.class} - #{e.message}" raise end end