<?php
/**
 * API para Buscar Histórico de Solicitações
 */

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;
}

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

    // Buscar todas as solicitações com dados completos
    $sql = "SELECT 
                sv.id,
                sv.tecnico_id,
                m.nome as tecnico_nome,
                sv.veiculo_id,
                v.modelo as veiculo_modelo,
                v.placa as veiculo_placa,
                sv.cliente,
                sv.motivo,
                sv.km_inicial,
                sv.latitude_inicial,
                sv.longitude_inicial,
                sv.endereco_inicial,
                sv.cliente_id,
                sv.status,
                sv.observacoes,
                sv.prioridade,
                sv.created_at,
                sv.updated_at,
                TIMESTAMPDIFF(MINUTE, sv.created_at, NOW()) as tempo_espera_minutos
            FROM solicitacoes_viagem sv
            LEFT JOIN motoristas m ON sv.tecnico_id = m.id
            LEFT JOIN veiculos v ON sv.veiculo_id = v.id
            ORDER BY sv.created_at DESC";

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

    // Estatísticas
    $total = count($solicitacoes);
    $aprovadas = count(array_filter($solicitacoes, function($s) { return $s['status'] === 'aprovada'; }));
    $negadas = count(array_filter($solicitacoes, function($s) { return $s['status'] === 'negada'; }));
    $pendentes = count(array_filter($solicitacoes, function($s) { return $s['status'] === 'pendente'; }));

    // Resposta de sucesso
    sendSuccess([
        'solicitacoes' => $solicitacoes,
        'estatisticas' => [
            'total' => $total,
            'aprovadas' => $aprovadas,
            'negadas' => $negadas,
            'pendentes' => $pendentes
        ]
    ]);

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