<?php
require_once 'config/database.php';

header('Content-Type: application/json; charset=utf-8');

try {
    $database = new Database();
    $db = $database->getConnection();
    
    $acao = $_GET['acao'] ?? 'verificar';
    $diasAntigos = $_GET['dias'] ?? 30; // Padrão: mais de 30 dias
    
    // Data limite para considerar checklist antigo
    $dataLimite = date('Y-m-d H:i:s', strtotime("-{$diasAntigos} days"));
    
    if ($acao === 'verificar') {
        // Verificar checklists antigos
        $query = "
            SELECT c.id, c.data_hora, c.veiculo_id, c.sincronizado, v.placa, v.tipo
            FROM checklists_veiculo c
            LEFT JOIN veiculos v ON c.veiculo_id = v.id
            WHERE c.data_hora < :data_limite 
            AND c.sincronizado = 0
            ORDER BY c.data_hora ASC
        ";
        
        $stmt = $db->prepare($query);
        $stmt->bindParam(':data_limite', $dataLimite);
        $stmt->execute();
        
        $checklists = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        echo json_encode([
            'sucesso' => true,
            'dados' => [
                'data_limite' => $dataLimite,
                'total_encontrados' => count($checklists),
                'checklists' => $checklists
            ],
            'mensagem' => 'Verificação concluída'
        ]);
        
    } elseif ($acao === 'limpar') {
        // Iniciar transação
        $db->beginTransaction();
        
        try {
            // Buscar IDs dos checklists antigos
            $query = "
                SELECT id FROM checklists_veiculo 
                WHERE data_hora < :data_limite 
                AND sincronizado = 0
            ";
            
            $stmt = $db->prepare($query);
            $stmt->bindParam(':data_limite', $dataLimite);
            $stmt->execute();
            
            $ids = $stmt->fetchAll(PDO::FETCH_COLUMN);
            
            if (empty($ids)) {
                $db->rollback();
                echo json_encode([
                    'sucesso' => true,
                    'dados' => ['removidos' => 0],
                    'mensagem' => 'Nenhum checklist antigo encontrado'
                ]);
                return;
            }
            
            $placeholders = str_repeat('?,', count($ids) - 1) . '?';
            
            // Remover fotos associadas primeiro
            $queryFotos = "DELETE FROM checklist_fotos WHERE checklist_id IN ($placeholders)";
            $stmtFotos = $db->prepare($queryFotos);
            $stmtFotos->execute($ids);
            $fotosRemovidas = $stmtFotos->rowCount();
            
            // Remover checklists
            $queryChecklists = "DELETE FROM checklists_veiculo WHERE id IN ($placeholders)";
            $stmtChecklists = $db->prepare($queryChecklists);
            $stmtChecklists->execute($ids);
            $checklistsRemovidos = $stmtChecklists->rowCount();
            
            $db->commit();
            
            echo json_encode([
                'sucesso' => true,
                'dados' => [
                    'checklists_removidos' => $checklistsRemovidos,
                    'fotos_removidas' => $fotosRemovidas,
                    'data_limite' => $dataLimite
                ],
                'mensagem' => 'Limpeza concluída com sucesso'
            ]);
            
        } catch (Exception $e) {
            $db->rollback();
            throw $e;
        }
        
    } else {
        echo json_encode([
            'sucesso' => false,
            'mensagem' => 'Ação inválida. Use: ?acao=verificar ou ?acao=limpar&dias=30'
        ]);
    }
    
} catch (Exception $e) {
    echo json_encode([
        'sucesso' => false,
        'erro' => $e->getMessage(),
        'mensagem' => 'Erro ao processar solicitação'
    ]);
}
?> 
