<?php
/**
 * Impersonate - Acessar como Usuário
 * Permite ao Super Admin acessar o sistema como outro usuário
 */
require_once __DIR__ . '/../../../includes/config.php';

if (!isSuperAdmin()) {
    header('Location: /pages/login.php');
    exit;
}

$pdo = getDB();
$userId = $_GET['user_id'] ?? null;

if (empty($userId)) {
    $_SESSION['flash_error'] = 'ID do usuário não informado';
    header('Location: index.php');
    exit;
}

// Buscar usuário
$stmt = $pdo->prepare("
    SELECT u.*, s.subdomain, s.name as store_name
    FROM users u
    LEFT JOIN stores s ON u.store_id = s.id
    WHERE u.id = ?
");
$stmt->execute([$userId]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$user) {
    $_SESSION['flash_error'] = 'Usuário não encontrado';
    header('Location: index.php');
    exit;
}

if (empty($user['store_id'])) {
    $_SESSION['flash_error'] = 'Este usuário não possui loja vinculada';
    header('Location: index.php');
    exit;
}

// Salvar sessão original do superadmin para poder voltar
$_SESSION['superadmin_original'] = [
    'superadmin_id' => $_SESSION['superadmin_id'] ?? null,
    'superadmin_email' => $_SESSION['superadmin_email'] ?? null,
    'superadmin_name' => $_SESSION['superadmin_name'] ?? null,
    'return_url' => '/pages/superadmin/users/index.php'
];

// Criar sessão como se fosse o usuário
$_SESSION['user_id'] = $user['id'];
$_SESSION['user_name'] = $user['name'];
$_SESSION['user_email'] = $user['email'];
$_SESSION['user_role'] = $user['role'];
$_SESSION['store_id'] = $user['store_id'];
$_SESSION['store_subdomain'] = $user['subdomain'];
$_SESSION['store_name'] = $user['store_name'];
$_SESSION['is_impersonating'] = true;

// Redirecionar para o dashboard da loja
$redirectUrl = '/pages/admin/';

// Se a loja tiver subdomínio, redirecionar para lá
if (!empty($user['subdomain'])) {
    $redirectUrl = 'https://' . $user['subdomain'] . '.duolead.com.br/pages/admin/';
}

header('Location: ' . $redirectUrl);
exit;
