<?php
// Script para adicionar a coluna 'km_real' na tabela solicitacoes_rotas
require_once 'config/database.php';

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

try {
    $pdo = conectarBanco();
    
    echo "=== ADICIONAR COLUNA KM_REAL EM SOLICITACOES_ROTAS ===\n\n";
    
    // 1. Verificar se a coluna já existe
    echo "1. VERIFICANDO COLUNA 'km_real':\n";
    $stmt = $pdo->query("SHOW COLUMNS FROM solicitacoes_rotas LIKE 'km_real'");
    $coluna = $stmt->fetch();
    
    if ($coluna) {
        echo "✅ Coluna 'km_real' já existe!\n";
        echo "- Tipo: {$coluna['Type']}\n";
        echo "- Null: {$coluna['Null']}\n";
        echo "- Default: {$coluna['Default']}\n";
    } else {
        echo "❌ Coluna 'km_real' não existe. Adicionando...\n";
        
        // 2. Adicionar a coluna km_real
        $stmt = $pdo->prepare("
            ALTER TABLE solicitacoes_rotas 
            ADD COLUMN km_real INT NULL DEFAULT NULL 
            COMMENT 'KM real percorrido na rota'
        ");
        $stmt->execute();
        
        echo "✅ Coluna 'km_real' adicionada com sucesso!\n";
    }
    
    // 3. Verificar se a coluna diferenca_km_calculada existe
    echo "\n2. VERIFICANDO COLUNA 'diferenca_km_calculada':\n";
    $stmt = $pdo->query("SHOW COLUMNS FROM solicitacoes_rotas LIKE 'diferenca_km_calculada'");
    $coluna = $stmt->fetch();
    
    if ($coluna) {
        echo "✅ Coluna 'diferenca_km_calculada' já existe!\n";
    } else {
        echo "❌ Coluna 'diferenca_km_calculada' não existe. Adicionando...\n";
        
        $stmt = $pdo->prepare("
            ALTER TABLE solicitacoes_rotas 
            ADD COLUMN diferenca_km_calculada INT NULL DEFAULT NULL 
            COMMENT 'Diferença entre KM real e KM estimado'
        ");
        $stmt->execute();
        
        echo "✅ Coluna 'diferenca_km_calculada' adicionada com sucesso!\n";
    }
    
    // 4. Verificar se a coluna justificativa_km existe
    echo "\n3. VERIFICANDO COLUNA 'justificativa_km':\n";
    $stmt = $pdo->query("SHOW COLUMNS FROM solicitacoes_rotas LIKE 'justificativa_km'");
    $coluna = $stmt->fetch();
    
    if ($coluna) {
        echo "✅ Coluna 'justificativa_km' já existe!\n";
    } else {
        echo "❌ Coluna 'justificativa_km' não existe. Adicionando...\n";
        
        $stmt = $pdo->prepare("
            ALTER TABLE solicitacoes_rotas 
            ADD COLUMN justificativa_km TEXT NULL DEFAULT NULL 
            COMMENT 'Justificativa para diferença de KM'
        ");
        $stmt->execute();
        
        echo "✅ Coluna 'justificativa_km' adicionada com sucesso!\n";
    }
    
    // 5. Verificar se a coluna observacoes_finais existe
    echo "\n4. VERIFICANDO COLUNA 'observacoes_finais':\n";
    $stmt = $pdo->query("SHOW COLUMNS FROM solicitacoes_rotas LIKE 'observacoes_finais'");
    $coluna = $stmt->fetch();
    
    if ($coluna) {
        echo "✅ Coluna 'observacoes_finais' já existe!\n";
    } else {
        echo "❌ Coluna 'observacoes_finais' não existe. Adicionando...\n";
        
        $stmt = $pdo->prepare("
            ALTER TABLE solicitacoes_rotas 
            ADD COLUMN observacoes_finais TEXT NULL DEFAULT NULL 
            COMMENT 'Observações finais da rota'
        ");
        $stmt->execute();
        
        echo "✅ Coluna 'observacoes_finais' adicionada com sucesso!\n";
    }
    
    // 6. Verificar estrutura final
    echo "\n5. ESTRUTURA FINAL DA TABELA:\n";
    $stmt = $pdo->query("DESCRIBE solicitacoes_rotas");
    $colunas = $stmt->fetchAll();
    
    foreach ($colunas as $coluna) {
        echo "- {$coluna['Field']}: {$coluna['Type']} {$coluna['Null']} {$coluna['Key']} {$coluna['Default']}\n";
    }
    
    // 7. Verificar dados de exemplo
    echo "\n6. DADOS DE EXEMPLO:\n";
    $stmt = $pdo->query("SELECT id, titulo, km_estimado, km_real, status FROM solicitacoes_rotas ORDER BY id DESC LIMIT 3");
    $exemplos = $stmt->fetchAll();
    
    foreach ($exemplos as $exemplo) {
        echo "- ID: {$exemplo['id']}, Título: '{$exemplo['titulo']}', KM Estimado: {$exemplo['km_estimado']}, KM Real: " . ($exemplo['km_real'] ?? 'NULL') . ", Status: '{$exemplo['status']}'\n";
    }
    
    echo "\n=== FIM DA CORREÇÃO ===\n";
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "\n";
}
?>
