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

echo "<h1>Criação da Tabela Solicitações</h1>";

try {
    $pdo = Database::getConnection();
    
    echo "<h2>1. Verificando se a tabela existe</h2>";
    
    $stmt = $pdo->query("SHOW TABLES LIKE 'solicitacoes'");
    $existe = $stmt->fetch();
    
    if ($existe) {
        echo "<p style='color: green;'>✅ Tabela 'solicitacoes' já existe</p>";
        
        // Mostrar estrutura atual
        $stmt = $pdo->query("DESCRIBE solicitacoes");
        $colunas = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        echo "<h3>Estrutura atual:</h3>";
        echo "<table border='1' style='border-collapse: collapse;'>";
        echo "<tr><th>Campo</th><th>Tipo</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th></tr>";
        foreach ($colunas as $coluna) {
            echo "<tr>";
            echo "<td>{$coluna['Field']}</td>";
            echo "<td>{$coluna['Type']}</td>";
            echo "<td>{$coluna['Null']}</td>";
            echo "<td>{$coluna['Key']}</td>";
            echo "<td>{$coluna['Default']}</td>";
            echo "<td>{$coluna['Extra']}</td>";
            echo "</tr>";
        }
        echo "</table>";
        
    } else {
        echo "<p style='color: orange;'>⚠️ Tabela 'solicitacoes' não existe. Criando...</p>";
        
        // SQL para criar a tabela
        $sql = "CREATE TABLE solicitacoes (
            id INT AUTO_INCREMENT PRIMARY KEY,
            cliente_id INT,
            motorista_id INT,
            veiculo_id INT,
            gestor_id INT,
            motivo TEXT NOT NULL,
            status ENUM('pendente', 'aprovada', 'negada') DEFAULT 'pendente',
            prioridade ENUM('baixa', 'normal', 'alta') DEFAULT 'normal',
            observacoes TEXT,
            data_solicitacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            data_resposta TIMESTAMP NULL,
            FOREIGN KEY (cliente_id) REFERENCES clientes(id),
            FOREIGN KEY (motorista_id) REFERENCES motoristas(id),
            FOREIGN KEY (veiculo_id) REFERENCES veiculos(id),
            FOREIGN KEY (gestor_id) REFERENCES gestores(id)
        )";
        
        $pdo->exec($sql);
        echo "<p style='color: green;'>✅ Tabela 'solicitacoes' criada com sucesso!</p>";
    }
    
    echo "<h2>2. Verificando dados de teste</h2>";
    
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM solicitacoes");
    $total = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
    
    if ($total == 0) {
        echo "<p>Nenhum registro encontrado. Criando dados de teste...</p>";
        
        // Buscar IDs existentes
        $stmt = $pdo->query("SELECT id FROM clientes LIMIT 1");
        $cliente = $stmt->fetch(PDO::FETCH_ASSOC);
        
        $stmt = $pdo->query("SELECT id FROM motoristas LIMIT 1");
        $motorista = $stmt->fetch(PDO::FETCH_ASSOC);
        
        $stmt = $pdo->query("SELECT id FROM veiculos LIMIT 1");
        $veiculo = $stmt->fetch(PDO::FETCH_ASSOC);
        
        $stmt = $pdo->query("SELECT id FROM gestores LIMIT 1");
        $gestor = $stmt->fetch(PDO::FETCH_ASSOC);
        
        if ($cliente && $motorista && $veiculo && $gestor) {
            $solicitacoes = [
                [
                    'cliente_id' => $cliente['id'],
                    'motorista_id' => $motorista['id'],
                    'veiculo_id' => $veiculo['id'],
                    'gestor_id' => $gestor['id'],
                    'motivo' => 'Viagem para entrega de mercadorias',
                    'status' => 'aprovada',
                    'prioridade' => 'alta',
                    'observacoes' => 'Solicitação aprovada pelo gestor'
                ],
                [
                    'cliente_id' => $cliente['id'],
                    'motorista_id' => $motorista['id'],
                    'veiculo_id' => $veiculo['id'],
                    'gestor_id' => $gestor['id'],
                    'motivo' => 'Transporte de funcionários',
                    'status' => 'negada',
                    'prioridade' => 'normal',
                    'observacoes' => 'Solicitação negada - veículo indisponível'
                ],
                [
                    'cliente_id' => $cliente['id'],
                    'motorista_id' => $motorista['id'],
                    'veiculo_id' => $veiculo['id'],
                    'gestor_id' => $gestor['id'],
                    'motivo' => 'Coleta de materiais',
                    'status' => 'aprovada',
                    'prioridade' => 'normal',
                    'observacoes' => 'Solicitação aprovada'
                ]
            ];
            
            $stmt = $pdo->prepare("INSERT INTO solicitacoes (cliente_id, motorista_id, veiculo_id, gestor_id, motivo, status, prioridade, observacoes, data_solicitacao, data_resposta) VALUES (?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW())");
            
            foreach ($solicitacoes as $solicitacao) {
                $stmt->execute([
                    $solicitacao['cliente_id'],
                    $solicitacao['motorista_id'],
                    $solicitacao['veiculo_id'],
                    $solicitacao['gestor_id'],
                    $solicitacao['motivo'],
                    $solicitacao['status'],
                    $solicitacao['prioridade'],
                    $solicitacao['observacoes']
                ]);
            }
            
            echo "<p style='color: green;'>✅ Dados de teste criados com sucesso!</p>";
        } else {
            echo "<p style='color: red;'>❌ Erro: Dados necessários não encontrados no banco</p>";
            echo "<p>Certifique-se de que existem registros nas tabelas: clientes, motoristas, veiculos, gestores</p>";
        }
    } else {
        echo "<p>Total de registros existentes: $total</p>";
    }
    
    echo "<h2>3. Testando API</h2>";
    
    // Testar se a API funciona agora
    $url = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/admin/api-monitoramento.php?acao=listar&pagina=1&itens_por_pagina=5";
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    echo "HTTP Code: $httpCode<br>";
    
    if ($response) {
        $data = json_decode($response, true);
        if ($data && isset($data['success']) && $data['success']) {
            echo "<p style='color: green;'>✅ API funcionando corretamente!</p>";
            echo "Total de solicitações: " . ($data['data']['total'] ?? 'N/A') . "<br>";
        } else {
            echo "<p style='color: red;'>❌ API retornou erro</p>";
        }
    } else {
        echo "<p style='color: red;'>❌ API não respondeu</p>";
    }
    
    echo "<h2>4. Links para teste</h2>";
    echo "<ul>";
    echo "<li><a href='https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/admin/monitoramento-solicitacoes.html' target='_blank'>Tela de Monitoramento</a></li>";
    echo "<li><a href='$url' target='_blank'>API Direta</a></li>";
    echo "</ul>";
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro: " . $e->getMessage() . "</p>";
}
?> 
