<?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 = '';

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

        // اعتبارسنجی
        if (empty($username)) throw new Exception('نام کاربری الزامی است.');
        if (empty($full_name)) throw new Exception('نام و نام خانوادگی الزامی است.');
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) throw new Exception('ایمیل وارد شده معتبر نیست.');
        if (strlen($password) < 6) throw new Exception('رمز عبور باید حداقل ۶ کاراکتر باشد.');
        if ($password !== $confirm_password) throw new Exception('رمز عبور و تکرار آن مطابقت ندارند.');
        if (!in_array($role, ['user', 'moderator', 'admin'])) throw new Exception('نقش کاربری نامعتبر است.');

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

        // هش کردن رمز عبور
        $hashed_password = password_hash($password, PASSWORD_DEFAULT);

        // ثبت در دیتابیس
        $sql = "INSERT INTO users (username, full_name, email, phone, password, role, is_active, created_at, updated_at) 
                VALUES (?, ?, ?, ?, ?, ?, ?, NOW(), NOW())";
        $stmt = $db->prepare($sql);
        $stmt->execute([$username, $full_name, $email, $phone, $hashed_password, $role, $is_active]);

        Auth::logActivity('user_add', "افزودن کاربر جدید: $username");
        
        // ریدایرکت به لیست کاربران با پیام موفقیت
        header('Location: users.php?msg=added');
        exit;

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

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

<style>
/* ========================================
   User Add 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; }

.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-control::placeholder { color: var(--text-secondary); opacity: 0.6; }

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

/* Password Field Wrapper */
.password-wrapper { position: relative; }
.password-wrapper .form-control { padding-left: 40px; }
.toggle-password {
    position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
    background: none; border: none; color: var(--text-secondary); cursor: pointer;
    font-size: 16px; padding: 4px; transition: color var(--transition-fast);
}
.toggle-password:hover { color: var(--primary); }

/* Checkbox & Toggle */
.checkbox-wrapper { display: flex; align-items: center; gap: 10px; cursor: pointer; margin-top: 8px; }
.checkbox-wrapper input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--primary); cursor: pointer; }
.checkbox-wrapper span { font-size: 14px; color: var(--text-primary); }

/* 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>اطلاعات حساب کاربری جدید را وارد کنید</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" placeholder="مثال: arash_admin" required autocomplete="off">
                    </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" placeholder="مثال: آرش محمدی" 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" placeholder="example@domain.com" required dir="ltr">
                    </div>

                    <!-- شماره تماس -->
                    <div class="form-group">
                        <label class="form-label"><i class="fas fa-phone"></i> شماره تماس</label>
                        <input type="tel" name="phone" class="form-control" placeholder="09xxxxxxxxx" dir="ltr">
                    </div>

                    <!-- رمز عبور -->
                    <div class="form-group">
                        <label class="form-label"><i class="fas fa-lock"></i> رمز عبور <span class="required">*</span></label>
                        <div class="password-wrapper">
                            <input type="password" name="password" id="password" class="form-control" placeholder="حداقل ۶ کاراکتر" required autocomplete="new-password">
                            <button type="button" class="toggle-password" onclick="togglePass('password', this)"><i class="fas fa-eye"></i></button>
                        </div>
                    </div>

                    <!-- تکرار رمز عبور -->
                    <div class="form-group">
                        <label class="form-label"><i class="fas fa-lock"></i> تکرار رمز عبور <span class="required">*</span></label>
                        <div class="password-wrapper">
                            <input type="password" name="confirm_password" id="confirm_password" class="form-control" placeholder="تکرار رمز عبور" required autocomplete="new-password">
                            <button type="button" class="toggle-password" onclick="togglePass('confirm_password', this)"><i class="fas fa-eye"></i></button>
                        </div>
                    </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" selected>کاربر عادی</option>
                            <option value="moderator">ناظر / پشتیبان</option>
                            <option value="admin">مدیر ارشد</option>
                        </select>
                    </div>

                    <!-- وضعیت فعال/غیرفعال -->
                    <div class="form-group">
                        <label class="form-label"><i class="fas fa-toggle-on"></i> وضعیت حساب</label>
                        <label class="checkbox-wrapper">
                            <input type="checkbox" name="is_active" checked>
                            <span>حساب فعال باشد و کاربر بتواند وارد شود.</span>
                        </label>
                    </div>

                </div>

                <!-- دکمه‌های عملیات -->
                <div class="form-actions">
                    <button type="submit" class="btn btn-primary"><i class="fas fa-user-plus"></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>
    // نمایش/مخفی کردن رمز عبور
    function togglePass(inputId, btn) {
        const input = document.getElementById(inputId);
        const icon = btn.querySelector('i');
        if (input.type === 'password') {
            input.type = 'text';
            icon.classList.replace('fa-eye', 'fa-eye-slash');
        } else {
            input.type = 'password';
            icon.classList.replace('fa-eye-slash', 'fa-eye');
        }
    }
</script>

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