<?php requireAdmin(); $message = '';
if (isset($_GET['toggle']) && is_numeric($_GET['toggle'])) { try { $pdo->prepare("UPDATE " . DB_PREFIX . "users SET status = IF(status='active', 'blocked', 'active') WHERE id = ? AND id != ?")->execute([$_GET['toggle'], $_SESSION['user_id']]); $message = ['type' => 'success', 'text' => 'Статус изменен']; } catch (Exception $e) { $message = ['type' => 'error', 'text' => 'Ошибка']; } }
if (isset($_GET['delete']) && is_numeric($_GET['delete'])) { try { $pdo->prepare("DELETE FROM " . DB_PREFIX . "users WHERE id = ? AND id != ?")->execute([$_GET['delete'], $_SESSION['user_id']]); $message = ['type' => 'success', 'text' => 'Пользователь удален']; } catch (Exception $e) { $message = ['type' => 'error', 'text' => 'Ошибка']; } }
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $login = trim($_POST['login'] ?? ''); $email = trim($_POST['email'] ?? ''); $password = $_POST['password'] ?? ''; $role = $_POST['role'] ?? 'manager';
    if (empty($login) || empty($email) || empty($password)) { $message = ['type' => 'error', 'text' => 'Заполните все поля']; }
    elseif (strlen($password) < 6) { $message = ['type' => 'error', 'text' => 'Пароль минимум 6 символов']; }
    else { try { $pdo->prepare("INSERT INTO " . DB_PREFIX . "users (login, email, password, role, status) VALUES (?, ?, ?, ?, 'active')")->execute([$login, $email, password_hash($password, PASSWORD_DEFAULT), $role]); $message = ['type' => 'success', 'text' => 'Пользователь создан']; } catch (PDOException $e) { if ($e->getCode() == 23000) { $message = ['type' => 'error', 'text' => 'Логин или email уже заняты']; } else { $message = ['type' => 'error', 'text' => 'Ошибка']; } } }
}
$stmt = $pdo->query("SELECT * FROM " . DB_PREFIX . "users ORDER BY created_at DESC"); $users = $stmt->fetchAll();
$roleLabels = ['admin' => 'Администратор', 'manager' => 'Менеджер', 'client' => 'Клиент'];
?>

<?php if ($message): ?><div class="alert alert-<?php echo $message['type']; ?>"><?php echo $message['text']; ?></div><?php endif; ?>

<div class="card">
    <div class="card-header"><div class="card-title">Пользователи системы</div><button class="btn btn-primary" onclick="openModal('userModal')"><i class="fas fa-plus"></i> Добавить пользователя</button></div>
    <table class="data-table"><thead><tr><th>Пользователь</th><th>Email</th><th>Роль</th><th>Статус</th><th>Последний вход</th><th>Действия</th></tr></thead><tbody>
        <?php foreach ($users as $user): ?>
        <tr><td><div style="display: flex; align-items: center; gap: 10px;"><div class="avatar" style="width: 36px; height: 36px; font-size: 14px;"><?php if ($user['avatar']): ?><img src="<?php echo $user['avatar']; ?>" alt=""><?php else: ?><i class="fas fa-user"></i><?php endif; ?></div><div><div style="font-weight: 500;"><?php echo sanitize($user['login']); ?></div><div style="font-size: 12px; color: var(--gray);">ID: <?php echo $user['id']; ?></div></div></div></td><td><?php echo sanitize($user['email']); ?></td><td><span style="font-size: 12px; padding: 3px 10px; border-radius: 10px; background: <?php echo $user['role'] === 'admin' ? '#fef3c7' : '#e0e7ff'; ?>; color: <?php echo $user['role'] === 'admin' ? '#92400e' : '#3730a3'; ?>; font-weight: 500;"><?php echo $roleLabels[$user['role']] ?? $user['role']; ?></span></td><td><span class="badge-status <?php echo $user['status']; ?>"><?php echo $user['status'] === 'active' ? 'Активен' : 'Заблокирован'; ?></span></td><td><?php echo $user['last_login'] ? date('d.m.Y H:i', strtotime($user['last_login'])) : 'Никогда'; ?></td><td><?php if ($user['id'] != $_SESSION['user_id']): ?><a href="?page=users&toggle=<?php echo $user['id']; ?>" class="btn btn-sm btn-secondary" style="margin-right: 5px;" title="Изменить статус"><i class="fas fa-power-off"></i></a><a href="?page=users&delete=<?php echo $user['id']; ?>" class="btn btn-sm btn-danger" onclick="return confirm('Удалить пользователя?')"><i class="fas fa-trash"></i></a><?php else: ?><span style="font-size: 12px; color: var(--gray);">Вы</span><?php endif; ?></td></tr>
        <?php endforeach; ?>
    </tbody></table>
</div>

<div class="modal-overlay" id="userModal">
    <div class="modal">
        <div class="modal-header"><div class="modal-title">Новый пользователь</div><button class="modal-close" onclick="closeModal('userModal')">&times;</button></div>
        <form method="POST">
            <div class="modal-body">
                <div class="form-row"><div class="form-group"><label>Логин *</label><input type="text" name="login" required></div><div class="form-group"><label>Email *</label><input type="email" name="email" required></div></div>
                <div class="form-row"><div class="form-group"><label>Пароль *</label><input type="password" name="password" required placeholder="Минимум 6 символов"></div><div class="form-group"><label>Роль</label><select name="role"><option value="manager">Менеджер</option><option value="admin">Администратор</option><option value="client">Клиент</option></select></div></div>
            </div>
            <div class="modal-footer"><button type="button" class="btn btn-secondary" onclick="closeModal('userModal')">Отмена</button><button type="submit" class="btn btn-primary">Создать</button></div>
        </form>
    </div>
</div>
