<?php
$permissionGroups = [
    'اصلی' => ['dashboard', 'rayan-requests', 'rayan-inquiry'],
    'مخفی‌سازی مبالغ ثبت فاکتور' => ['hide-request-installment-amount', 'hide-request-sales-amount', 'hide-request-purchase-amount'],
    'قیمت و کالا' => ['unmapped', 'smart-map', 'smart-review', 'text-list', 'export-all'],
    'مدیریت' => ['users', 'logs', 'download'],
];
$renderPermissionCards = static function (array $selected = [], bool $compact = false) use ($permissions, $permissionGroups): void {
    foreach ($permissionGroups as $groupTitle => $keys): ?>
        <section class="permission-group-card <?= $compact ? 'compact' : '' ?>">
            <div class="permission-group-title"><?= e($groupTitle) ?></div>
            <div class="permission-card-grid">
                <?php foreach ($keys as $key): ?>
                    <?php if (!isset($permissions[$key])) continue; ?>
                    <?php $isDashboard = $key === 'dashboard'; ?>
                    <?php $checked = in_array($key, $selected, true) || $isDashboard; ?>
                    <label class="permission-card <?= $checked ? 'is-checked' : '' ?> <?= $isDashboard ? 'is-locked' : '' ?>">
                        <input type="checkbox" name="permissions[]" value="<?= e($key) ?>" <?= $checked ? 'checked' : '' ?> <?= $isDashboard ? 'disabled' : '' ?>>
                        <span class="permission-checkmark"></span>
                        <span class="permission-label"><?= e($permissions[$key]) ?></span>
                    </label>
                <?php endforeach; ?>
            </div>
        </section>
    <?php endforeach;
};
?>

<div class="card user-management-card">
    <div class="user-card-head">
        <h3>ساخت کاربر جدید</h3>
    </div>
    <form method="post" class="admin-user-form user-create-form">
        <input type="hidden" name="action" value="create_user">
        <div class="user-fields-grid">
            <label>نام کاربری
                <input type="text" name="username" required placeholder="مثلاً user1 یا mobile.manager">
            </label>
            <label>نام نمایشی
                <input type="text" name="display_name" placeholder="مثلاً کاربر فروش">
            </label>
            <label>شناسه ایجادکننده فرم‌افزار
                <textarea name="formafzar_creator_id" rows="2" placeholder="creatorId فرم‌افزار؛ هر شناسه در یک خط"></textarea>
            </label>
            <label>رمز عبور
                <input type="text" name="password" required placeholder="حداقل ۶ کاراکتر">
            </label>
            <label>نوع کاربر
                <select name="role">
                    <option value="user">کاربر محدود</option>
                    <option value="admin">ادمین کامل</option>
                </select>
            </label>
            <label class="checkbox-line user-active-toggle">
                <input type="checkbox" name="is_active" value="1" checked>
                <span>فعال باشد</span>
            </label>
        </div>

        <div class="permission-title-row">
            <h4>دسترسی‌های کاربر محدود</h4>
        </div>
        <div class="permission-board">
            <?php $renderPermissionCards(['dashboard']); ?>
        </div>
        <div class="user-form-actions">
            <button class="btn" type="submit">ساخت کاربر</button>
        </div>
    </form>
</div>

<div class="card user-management-card">
    <div class="user-card-head">
        <h3>کاربران فعلی</h3>
    </div>
    <div class="table-wrap users-table-wrap">
        <table class="admin-users-table">
            <thead>
                <tr>
                    <th>کاربر</th>
                    <th>نوع</th>
                    <th>وضعیت</th>
                    <th>دسترسی‌ها</th>
                    <th>عملیات</th>
                </tr>
            </thead>
            <tbody>
            <?php foreach ($users as $panelUser): ?>
                <?php
                    $username = (string)($panelUser['username'] ?? '');
                    $role = (string)($panelUser['role'] ?? 'user');
                    $userPerms = (array)($panelUser['permissions'] ?? []);
                    $isAdminRow = $role === 'admin' || in_array('*', $userPerms, true);
                    $visiblePassword = (string)($panelUser['password_plain'] ?? '');
                    $displayName = (string)($panelUser['display_name'] ?? $username);
                    $canDelete = ($currentUser['username'] ?? '') !== $username;
                ?>
                <tr>
                    <td class="user-info-cell">
                        <strong><?= e($displayName) ?></strong>
                        <span class="muted user-username"><?= e($username) ?></span>
                        <?php $creatorIdsText = trim((string)($panelUser['formafzar_creator_id'] ?? '')); ?>
                        <?php if ($creatorIdsText !== ''): ?>
                            <span class="muted small">فرم‌افزار: <?= e(str_replace("
", '، ', $creatorIdsText)) ?></span>
                        <?php endif; ?>
                        <span class="muted small">ساخته شده: <?= e((string)($panelUser['created_at'] ?? '-')) ?></span>
                    </td>
                    <td><span class="status-badge <?= $isAdminRow ? 'status-completed' : 'status-new' ?>"><?= $isAdminRow ? 'ادمین کامل' : 'کاربر محدود' ?></span></td>
                    <td><span class="status-badge <?= !empty($panelUser['is_active']) ? 'status-completed' : 'status-failed' ?>"><?= !empty($panelUser['is_active']) ? 'فعال' : 'غیرفعال' ?></span></td>
                    <td>
                        <?php if ($isAdminRow): ?>
                            <span class="success-text">همه بخش‌ها</span>
                        <?php else: ?>
                            <div class="permission-chips">
                                <?php foreach ($userPerms as $perm): ?>
                                    <?php if (!isset($permissions[$perm])) continue; ?>
                                    <span><?= e($permissions[$perm]) ?></span>
                                <?php endforeach; ?>
                            </div>
                        <?php endif; ?>
                    </td>
                    <td class="actions-cell user-actions-cell">
                        <div class="user-row-actions">
                            <details class="user-edit-box">
                                <summary class="btn btn-secondary small">ویرایش</summary>
                                <div class="user-edit-modal" role="dialog" aria-label="ویرایش کاربر">
                                    <div class="user-edit-modal-head">
                                        <div>
                                            <strong>ویرایش کاربر</strong>
                                            <span><?= e($displayName) ?></span>
                                        </div>
                                        <button type="button" class="btn btn-secondary small" onclick="this.closest('details').removeAttribute('open')">بستن</button>
                                    </div>
                                    <form method="post" class="user-edit-form">
                                        <input type="hidden" name="action" value="update_user">
                                        <input type="hidden" name="username" value="<?= e($username) ?>">
                                        <div class="user-fields-grid compact-user-grid">
                                            <label>نام کاربری
                                                <input type="text" name="new_username" value="<?= e($username) ?>">
                                            </label>
                                            <label>نام نمایشی
                                                <input type="text" name="display_name" value="<?= e($displayName) ?>">
                                            </label>
                                            <label>شناسه ایجادکننده فرم‌افزار
                                                <textarea name="formafzar_creator_id" rows="2" placeholder="creatorId فرم‌افزار؛ هر شناسه در یک خط"><?= e((string)($panelUser['formafzar_creator_id'] ?? '')) ?></textarea>
                                            </label>
                                            <label>رمز عبور
                                                <input type="text" name="password" value="<?= e($visiblePassword) ?>" placeholder="برای تغییر رمز پر کن">
                                            </label>
                                            <label>نوع کاربر
                                                <select name="role">
                                                    <option value="user" <?= !$isAdminRow ? 'selected' : '' ?>>کاربر محدود</option>
                                                    <option value="admin" <?= $isAdminRow ? 'selected' : '' ?>>ادمین کامل</option>
                                                </select>
                                            </label>
                                            <label class="checkbox-line user-active-toggle">
                                                <input type="checkbox" name="is_active" value="1" <?= !empty($panelUser['is_active']) ? 'checked' : '' ?>>
                                                <span>فعال باشد</span>
                                            </label>
                                        </div>
                                        <div class="permission-title-row compact-title-row">
                                            <h4>دسترسی‌ها</h4>
                                        </div>
                                        <div class="permission-board compact-board">
                                            <?php $renderPermissionCards($userPerms, true); ?>
                                        </div>
                                        <div class="user-form-actions">
                                            <button class="btn small" type="submit">ذخیره تغییرات</button>
                                        </div>
                                    </form>
                                </div>
                            </details>
                            <?php if ($canDelete): ?>
                                <form method="post" onsubmit="return confirm('این کاربر حذف شود؟');" class="inline-form user-delete-form">
                                    <input type="hidden" name="action" value="delete_user">
                                    <input type="hidden" name="username" value="<?= e($username) ?>">
                                    <button class="btn danger small" type="submit">حذف</button>
                                </form>
                            <?php endif; ?>
                        </div>
                    </td>
                </tr>
            <?php endforeach; ?>
            </tbody>
        </table>
    </div>
</div>

<script>
(function(){
    function syncPermissionCard(input){
        var card = input.closest('.permission-card');
        if (!card) return;
        card.classList.toggle('is-checked', input.checked);
    }
    document.querySelectorAll('.permission-card input[type="checkbox"]').forEach(syncPermissionCard);
    document.addEventListener('change', function(event){
        if (event.target && event.target.matches('.permission-card input[type="checkbox"]')) {
            syncPermissionCard(event.target);
        }
    });
})();
</script>

