<?php
// pages/hr/employees_list.php
require_once __DIR__ . '/../../includes/header.php';

// حماية الصفحة
if (!in_array($_SESSION['role'], ['super_admin', 'hr_manager', 'ceo'])) {
    die("<div class='alert alert-danger text-center mt-5'>عذراً، ليس لديك صلاحية الوصول لهذه الصفحة.</div>");
}

$msg = "";

// --- مصفوفة الأدوار (تحديد ما يراه الـ HR مقابل السوبر أدمن) ---
$all_roles = [
    'super_admin' => 'مدير النظام (Super Admin)',
    'ceo' => 'المدير التنفيذي',
    'purchasing' => 'مدير المشتريات',
    'hr_manager' => 'مدير الموارد البشرية',
    'manager_first' => 'مدير الفريق الأول',
    'manager_youth' => 'مدير المراحل السنية',
    'admin_staff' => 'موظف إداري',
    'staff_first' => 'إداري فريق أول',
    'staff_youth' => 'إداري مراحل',
    'coach' => 'مدرب',
    'requester' => 'موظف عام'
];

// تحديد القائمة المسموحة للمستخدم الحالي
$allowed_roles_to_assign = [];
if ($_SESSION['role'] == 'hr_manager') {
    // عبد الرحمن يرى فقط الموظفين العاديين
    $allowed_roles_to_assign = [
        'admin_staff' => 'موظف إداري',
        'staff_first' => 'إداري فريق أول',
        'staff_youth' => 'إداري مراحل',
        'coach' => 'مدرب',
        'requester' => 'موظف عام'
    ];
} else {
    // السوبر أدمن والمدير التنفيذي يرون كل شيء
    $allowed_roles_to_assign = $all_roles;
}

// معالجة إضافة موظف جديد
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['action']) && $_POST['action'] == 'add_employee') {
    $role = $_POST['role'];

    // --- (نقطة تفتيش أمنية) لمنع التلاعب بالكود ---
    if (!array_key_exists($role, $allowed_roles_to_assign)) {
        die("<div class='alert alert-danger'>محاولة اختراق أمني: لا تملك صلاحية منح هذا الدور.</div>");
    }
    // ----------------------------------------------

    $username = trim($_POST['username']);
    $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
    $fullname = trim($_POST['full_name']);
    $email = trim($_POST['email']);
    
    $job_title = trim($_POST['job_title']);
    $emp_num = trim($_POST['employee_number']);
    $join_date = $_POST['joining_date'];
    
    try {
        $pdo->beginTransaction();
        
        $check = $pdo->prepare("SELECT id FROM users WHERE username = ?");
        $check->execute([$username]);
        if($check->rowCount() > 0) throw new Exception("اسم المستخدم مسجل مسبقاً.");

        $stmt_user = $pdo->prepare("INSERT INTO users (username, password_hash, full_name_ar, full_name_en, email, role, staff_category) VALUES (?, ?, ?, 'User', ?, ?, 'admin_staff')");
        $stmt_user->execute([$username, $password, $fullname, $email, $role]);
        $new_user_id = $pdo->lastInsertId();
        
        $stmt_details = $pdo->prepare("INSERT INTO employee_details (user_id, job_title, employee_number, joining_date, passport_expiry, visa_expiry) VALUES (?, ?, ?, ?, ?, ?)");
        $stmt_details->execute([$new_user_id, $job_title, $emp_num, $join_date, $_POST['passport_expiry'], $_POST['visa_expiry']]);
        
        $pdo->commit();
        $msg = "<div class='alert alert-success'>تم إضافة الموظف ($fullname) بنجاح!</div>";
        
    } catch (Exception $e) {
        $pdo->rollBack();
        $msg = "<div class='alert alert-danger'>خطأ: " . $e->getMessage() . "</div>";
    }
}

// جلب الموظفين
$employees = $pdo->query("SELECT u.id, u.full_name_ar, u.role, u.email, e.job_title, e.employee_number FROM users u LEFT JOIN employee_details e ON u.id = e.user_id ORDER BY u.full_name_ar ASC")->fetchAll();
?>

<div class="row mb-4">
    <div class="col-md-8">
        <h3 class="fw-bold text-primary"><i class="bi bi-people"></i> دليل الموظفين</h3>
        <p class="text-muted">إدارة ملفات الموظفين - الموارد البشرية</p>
    </div>
    <div class="col-md-4 text-end">
        <button type="button" class="btn btn-primary shadow" data-bs-toggle="modal" data-bs-target="#addEmpModal">
            <i class="bi bi-person-plus-fill"></i> إضافة موظف جديد
        </button>
        <a href="../dashboard.php" class="btn btn-outline-secondary">عودة</a>
    </div>
</div>

<?php echo $msg; ?>

<div class="card shadow-sm border-0">
    <div class="card-body p-0">
        <div class="table-responsive">
            <table class="table table-hover align-middle mb-0 text-center">
                <thead class="table-light">
                    <tr>
                        <th>الرقم الوظيفي</th>
                        <th>الاسم الكامل</th>
                        <th>المسمى الوظيفي</th>
                        <th>الصلاحية (الدور)</th>
                        <th>تواصل</th>
                        <th>إجراءات</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach($employees as $emp): 
                        $role_display = $all_roles[$emp['role']] ?? $emp['role'];
                        $job_display = $emp['job_title'] ?? '<span class="text-muted small fst-italic">غير محدث</span>';
                    ?>
                    <tr>
                        <td><span class="badge bg-light text-dark border"><?php echo $emp['employee_number'] ?? '-'; ?></span></td>
                        <td class="fw-bold"><?php echo $emp['full_name_ar']; ?></td>
                        <td><?php echo $job_display; ?></td>
                        <td><span class="badge bg-info text-dark bg-opacity-25 border border-info"><?php echo $role_display; ?></span></td>
                        <td><a href="mailto:<?php echo $emp['email']; ?>" class="btn btn-sm btn-light border"><i class="bi bi-envelope"></i></a></td>
                        <td>
                            <a href="employee_profile.php?id=<?php echo $emp['id']; ?>" class="btn btn-sm btn-outline-primary"><i class="bi bi-person-lines-fill"></i> الملف</a>
                        </td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>

<div class="modal fade" id="addEmpModal" tabindex="-1">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <form method="POST">
                <input type="hidden" name="action" value="add_employee">
                <div class="modal-header bg-primary text-white">
                    <h5 class="modal-title fw-bold">إضافة موظف جديد</h5>
                    <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
                </div>
                <div class="modal-body">
                    <div class="row g-3 mb-3">
                        <div class="col-12"><h6 class="text-success border-bottom pb-2">1. بيانات الدخول للنظام</h6></div>
                        <div class="col-md-6"><label class="form-label">الاسم الكامل (عربي)</label><input type="text" name="full_name" class="form-control" required></div>
                        <div class="col-md-6"><label class="form-label">البريد الإلكتروني</label><input type="email" name="email" class="form-control"></div>
                        <div class="col-md-4"><label class="form-label">اسم المستخدم (Login)</label><input type="text" name="username" class="form-control" required></div>
                        <div class="col-md-4"><label class="form-label">كلمة المرور</label><input type="password" name="password" class="form-control" required></div>
                        <div class="col-md-4"><label class="form-label text-primary fw-bold">الدور (الصلاحية)</label>
                            
                            <select name="role" class="form-select">
                                <?php foreach($allowed_roles_to_assign as $key => $val): ?>
                                    <option value="<?php echo $key; ?>"><?php echo $val; ?></option>
                                <?php endforeach; ?>
                            </select>

                        </div>
                    </div>
                    <div class="row g-3">
                        <div class="col-12"><h6 class="text-primary border-bottom pb-2 mt-2">2. بيانات ملف الموظف (HR Profile)</h6></div>
                        <div class="col-md-6"><label class="form-label">المسمى الوظيفي</label><input type="text" name="job_title" class="form-control" required></div>
                        <div class="col-md-6"><label class="form-label">الرقم الوظيفي (للبصمة)</label><input type="text" name="employee_number" class="form-control"></div>
                        <div class="col-md-4"><label class="form-label">تاريخ التعيين</label><input type="date" name="joining_date" class="form-control"></div>
                        <div class="col-md-4"><label class="form-label">انتهاء الجواز</label><input type="date" name="passport_expiry" class="form-control"></div>
                        <div class="col-md-4"><label class="form-label">انتهاء الإقامة</label><input type="date" name="visa_expiry" class="form-control"></div>
                    </div>
                </div>
                <div class="modal-footer"><button type="button" class="btn btn-secondary" data-bs-dismiss="modal">إلغاء</button><button type="submit" class="btn btn-primary px-4">حفظ البيانات</button></div>
            </form>
        </div>
    </div>
</div>

<?php require_once __DIR__ . '/../../includes/footer.php'; ?>