<?php
// Script para ejecutar la migración de img_cover
// Este script debe ejecutarse en producción para agregar el campo img_cover

// Configuración de la base de datos (ajustar según producción)
$db_config = [
    'hostname' => 'localhost',
    'port' => '5432',
    'database' => 'registrochamba_db', // Ajustar nombre real
    'username' => 'postgres',         // Ajustar usuario real
    'password' => 'password'          // Ajustar contraseña real
];

try {
    // Conectar a PostgreSQL
    $dsn = "pgsql:host=" . $db_config['hostname'] . ";port=" . $db_config['port'] . ";dbname=" . $db_config['database'];
    $pdo = new PDO($dsn, $db_config['username'], $db_config['password']);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "Conectado a la base de datos PostgreSQL\n";
    
    // SQL de migración directo
    $migration_sql = "
        -- Verificar si la columna existe antes de agregarla
        DO \$\$
        BEGIN
            IF NOT EXISTS (
                SELECT 1 
                FROM information_schema.columns 
                WHERE 
                    table_schema = 'public' 
                    AND table_name = 'tbl_usuarios' 
                    AND column_name = 'img_cover'
            ) THEN
                -- Agregar la columna img_cover
                ALTER TABLE tbl_usuarios 
                ADD COLUMN img_cover VARCHAR(255) NULL;
                
                -- Agregar comentario descriptivo
                COMMENT ON COLUMN tbl_usuarios.img_cover IS 'Ruta de la imagen de cover del perfil de comunidad';
                
                -- Crear índice para mejor rendimiento
                CREATE INDEX IF NOT EXISTS idx_tbl_usuarios_img_cover 
                ON tbl_usuarios(img_cover);
                
                RAISE NOTICE 'Campo img_cover agregado exitosamente a tbl_usuarios';
            ELSE
                RAISE NOTICE 'El campo img_cover ya existe en tbl_usuarios';
            END IF;
        END \$\$;
    ";
    
    echo "Ejecutando migración...\n";
    $pdo->exec($migration_sql);
    echo "Migración completada exitosamente\n";
    
    // Verificar que el campo existe
    $check_sql = "
        SELECT column_name, data_type, character_maximum_length, is_nullable
        FROM information_schema.columns 
        WHERE 
            table_schema = 'public' 
            AND table_name = 'tbl_usuarios' 
            AND column_name = 'img_cover'
    ";
    
    $result = $pdo->query($check_sql);
    $column = $result->fetch(PDO::FETCH_ASSOC);
    
    if ($column) {
        echo "Campo img_cover verificado:\n";
        echo "- Columna: " . $column['column_name'] . "\n";
        echo "- Tipo: " . $column['data_type'] . "\n";
        echo "- Longitud máxima: " . $column['character_maximum_length'] . "\n";
        echo "- Nulable: " . $column['is_nullable'] . "\n";
    } else {
        echo "ERROR: El campo img_cover no se encuentra después de la migración\n";
    }
    
} catch (Exception $e) {
    echo "ERROR: " . $e->getMessage() . "\n";
    echo "Línea: " . $e->getLine() . "\n";
}
?>
