<?php
/**
 * Script para crear tabla de usuarios y usuario admin por defecto
 */

require_once __DIR__ . '/database.php';

try {
    $pdo = getDB();

    // Crear tabla de usuarios
    $sql = "CREATE TABLE IF NOT EXISTS usuarios (
        id_usuario INT AUTO_INCREMENT PRIMARY KEY,
        username VARCHAR(50) NOT NULL UNIQUE,
        password VARCHAR(255) NOT NULL,
        nombre_completo VARCHAR(100) NOT NULL,
        email VARCHAR(100),
        rol ENUM('admin', 'usuario') DEFAULT 'usuario',
        activo TINYINT(1) DEFAULT 1,
        ultimo_acceso DATETIME,
        fecha_creacion DATETIME DEFAULT CURRENT_TIMESTAMP,
        INDEX idx_username (username),
        INDEX idx_activo (activo)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    COMMENT='Usuarios del sistema SSOMA'";

    $pdo->exec($sql);
    echo "✓ Tabla usuarios creada exitosamente\n";

    // Crear usuario admin por defecto
    // Password: admin (hasheado con password_hash)
    $username = 'admin';
    $password = password_hash('admin', PASSWORD_DEFAULT);
    $nombre_completo = 'Administrador del Sistema';

    // Verificar si ya existe
    $stmt = $pdo->prepare("SELECT COUNT(*) FROM usuarios WHERE username = ?");
    $stmt->execute([$username]);

    if ($stmt->fetchColumn() > 0) {
        echo "✓ Usuario admin ya existe\n";
    } else {
        $stmt = $pdo->prepare("INSERT INTO usuarios (username, password, nombre_completo, rol) VALUES (?, ?, ?, 'admin')");
        $stmt->execute([$username, $password, $nombre_completo]);
        echo "✓ Usuario admin creado exitosamente\n";
        echo "  - Usuario: admin\n";
        echo "  - Contraseña: admin\n";
    }

    // Crear usuario topico
    // Password: topico (hasheado con password_hash)
    $username_topico = 'topico';
    $password_topico = password_hash('topico', PASSWORD_DEFAULT);
    $nombre_completo_topico = 'Usuario Topico';

    // Verificar si ya existe
    $stmt = $pdo->prepare("SELECT COUNT(*) FROM usuarios WHERE username = ?");
    $stmt->execute([$username_topico]);

    if ($stmt->fetchColumn() > 0) {
        echo "✓ Usuario topico ya existe\n";
    } else {
        $stmt = $pdo->prepare("INSERT INTO usuarios (username, password, nombre_completo, rol) VALUES (?, ?, ?, 'usuario')");
        $stmt->execute([$username_topico, $password_topico, $nombre_completo_topico]);
        echo "✓ Usuario topico creado exitosamente\n";
        echo "  - Usuario: topico\n";
        echo "  - Contraseña: topico\n";
    }

    echo "\n✅ Sistema de autenticación instalado correctamente\n";

} catch (PDOException $e) {
    echo "✗ Error: " . $e->getMessage() . "\n";
    exit(1);
}
?>
