-- Correção de IDs incorretos em checklists
-- Execute este script para corrigir checklists com viagem_id inexistente

-- 1. Verificar checklists com problemas
SELECT 'CHECKLISTS COM PROBLEMAS:' as status;
SELECT c.id, c.viagem_id, c.veiculo_id, c.data_hora, c.sincronizado,
       'Viagem não existe' as problema
FROM checklist_veiculo c
LEFT JOIN viagens v ON c.viagem_id = v.id
WHERE v.id IS NULL
ORDER BY c.id DESC;

-- 2. Mostrar possíveis viagens corretas para cada checklist problemático
SELECT 'POSSÍVEIS CORREÇÕES:' as status;
SELECT 
    c.id as checklist_id,
    c.viagem_id as viagem_id_incorreto,
    c.veiculo_id,
    DATE(c.data_hora) as data_checklist,
    v.id as viagem_id_correto,
    v.data_inicio as data_viagem,
    v.cliente,
    v.motivo
FROM checklist_veiculo c
LEFT JOIN viagens v_incorreta ON c.viagem_id = v_incorreta.id
JOIN viagens v ON (v.veiculo_id = c.veiculo_id AND DATE(v.data_inicio) = DATE(c.data_hora))
WHERE v_incorreta.id IS NULL
ORDER BY c.id DESC;

-- 3. CORRIGIR automaticamente (descomente para executar)
/*
UPDATE checklist_veiculo c
JOIN viagens v ON (v.veiculo_id = c.veiculo_id AND DATE(v.data_inicio) = DATE(c.data_hora))
LEFT JOIN viagens v_incorreta ON c.viagem_id = v_incorreta.id
SET c.viagem_id = v.id
WHERE v_incorreta.id IS NULL;
*/

-- 4. Verificar resultado final
SELECT 'VERIFICAÇÃO FINAL:' as status;
SELECT COUNT(*) as checklists_com_problemas
FROM checklist_veiculo c
LEFT JOIN viagens v ON c.viagem_id = v.id
WHERE v.id IS NULL; 