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

header('Content-Type: text/html; charset=utf-8');

echo "<h1>🏍️🚗 ATUALIZAÇÃO DO BANCO DE DADOS - SUPORTE A MOTO</h1>";
echo "<hr>";

try {
    $pdo = new PDO($dsn, $username, $password, $options);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "<h2>📊 ETAPA 1: Verificando estrutura atual</h2>";
    
    // Verificar se a coluna tipo_veiculo já existe
    $sql = "SHOW COLUMNS FROM checklist_veiculo LIKE 'tipo_veiculo'";
    $result = $pdo->query($sql)->fetch();
    
    if (!$result) {
        echo "<p>✅ Adicionando coluna tipo_veiculo...</p>";
        
        $sql = "ALTER TABLE checklist_veiculo 
                ADD COLUMN tipo_veiculo ENUM('CARRO', 'MOTO') NOT NULL DEFAULT 'CARRO' 
                AFTER veiculo_id";
        $pdo->exec($sql);
        
        echo "<p>✅ Coluna tipo_veiculo adicionada com sucesso!</p>";
        
        // Atualizar registros existentes
        $sql = "UPDATE checklist_veiculo SET tipo_veiculo = 'CARRO' WHERE tipo_veiculo = 'CARRO'";
        $pdo->exec($sql);
        echo "<p>✅ Registros existentes marcados como CARRO</p>";
        
    } else {
        echo "<p>ℹ️ Coluna tipo_veiculo já existe</p>";
    }
    
    echo "<h2>📊 ETAPA 2: Criando tabela de fotos</h2>";
    
    // Verificar se a tabela checklist_fotos existe
    $sql = "SHOW TABLES LIKE 'checklist_fotos'";
    $result = $pdo->query($sql)->fetch();
    
    if (!$result) {
        echo "<p>✅ Criando tabela checklist_fotos...</p>";
        
        $sql = "CREATE TABLE checklist_fotos (
            id INT AUTO_INCREMENT PRIMARY KEY,
            checklist_id INT NOT NULL,
            item_id VARCHAR(50) NOT NULL COMMENT 'ID do item do checklist',
            nome_arquivo VARCHAR(255) NOT NULL COMMENT 'Nome do arquivo da foto',
            caminho_arquivo VARCHAR(500) NOT NULL COMMENT 'Caminho completo da foto no servidor',
            descricao_problema TEXT COMMENT 'Descrição do problema da foto',
            tamanho_arquivo INT COMMENT 'Tamanho do arquivo em bytes',
            tipo_mime VARCHAR(100) DEFAULT 'image/jpeg',
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
            
            FOREIGN KEY (checklist_id) REFERENCES checklist_veiculo(id) ON DELETE CASCADE,
            INDEX idx_checklist_id (checklist_id),
            INDEX idx_item_id (item_id),
            INDEX idx_created_at (created_at)
        ) ENGINE=InnoDB 
          DEFAULT CHARSET=utf8mb4 
          COLLATE=utf8mb4_unicode_ci 
          COMMENT='Fotos dos problemas encontrados nos checklists'";
          
        $pdo->exec($sql);
        echo "<p>✅ Tabela checklist_fotos criada com sucesso!</p>";
        
    } else {
        echo "<p>ℹ️ Tabela checklist_fotos já existe</p>";
    }
    
    echo "<h2>📊 ETAPA 3: Criando diretório para fotos</h2>";
    
    $diretorioFotos = __DIR__ . '/uploads/checklist-fotos';
    $diretorioAno = $diretorioFotos . '/' . date('Y');
    $diretorioMes = $diretorioAno . '/' . date('m');
    
    if (!file_exists($diretorioFotos)) {
        mkdir($diretorioFotos, 0755, true);
        echo "<p>✅ Diretório base criado: $diretorioFotos</p>";
    }
    
    if (!file_exists($diretorioAno)) {
        mkdir($diretorioAno, 0755, true);
        echo "<p>✅ Diretório do ano criado: $diretorioAno</p>";
    }
    
    if (!file_exists($diretorioMes)) {
        mkdir($diretorioMes, 0755, true);
        echo "<p>✅ Diretório do mês criado: $diretorioMes</p>";
    } else {
        echo "<p>ℹ️ Diretórios já existem</p>";
    }
    
    echo "<h2>📊 ETAPA 4: Verificando estrutura final</h2>";
    
    // Mostrar estrutura da tabela checklist_veiculo
    echo "<h3>Estrutura checklist_veiculo:</h3>";
    $sql = "DESCRIBE checklist_veiculo";
    $result = $pdo->query($sql);
    echo "<table border='1' cellpadding='5'>";
    echo "<tr><th>Campo</th><th>Tipo</th><th>Nulo</th><th>Chave</th><th>Padrão</th></tr>";
    while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
        echo "<tr>";
        echo "<td>{$row['Field']}</td>";
        echo "<td>{$row['Type']}</td>";
        echo "<td>{$row['Null']}</td>";
        echo "<td>{$row['Key']}</td>";
        echo "<td>{$row['Default']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // Mostrar estrutura da tabela checklist_fotos
    echo "<h3>Estrutura checklist_fotos:</h3>";
    $sql = "DESCRIBE checklist_fotos";
    $result = $pdo->query($sql);
    echo "<table border='1' cellpadding='5'>";
    echo "<tr><th>Campo</th><th>Tipo</th><th>Nulo</th><th>Chave</th><th>Padrão</th></tr>";
    while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
        echo "<tr>";
        echo "<td>{$row['Field']}</td>";
        echo "<td>{$row['Type']}</td>";
        echo "<td>{$row['Null']}</td>";
        echo "<td>{$row['Key']}</td>";
        echo "<td>{$row['Default']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    echo "<h2>📊 ETAPA 5: Estatísticas atuais</h2>";
    
    $sql = "SELECT 
                tipo_veiculo,
                COUNT(*) as total
            FROM checklist_veiculo 
            GROUP BY tipo_veiculo";
    $result = $pdo->query($sql);
    
    echo "<h3>Checklists por tipo:</h3>";
    echo "<table border='1' cellpadding='5'>";
    echo "<tr><th>Tipo Veículo</th><th>Total</th></tr>";
    while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
        echo "<tr>";
        echo "<td>{$row['tipo_veiculo']}</td>";
        echo "<td>{$row['total']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    $sql = "SELECT COUNT(*) as total_fotos FROM checklist_fotos";
    $result = $pdo->query($sql);
    $totalFotos = $result->fetch()['total_fotos'];
    
    echo "<h3>Total de fotos: $totalFotos</h3>";
    
    echo "<h2>🎉 ATUALIZAÇÃO CONCLUÍDA COM SUCESSO!</h2>";
    echo "<div style='background: #dff0d8; padding: 15px; border: 1px solid #d6e9c6; border-radius: 5px;'>";
    echo "<h3>✅ O que foi implementado:</h3>";
    echo "<ul>";
    echo "<li>🏍️ Suporte para checklists de MOTO</li>";
    echo "<li>🚗 Manutenção dos checklists de CARRO existentes</li>";
    echo "<li>📷 Sistema de fotos para problemas</li>";
    echo "<li>💾 Estrutura de banco atualizada</li>";
    echo "<li>📁 Diretórios para armazenamento criados</li>";
    echo "</ul>";
    echo "<h3>🔧 Próximos passos:</h3>";
    echo "<ul>";
    echo "<li>Testar nova API v3</li>";
    echo "<li>Atualizar app Android</li>";
    echo "<li>Implementar seleção de tipo obrigatória</li>";
    echo "<li>Testar upload de fotos</li>";
    echo "</ul>";
    echo "</div>";
    
} catch (PDOException $e) {
    echo "<div style='background: #f2dede; padding: 15px; border: 1px solid #ebccd1; border-radius: 5px;'>";
    echo "<h3>❌ Erro na atualização:</h3>";
    echo "<p>" . htmlspecialchars($e->getMessage()) . "</p>";
    echo "</div>";
}
?> 
