<?php
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');

try {
    // Conectar com banco
    $pdo = new PDO(
        "mysql:host=localhost;dbname=pinheir3_controle_frotasV1.1;charset=utf8mb4",
        "pinheir3",
        "080880Gelboy",
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );
    
    // Buscar viagens ativas (funcionando como "veículos")
    $sql = "
        SELECT 
            v.id,
            v.cliente,
            v.motivo,
            v.tecnico_id as motorista,
            v.veiculo_id,
            v.latitude_inicial as latitude,
            v.longitude_inicial as longitude,
            v.data_inicio as timestamp,
            TIMESTAMPDIFF(MINUTE, v.data_inicio, NOW()) as duracao_minutos,
            'Veículo' as modelo,
            CONCAT('VEI-', v.id) as placa,
            'em_viagem' as status,
            0 as velocidade
        FROM viagens v
        WHERE v.data_fim IS NULL
        AND v.latitude_inicial IS NOT NULL 
        AND v.longitude_inicial IS NOT NULL
        AND v.latitude_inicial != 0 
        AND v.longitude_inicial != 0
        ORDER BY v.data_inicio DESC
    ";
    
    $stmt = $pdo->query($sql);
    $viagens = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    $vehicles = [];
    
    foreach ($viagens as $viagem) {
        $lat = floatval($viagem['latitude']);
        $lng = floatval($viagem['longitude']);
        
        // Verificar se coordenadas são válidas
        if ($lat >= -90 && $lat <= 90 && $lng >= -180 && $lng <= 180 && $lat != 0 && $lng != 0) {
            $vehicles[] = [
                'id' => intval($viagem['id']),
                'placa' => $viagem['placa'],
                'modelo' => $viagem['modelo'],
                'motorista' => $viagem['motorista'] ?: 'Não atribuído',
                'latitude' => $lat,
                'longitude' => $lng,
                'velocidade' => floatval($viagem['velocidade']),
                'status' => $viagem['status'],
                'timestamp' => $viagem['timestamp'],
                'cliente' => $viagem['cliente'],
                'motivo' => $viagem['motivo'],
                'duracao_minutos' => intval($viagem['duracao_minutos'])
            ];
        }
    }
    
    echo json_encode([
        'success' => true,
        'vehicles' => $vehicles,
        'total' => count($vehicles),
        'timestamp' => date('Y-m-d H:i:s'),
        'message' => count($vehicles) > 0 ? 'Veículos carregados com sucesso' : 'Nenhum veículo ativo encontrado'
    ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
    
} catch (Exception $e) {
    echo json_encode([
        'success' => false,
        'vehicles' => [],
        'total' => 0,
        'timestamp' => date('Y-m-d H:i:s'),
        'message' => 'Erro: ' . $e->getMessage(),
        'error_details' => [
            'file' => basename($e->getFile()),
            'line' => $e->getLine()
        ]
    ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
}
?> 
