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

// Configurações do banco de dados
$configs = [
    ['host' => 'localhost', 'user' => 'pinheir3', 'password' => '080880Gelboy', 'database' => 'pinheir3_controle_frotasV1.1'],
    ['host' => 'localhost', 'user' => 'root', 'password' => '080880Gelboy', 'database' => 'pinheir3_controle_frotasV1.1'],
    ['host' => 'localhost', 'user' => 'pinheir3', 'password' => '', 'database' => 'pinheir3_controle_frotasV1.1'],
    ['host' => 'localhost', 'user' => 'root', 'password' => '', 'database' => 'controle_frotas']
];

$pdo = null;
$configUsada = null;

// Tentar conectar
foreach ($configs as $config) {
    try {
        $pdo = new PDO(
            "mysql:host={$config['host']};dbname={$config['database']};charset=utf8mb4",
            $config['user'],
            $config['password'],
            [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
        );
        $configUsada = $config;
        break;
    } catch (PDOException $e) {
        continue;
    }
}

if (!$pdo) {
    echo json_encode(['erro' => 'Não foi possível conectar com o banco']);
    exit;
}

try {
    $acao = $_GET['acao'] ?? 'criar';
    
    if ($acao === 'criar') {
        // Coordenadas de exemplo em Brasília
        $coordenadas = [
            ['lat' => -15.7942, 'lng' => -47.8822, 'local' => 'Praça dos Três Poderes - Brasília'],
            ['lat' => -15.7801, 'lng' => -47.9292, 'local' => 'Aeroporto de Brasília'],
            ['lat' => -15.8267, 'lng' => -47.9218, 'local' => 'Lago Paranoá - Brasília'],
            ['lat' => -15.7217, 'lng' => -47.8967, 'local' => 'Universidade de Brasília'],
            ['lat' => -15.8007, 'lng' => -47.8919, 'local' => 'Estádio Nacional de Brasília']
        ];
        
        $coord = $coordenadas[array_rand($coordenadas)];
        
        // Inserir viagem de teste
        $sql = "
            INSERT INTO viagens (
                cliente, 
                motivo, 
                tecnico_id, 
                veiculo_id, 
                data_inicio, 
                latitude_inicial, 
                longitude_inicial, 
                km_inicial,
                trajeto
            ) VALUES (
                :cliente,
                :motivo,
                :tecnico_id,
                :veiculo_id,
                NOW(),
                :latitude_inicial,
                :longitude_inicial,
                :km_inicial,
                :trajeto
            )
        ";
        
        $trajeto = json_encode([
            [
                'latitude' => $coord['lat'],
                'longitude' => $coord['lng'],
                'timestamp' => date('Y-m-d H:i:s'),
                'velocidade' => 0,
                'precisao' => 10
            ]
        ]);
        
        $stmt = $pdo->prepare($sql);
        $result = $stmt->execute([
            'cliente' => 'Cliente Teste - ' . $coord['local'],
            'motivo' => 'Viagem de teste para rastreamento GPS',
            'tecnico_id' => 'TEC001',
            'veiculo_id' => 1,
            'latitude_inicial' => $coord['lat'],
            'longitude_inicial' => $coord['lng'],
            'km_inicial' => rand(10000, 50000),
            'trajeto' => $trajeto
        ]);
        
        if ($result) {
            $viagemId = $pdo->lastInsertId();
            
            echo json_encode([
                'sucesso' => true,
                'viagem_id' => $viagemId,
                'mensagem' => 'Viagem de teste criada com sucesso!',
                'coordenadas' => $coord,
                'timestamp' => date('Y-m-d H:i:s')
            ]);
        } else {
            echo json_encode(['erro' => 'Falha ao criar viagem']);
        }
        
    } elseif ($acao === 'limpar') {
        // Remover viagens de teste (que não têm data_fim)
        $sql = "DELETE FROM viagens WHERE cliente LIKE 'Cliente Teste%' AND data_fim IS NULL";
        $stmt = $pdo->prepare($sql);
        $result = $stmt->execute();
        
        $deletadas = $stmt->rowCount();
        
        echo json_encode([
            'sucesso' => true,
            'viagens_removidas' => $deletadas,
            'mensagem' => "Removidas $deletadas viagens de teste"
        ]);
        
    } elseif ($acao === 'listar') {
        // Listar viagens ativas
        $sql = "
            SELECT 
                id, 
                cliente, 
                motivo, 
                data_inicio,
                latitude_inicial, 
                longitude_inicial,
                TIMESTAMPDIFF(MINUTE, data_inicio, NOW()) as duracao_minutos
            FROM viagens 
            WHERE data_fim IS NULL 
            ORDER BY data_inicio DESC
        ";
        
        $stmt = $pdo->query($sql);
        $viagens = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        echo json_encode([
            'sucesso' => true,
            'viagens_ativas' => $viagens,
            'total' => count($viagens)
        ]);
    }
    
} catch (Exception $e) {
    echo json_encode([
        'erro' => true,
        'mensagem' => $e->getMessage(),
        'linha' => $e->getLine()
    ]);
}
?> 
