<?php
// ========================================
// ویرایش کاربر
// پروژه فروشگاه کیف‌لند
// ========================================
require_once '../config/database.php';
require_once '../config/settings.php';
require_once '../includes/auth.php';
require_once '../includes/functions.php';

Auth::requireAdmin();
$db = Database::getInstance()->getConnection();
$pageTitle = 'ویرایش کاربر | کیف‌لند';

$error = '';
$success = '';

// دریافت شناسه کاربر از URL
$user_id = (int)($_GET['id'] ?? 0);

// دریافت اطلاعات کاربر فعلی
$stmt = $db->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$user_id]);
$user = $stmt->fetch();

// اگر کاربری پیدا نشد
if (!$user) {
    header('Location: users.php?error=not_found');
    exit;
}

// ========================================
// پردازش فرم ویرایش (POST)
// ========================================
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        $username = trim($_POST['username'] ?? '');
        $email = trim($_POST['email'] ?? '');
        $full_name = trim($_POST['full_name'] ?? '');
        $phone = trim($_POST['phone'] ?? '');
        $role = $_POST['role'];
        $is_active = isset($_POST['is_active']) ? 1 : 0;
        $password = $_POST['password']; // رمز جدید

        // اعتبارسنجی
        if (empty($username)) throw new Exception('نام کاربری الزامی است.');
        if (empty($full_name)) throw new Exception('نام کامل الزامی است.');
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) throw new Exception('ایمیل نامعتبر است.');

        // بررسی تکراری نبودن یوزرنیم و ایمیل (به جز خود کاربر)
        $check_stmt = $db->prepare("SELECT COUNT(*) FROM users WHERE (username = ? OR email = ?) AND id != ?");
        $check_stmt->execute([$username, $email, $user_id]);
        if ($check_stmt->fetchColumn() > 0) {
            throw new Exception('نام کاربری یا ایمیل قبلاً توسط شخص دیگری استفاده شده است.');
        }

        // آماده‌سازی داده‌ها برای آپدیت
        $update_data = [
            $username, $email, $full_name, $phone, $role, $is_active, $user_id
        ];
        
        // اگر رمز عبور وارد شده باشد، آن را هش می‌کنیم
        $sql = "UPDATE users SET username = ?, email = ?, full_name = ?, phone = ?, role = ?, is_active = ?";
        
        if (!empty($password)) {
            $hashed_password = password_hash($password, PASSWORD_DEFAULT);
            $sql .= ", password = ?";
            array_splice($update_data, -1, 0, [$hashed_password]); // درج هش رمز قبل از ID
        }

        $sql .= ", updated_at = NOW() WHERE id = ?";

        // اجرای کوئری
        $stmt = $db->prepare($sql);
        $stmt->execute($update_data);

        Auth::logActivity('user_edit', "ویرایش کاربر: $username");
        
        // ریدایرکت با پیام موفقیت
        header('Location: users.php?msg=updated');
        exit;

    } catch (Exception $e) {
        $error = $e->getMessage();
    }
}

include 'includes/admin-header.php';
?>

<style>
/* ========================================
   User Edit Form Styles
   ======================================== */
.form-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 24px;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.form-group.full-width {
    grid-column: span 2;
}

.form-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 6px;
}

.form-label .required {
    color: var(--danger);
}

.form-label i {
    width: 16px;
    text-align: center;
    opacity: 0.7;
}

/* Input Styles */
.form-control {
    width: 100%;
    padding: 12px 14px;
    background: var(--glass-bg);
    backdrop-filter: blur(10px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-sm);
    font-family: 'Vazirmatn', sans-serif;
    font-size: 14px;
    color: var(--text-primary);
    transition: all var(--transition-fast);
    min-height: 44px;
}

.form-control:hover { background: var(--glass-hover); }
.form-control:focus {
    outline: none;
    background: #fff;
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(0, 122, 255, 0.15);
}

.form-hint {
    font-size: 11px;
    color: var(--text-secondary);
    margin-top: 4px;
}

/* Toggle Switch Style */
.switch-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
}

.switch {
    position: relative;
    display: inline-block;
    width: 48px;
    height: 26px;
}

.switch input { opacity: 0; width: 0; height: 0; }

.slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: #ccc;
    transition: .3s;
    border-radius: 34px;
}

.slider:before {
    position: absolute;
    content: "";
    height: 20px;
    width: 20px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: .3s;
    border-radius: 50%;
}

input:checked + .slider { background-color: var(--primary); }
input:checked + .slider:before { transform: translateX(22px); }

/* Action Buttons */
.form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding-top: 20px;
    border-top: 1px solid var(--glass-border);
    margin-top: 20px;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 24px;
    border-radius: var(--radius-sm);
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: all var(--transition-fast);
    border: none;
    min-height: 44px;
    font-family: 'Vazirmatn', sans-serif;
    text-decoration: none;
}

.btn:active { transform: scale(0.98); }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }

.btn-primary {
    background: var(--primary);
    color: white;
    box-shadow: 0 4px 12px rgba(0, 122, 255, 0.25);
}

.btn-primary:hover {
    background: var(--primary-hover);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 122, 255, 0.35);
}

.btn-ghost {
    background: transparent;
    color: var(--text-secondary);
    border: 1px solid var(--glass-border);
}

.btn-ghost:hover {
    background: var(--glass-hover);
    color: var(--text-primary);
    border-color: var(--text-secondary);
}

/* Responsive */
@media (max-width: 768px) {
    .form-grid { grid-template-columns: 1fr; }
    .form-group.full-width { grid-column: span 1; }
    .form-actions { flex-direction: column-reverse; }
    .form-actions .btn { width: 100%; }
}
</style>

<main class="main-content">
    <header class="top-header">
        <button class="menu-toggle" id="menuToggle"><i class="fas fa-bars"></i></button>
        <div class="search-box">
            <i class="fas fa-search"></i>
            <input type="text" placeholder="جستجو...">
        </div>
        <div class="header-actions">
            <a href="users.php" class="btn btn-ghost btn-sm">
                <i class="fas fa-arrow-right"></i>
                <span>بازگشت به لیست</span>
            </a>
        </div>
    </header>

    <div class="dashboard-content">
        <div class="form-header">
            <div class="page-title" style="margin: 0;">
                <h1>ویرایش کاربر</h1>
                <p>تغییر اطلاعات کاربر "<?= htmlspecialchars($user['full_name'] ?: $user['username']) ?>"</p>
            </div>
        </div>

        <?php if ($error): ?>
        <div class="alert alert-danger">
            <i class="fas fa-exclamation-circle"></i>
            <?= htmlspecialchars($error) ?>
        </div>
        <?php endif; ?>

        <form method="POST">
            <div class="glass-card">
                <div class="form-grid">
                    
                    <!-- نام کاربری -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-user"></i>
                            نام کاربری
                            <span class="required">*</span>
                        </label>
                        <input type="text" name="username" class="form-control" value="<?= htmlspecialchars($user['username']) ?>" required>
                    </div>

                    <!-- ایمیل -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-envelope"></i>
                            ایمیل
                            <span class="required">*</span>
                        </label>
                        <input type="email" name="email" class="form-control" value="<?= htmlspecialchars($user['email']) ?>" required>
                    </div>

                    <!-- نام کامل -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-id-card"></i>
                            نام و نام خانوادگی
                            <span class="required">*</span>
                        </label>
                        <input type="text" name="full_name" class="form-control" value="<?= htmlspecialchars($user['full_name']) ?>" required>
                    </div>

                    <!-- شماره تماس -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-phone"></i>
                            شماره تماس
                        </label>
                        <input type="tel" name="phone" class="form-control" value="<?= htmlspecialchars($user['phone']) ?>" placeholder="09xxxxxxxxx">
                    </div>

                    <!-- نقش کاربری -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-user-tag"></i>
                            نقش کاربری
                        </label>
                        <select name="role" class="form-control">
                            <option value="user" <?= $user['role'] == 'user' ? 'selected' : '' ?>>کاربر عادی</option>
                            <option value="moderator" <?= $user['role'] == 'moderator' ? 'selected' : '' ?>>ناظر / پشتیبان</option>
                            <option value="admin" <?= $user['role'] == 'admin' ? 'selected' : '' ?>>مدیر ارشد</option>
                        </select>
                    </div>

                    <!-- تغییر رمز عبور (اختیاری) -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-key"></i>
                            رمز عبور جدید
                        </label>
                        <input type="password" name="password" class="form-control" placeholder="برای تغییر وارد کنید...">
                        <span class="form-hint">خالی بگذارید تا رمز فعلی حفظ شود.</span>
                    </div>

                    <!-- وضعیت فعال/غیرفعال -->
                    <div class="form-group">
                        <label class="form-label">
                            <i class="fas fa-toggle-on"></i>
                            وضعیت حساب
                        </label>
                        <div class="switch-wrapper">
                            <label class="switch">
                                <input type="checkbox" name="is_active" <?= $user['is_active'] ? 'checked' : '' ?>>
                                <span class="slider"></span>
                            </label>
                            <span style="font-size: 13px; color: var(--text-secondary);">
                                <?= $user['is_active'] ? 'فعال و قابل ورود' : 'غیرفعال و مسدود' ?>
                            </span>
                        </div>
                    </div>

                </div>

                <!-- دکمه‌های عملیات -->
                <div class="form-actions">
                    <button type="submit" class="btn btn-primary">
                        <i class="fas fa-save"></i>
                        ذخیره تغییرات
                    </button>
                    <a href="users.php" class="btn btn-ghost">
                        <i class="fas fa-times"></i>
                        انصراف
                    </a>
                </div>
            </div>
        </form>
    </div>
</main>

<script src="assets/js/script.js"></script>
<script>
    // آپدیت متن وضعیت سوئیچ به صورت زنده
    const toggleSwitch = document.querySelector('input[name="is_active"]');
    const statusText = document.querySelector('.switch-wrapper span:last-child');

    if(toggleSwitch) {
        toggleSwitch.addEventListener('change', function() {
            statusText.textContent = this.checked ? 'فعال و قابل ورود' : 'غیرفعال و مسدود';
            statusText.style.color = this.checked ? 'var(--success)' : 'var(--danger)';
        });
    }
</script>

<?php include 'includes/admin-footer.php'; ?>