<?php
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');

// Tratar OPTIONS request
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit();
}

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

try {
    $pdo = conectarBanco();
    
    // Buscar todos os checklists com informações das viagens
    $sql = "SELECT 
                c.id,
                c.viagem_id,
                c.veiculo_id,
                c.tipo_veiculo,
                c.data_hora,
                c.itens_json,
                c.observacoes_gerais,
                c.sincronizado,
                v.cliente,
                v.data_inicio,
                v.data_fim,
                ve.modelo as veiculo_modelo,
                ve.placa as veiculo_placa
            FROM checklist_veiculo c
            LEFT JOIN viagens v ON c.viagem_id = v.id
            LEFT JOIN veiculos ve ON c.veiculo_id = ve.id
            ORDER BY c.data_hora DESC";
    
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $checklists = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Calcular estatísticas
    $hoje = date('Y-m-d');
    $estatisticas = [
        'total' => count($checklists),
        'hoje' => 0,
        'com_problemas' => 0,
        'pendentes_sync' => 0,
        'sincronizados' => 0
    ];
    
    foreach ($checklists as &$checklist) {
        // Contar estatísticas
        if (strpos($checklist['data_hora'], $hoje) === 0) {
            $estatisticas['hoje']++;
        }
        
        if (!$checklist['sincronizado']) {
            $estatisticas['pendentes_sync']++;
        } else {
            $estatisticas['sincronizados']++;
        }
        
        // Verificar se há problemas nos itens
        try {
            $itens = json_decode($checklist['itens_json'], true);
            if ($itens && is_array($itens)) {
                $temProblema = false;
                foreach ($itens as $item) {
                    if (isset($item['status']) && $item['status'] === 'PROBLEMA') {
                        $temProblema = true;
                        break;
                    }
                }
                if ($temProblema) {
                    $estatisticas['com_problemas']++;
                }
                
                // Adicionar contagem de itens
                $checklist['total_itens'] = count($itens);
                $checklist['itens_ok'] = count(array_filter($itens, function($item) {
                    return isset($item['status']) && $item['status'] === 'OK';
                }));
                $checklist['itens_problema'] = count(array_filter($itens, function($item) {
                    return isset($item['status']) && $item['status'] === 'PROBLEMA';
                }));
            } else {
                $checklist['total_itens'] = 0;
                $checklist['itens_ok'] = 0;
                $checklist['itens_problema'] = 0;
            }
        } catch (Exception $e) {
            $checklist['total_itens'] = 0;
            $checklist['itens_ok'] = 0;
            $checklist['itens_problema'] = 0;
        }
    }
    
    echo json_encode([
        'sucesso' => true,
        'success' => true,
        'data' => $checklists,
        'dados' => $checklists,
        'estatisticas' => $estatisticas,
        'mensagem' => 'Checklists carregados com sucesso',
        'total' => count($checklists),
        'timestamp' => date('Y-m-d H:i:s')
    ], JSON_UNESCAPED_UNICODE);
    
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode([
        'sucesso' => false,
        'success' => false,
        'erro' => 'Erro ao carregar checklists: ' . $e->getMessage(),
        'data' => [],
        'dados' => []
    ], JSON_UNESCAPED_UNICODE);
}
?> 
