<?php
// admin/permissions-content.php - جدول ماتریسی دسترسی‌ها
?>

<!-- ============================================================
     پیام‌ها
     ============================================================ -->
<?php if ($message): ?>
<div class="alert alert-<?= $messageType ?>">
    <i class="fas <?= $messageType == 'danger' ? 'fa-exclamation-circle' : 'fa-check-circle' ?>"></i>
    <?= $message ?>
</div>
<?php endif; ?>

<!-- ============================================================
     توضیحات
     ============================================================ -->
<div class="card" style="padding:16px 20px;background:#f8fafc;border-radius:12px;border:1px solid #e5e7eb;margin-bottom:20px;">
    <div style="display:flex;align-items:center;gap:10px;">
        <i class="fas fa-info-circle" style="color:#355C9C;font-size:20px;"></i>
        <div>
            <span style="font-weight:600;color:#1f2937;">مدیریت دسترسی‌ها</span>
            <span style="color:#6b7280;font-size:13px;display:block;">برای هر نقش، دسترسی‌های مورد نظر را فعال/غیرفعال کنید. نقش "مدیر سامانه" دارای تمام دسترسی‌ها است.</span>
        </div>
    </div>
</div>

<!-- ============================================================
     جدول ماتریسی دسترسی‌ها
     ============================================================ -->
<form method="POST" id="permissionForm">
    <div style="overflow-x:auto;border-radius:12px;border:1px solid #e5e7eb;">
        <table style="width:100%;border-collapse:collapse;font-size:13px;">
            <thead>
                <tr style="background:#f1f5f9;border-bottom:2px solid #e5e7eb;">
                    <th style="padding:12px 16px;text-align:right;color:#6b7280;font-weight:700;min-width:150px;">
                        دسترسی‌ها / نقش‌ها
                    </th>
                    <?php foreach ($roles as $role): ?>
                        <th style="padding:12px 16px;text-align:center;color:#1f2937;font-weight:700;min-width:120px;">
                            <?= htmlspecialchars($role['name']) ?>
                            <?php if ($role['id'] == 1): ?>
                                <span style="display:block;font-size:10px;color:#dc2626;font-weight:400;">(همه دسترسی‌ها)</span>
                            <?php endif; ?>
                            <input type="hidden" name="role_id" value="<?= $role['id'] ?>">
                        </th>
                    <?php endforeach; ?>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($permissionGroups as $groupName => $perms): ?>
                    <!-- ===== گروه بندی ===== -->
                    <tr style="background:#f8fafc;border-bottom:1px solid #e5e7eb;">
                        <td colspan="<?= count($roles) + 1 ?>" style="padding:8px 16px;font-weight:700;color:#355C9C;font-size:14px;">
                            <i class="fas fa-folder" style="margin-left:8px;"></i>
                            <?= $groupName ?>
                        </td>
                    </tr>
                    
                    <?php foreach ($perms as $permKey): ?>
                        <tr style="border-bottom:1px solid #f3f4f6;" class="table-row-hover">
                            <td style="padding:8px 16px;color:#1f2937;font-weight:500;">
                                <?= $allPermissions[$permKey] ?? $permKey ?>
                            </td>
                            
                            <?php foreach ($roles as $role): ?>
                                <td style="padding:8px 16px;text-align:center;">
                                    <?php if ($role['id'] == 1): ?>
                                        <!-- ===== مدیر سامانه - غیرفعال و تیک خورده ===== -->
                                        <span style="display:inline-block;width:20px;height:20px;background:#d1fae5;border-radius:4px;color:#065f46;line-height:20px;text-align:center;">
                                            <i class="fas fa-check" style="font-size:12px;"></i>
                                        </span>
                                    <?php else: ?>
                                        <input type="checkbox" 
                                               name="permissions[<?= $role['id'] ?>][]" 
                                               value="<?= $permKey ?>"
                                               <?= in_array($permKey, $rolePermissions[$role['id']] ?? []) ? 'checked' : '' ?>
                                               class="perm-checkbox"
                                               data-role="<?= $role['id'] ?>"
                                               data-perm="<?= $permKey ?>"
                                               style="width:18px;height:18px;cursor:pointer;accent-color:#355C9C;">
                                    <?php endif; ?>
                                </td>
                            <?php endforeach; ?>
                        </tr>
                    <?php endforeach; ?>
                <?php endforeach; ?>
            </tbody>
        </table>
    </div>
    
    <!-- ============================================================
     دکمه‌ها
     ============================================================ -->
    <div style="display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;justify-content:space-between;align-items:center;">
        <div style="display:flex;gap:10px;">
            <button type="submit" class="btn btn-success" style="padding:10px 28px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;background:#10b981;color:white;transition:all 0.3s;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(16,185,129,0.25);">
                <i class="fas fa-save"></i> ذخیره تنظیمات
            </button>
            <button type="button" onclick="selectAll()" class="btn btn-outline" style="padding:10px 20px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;background:transparent;color:#355C9C;border:2px solid #355C9C;transition:all 0.3s;">
                <i class="fas fa-check-double"></i> انتخاب همه
            </button>
            <button type="button" onclick="deselectAll()" class="btn btn-outline" style="padding:10px 20px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;background:transparent;color:#6b7280;border:2px solid #e5e7eb;transition:all 0.3s;">
                <i class="fas fa-times"></i> لغو همه
            </button>
        </div>
        <span style="font-size:12px;color:#9ca3af;">
            <i class="fas fa-info-circle"></i> چک‌باکس‌های خاکستری برای مدیر سامانه غیرفعال هستند
        </span>
    </div>
</form>

<!-- ============================================================
     اسکریپت‌ها
     ============================================================ -->
<script>
// ===== انتخاب همه چک‌باکس‌ها (به جز مدیر سامانه) =====
function selectAll() {
    document.querySelectorAll('.perm-checkbox:not(:disabled)').forEach(function(cb) {
        cb.checked = true;
    });
}

// ===== لغو همه چک‌باکس‌ها (به جز مدیر سامانه) =====
function deselectAll() {
    document.querySelectorAll('.perm-checkbox:not(:disabled)').forEach(function(cb) {
        cb.checked = false;
    });
}

// ===== نمایش تعداد دسترسی‌های فعال برای هر نقش =====
document.addEventListener('DOMContentLoaded', function() {
    const roles = <?= json_encode(array_column($roles, 'id')) ?>;
    roles.forEach(function(roleId) {
        if (roleId == 1) return;
        const checkboxes = document.querySelectorAll(`.perm-checkbox[data-role="${roleId}"]`);
        const count = document.querySelectorAll(`.perm-checkbox[data-role="${roleId}"]:checked`).length;
        // می‌توانید تعداد را در جایی نمایش دهید
    });
});

// ===== جلوگیری از ارسال فرم با Enter =====
document.addEventListener('keydown', function(e) {
    if (e.key === 'Enter' && e.target.tagName !== 'TEXTAREA') {
        e.preventDefault();
    }
});
</script>

<!-- ============================================================
     استایل‌های اختصاصی
     ============================================================ -->
<style>
.table-row-hover:hover {
    background: #f9fafb;
}
.table-row-hover td {
    background: transparent !important;
}
.perm-checkbox {
    transition: all 0.2s;
}
.perm-checkbox:hover {
    transform: scale(1.1);
}
.perm-checkbox:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
</style>