<?php
/**
 * API para Listar Solicitações de Viagem - Versão Simplificada
 */

header('Content-Type: application/json');

// Configuração básica de conexão
$host = 'localhost';
$dbname = 'pinheir3_controle_frotasV1.1';
$username = 'pinheir3_admin';
$password = '080880Gelboy';

// Função para conectar ao banco
function getConnection() {
    global $host, $dbname, $username, $password;
    
    try {
        $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $pdo;
    } catch (Exception $e) {
        return null;
    }
}

// Função para enviar resposta de sucesso
function sendSuccess($data, $message = 'Sucesso') {
    echo json_encode([
        'success' => true,
        'timestamp' => date('Y-m-d H:i:s'),
        'message' => $message,
        'data' => $data
    ]);
    exit;
}

// Função para enviar resposta de erro
function sendError($message, $code = 400) {
    http_response_code($code);
    echo json_encode([
        'success' => false,
        'timestamp' => date('Y-m-d H:i:s'),
        'message' => $message
    ]);
    exit;
}

// Verificar método HTTP
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
    sendError('Método não permitido', 405);
}

try {
    // Conectar ao banco
    $pdo = getConnection();
    if (!$pdo) {
        sendError('Erro de conexão com banco de dados', 500);
    }

    // Listar solicitações pendentes
    $sql = "SELECT 
                sv.*,
                v.modelo as veiculo_modelo,
                v.placa as veiculo_placa,
                m.nome as motorista_nome,
                TIMESTAMPDIFF(MINUTE, sv.created_at, NOW()) as tempo_espera_minutos
            FROM solicitacoes_viagem sv
            LEFT JOIN veiculos v ON sv.veiculo_id = v.id
            LEFT JOIN motoristas m ON sv.tecnico_id = m.id
            WHERE sv.status = 'pendente'
            ORDER BY sv.created_at DESC";

    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $solicitacoes = $stmt->fetchAll(PDO::FETCH_ASSOC);

    sendSuccess([
        'solicitacoes' => $solicitacoes,
        'total' => count($solicitacoes)
    ]);

} catch (Exception $e) {
    sendError('Erro interno: ' . $e->getMessage(), 500);
}
?> 
