<?php
require_once '../includes/config.php';
require_once '../includes/db.php';
require_once '../includes/theme_only.php'; // Agregar esta línea

session_start();
// Verificar si el usuario está logueado y es admin
if (!isset($_SESSION['usuario_id']) || empty($_SESSION['usuario_id']) || $_SESSION['rol'] !== 'admin') {
    header('Location: ../login.php');
    exit;
}

$db = new Database();

// Obtener configuración
$configSql = "SELECT color_principal, color_secundario, favicon FROM configuracion LIMIT 1";
$config = $db->query($configSql)->fetch(PDO::FETCH_ASSOC);

// Verificar si se proporcionó un ID de usuario
if (!isset($_GET['id'])) {
    header('Location: usuarios.php');
    exit;
}

$usuario_id = $_GET['id'];

// Obtener datos del usuario
$stmt = $db->prepare("SELECT * FROM usuarios WHERE id = ?");
$stmt->execute([$usuario_id]);
$usuario = $stmt->fetch(PDO::FETCH_ASSOC);

// Agregar estas líneas para debug:
if (!$usuario) {
    die("Usuario no encontrado");
}

// Para verificar los datos que se están obteniendo
echo "<!-- Debug: ";
print_r($usuario);
echo " -->";

if (!$usuario) {
    header('Location: usuarios.php');
    exit;
}

$mensaje = '';
$error = '';

// Script para verificar y crear el campo documento si no existe
try {
    // Verificar si la columna existe
    $checkColumn = "SHOW COLUMNS FROM usuarios LIKE 'documento'";
    $columnExists = $db->query($checkColumn)->fetch();

    if (!$columnExists) {
        // La columna no existe, la creamos
        $createColumn = "ALTER TABLE usuarios ADD COLUMN documento VARCHAR(20) AFTER email";
        $db->query($createColumn);
        
        // Log o mensaje de éxito
        error_log('Campo documento creado exitosamente en la tabla usuarios');
    }
} catch (PDOException $e) {
    // Log del error
    error_log('Error al verificar/crear campo documento: ' . $e->getMessage());
}

// Procesar formulario
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $nombre = trim($_POST['nombre']);
    $email = trim($_POST['email']);
    $documento = trim($_POST['documento'] ?? ''); // Agregar documento
    $rol = $_POST['rol'];
    $nueva_password = trim($_POST['nueva_password']);
    $estado = isset($_POST['estado']) ? 1 : 0; // Agregar esta línea

    if (empty($nombre) || empty($email)) {
        $error = 'Los campos nombre y email son obligatorios';
    } else {
        try {
            $sql = "UPDATE usuarios SET nombre = ?, email = ?, documento = ?, rol = ?, estado = ?"; // Modificar SQL
            $params = [$nombre, $email, $documento, $rol, $estado];

            // Si se proporcionó una nueva contraseña, actualizarla (sin hashear)
            if (!empty($nueva_password)) {
                $sql .= ", password = ?";
                $params[] = $nueva_password;
            }

            $sql .= " WHERE id = ?";
            $params[] = $usuario_id;

            $stmt = $db->prepare($sql);
            $stmt->execute($params);

            // Implementar PRG pattern
            $_SESSION['mensaje'] = 'Usuario actualizado correctamente';
            header('Location: ' . $_SERVER['PHP_SELF'] . '?id=' . $usuario_id);
            exit;
        } catch (PDOException $e) {
            $error = 'Error al actualizar el usuario';
        }
    }
}

// Recuperar mensaje de sesión si existe
if (isset($_SESSION['mensaje'])) {
    $mensaje = $_SESSION['mensaje'];
    unset($_SESSION['mensaje']);
}

// Antes del DOCTYPE, agregar:
echo getThemeCSS();
?>
<!DOCTYPE html>
<html lang="es">
<head>
<?php
    // Modo oscuro
    require_once '../includes/dark_mode.php';
    ?>
    <meta name="color-scheme" content="light dark">
    <?php echo getDarkModeStyles(); ?>

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Editar Usuario</title>
    <link rel="shortcut icon" href="../uploads/config/<?php echo htmlspecialchars($config['favicon']); ?>">
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <style>
        h1 {
            color: <?php echo $config['color_principal']; ?>;
            margin-bottom: 1.5rem;
        }
        .form-label {
            color: <?php echo $config['color_secundario']; ?>;
            font-weight: 500;
        }
        .btn-primary {
            background-color: <?php echo $config['color_principal']; ?>;
            border-color: <?php echo $config['color_principal']; ?>;
        }
        .btn-secondary {
            background-color: <?php echo $config['color_secundario']; ?>;
            border-color: <?php echo $config['color_secundario']; ?>;
        }
        .form-control:focus {
            border-color: <?php echo $config['color_principal']; ?>;
            box-shadow: 0 0 0 0.25rem <?php echo $config['color_principal']; ?>40;
        }
        .form-select:focus {
            border-color: <?php echo $config['color_principal']; ?>;
            box-shadow: 0 0 0 0.25rem <?php echo $config['color_principal']; ?>40;
        }
        .form-grid {
            display: grid;
            gap: 1rem;
        }
        @media (min-width: 768px) {
            .form-grid {
                grid-template-columns: 1fr 1fr;
            }
        }
    </style>
</head>
<body>
    <div class="container mt-5">
        <h1>Editar Usuario</h1>
        
        <?php if ($mensaje): ?>
            <div class="alert alert-success"><?php echo htmlspecialchars($mensaje); ?></div>
        <?php endif; ?>
        
        <?php if ($error): ?>
            <div class="alert alert-danger"><?php echo htmlspecialchars($error); ?></div>
        <?php endif; ?>

        <form method="POST">
            <div class="form-grid">
                <div class="mb-3">
                    <label for="nombre" class="form-label">Nombre</label>
                    <input type="text" class="form-control" id="nombre" name="nombre" value="<?php echo htmlspecialchars($usuario['nombre']); ?>" required>
                </div>
                
                <div class="mb-3">
                    <label for="email" class="form-label">Email</label>
                    <input type="email" class="form-control" id="email" name="email" value="<?php echo htmlspecialchars($usuario['email']); ?>" required>
                </div>
                
                <div class="mb-3">
                    <label for="documento" class="form-label">Documento</label>
                    <input type="text" class="form-control" id="documento" name="documento" value="<?php echo htmlspecialchars($usuario['documento']); ?>">
                </div>
                
                <div class="mb-3">
                    <label for="rol" class="form-label">Rol</label>
                    <select class="form-select" id="rol" name="rol">
                        <option value="admin" <?php echo $usuario['rol'] === 'admin' ? 'selected' : ''; ?>>Administrador</option>
                        <option value="vendedor" <?php echo $usuario['rol'] === 'vendedor' ? 'selected' : ''; ?>>Vendedor</option>
                        <option value="cobrador" <?php echo $usuario['rol'] === 'cobrador' ? 'selected' : ''; ?>>Cobrador</option>
                        <option value="registrador_de_productos" <?php echo $usuario['rol'] === 'registrador_de_productos' ? 'selected' : ''; ?>>Registrador de Productos</option>
                    </select>
                </div>
                
                <div class="mb-3">
                    <label for="nueva_password" class="form-label">Nueva Contraseña</label>
                    <input type="password" class="form-control" id="nueva_password" name="nueva_password">
                </div>

                <div class="mb-3">
                    <div class="form-check form-switch">
                        <input class="form-check-input" type="checkbox" id="estado" name="estado" <?php echo $usuario['estado'] ? 'checked' : ''; ?>>
                        <label class="form-check-label" for="estado">Usuario Activo</label>
                    </div>
                </div>
            </div>
            
            <div class="mt-4">
                <button type="submit" class="btn btn-primary">Guardar Cambios</button>
                <a href="usuarios.php" class="btn btn-secondary">Volver</a>
            </div>
        </form>
    </div>

    <script src="js/bootstrap.bundle.min.js"></script>
</body>
</html>
