<?php
/** @var RayanPanelService $rayanService */
$plans = array_values((array)($manualSettings['sales_plans'] ?? []));
$productsTotal = count((array)($manualSettings['products'] ?? []));
$productRows = array_values((array)($productData['rows'] ?? []));
$productPagination = $productData['pagination'] ?? [
    'page' => 1,
    'per_page' => 100,
    'total' => count($productRows),
    'last_page' => 1,
    'from' => count($productRows) ? 1 : 0,
    'to' => count($productRows),
];
$productQ = (string)($productFilters['q'] ?? '');
$currentPage = max(1, (int)($productPagination['page'] ?? 1));
$lastPage = max(1, (int)($productPagination['last_page'] ?? 1));
$perPage = (int)($productPagination['per_page'] ?? 100);
$paginationWindowStart = max(1, $currentPage - 2);
$paginationWindowEnd = min($lastPage, $currentPage + 2);
?>

<div class="card">
    <h3>تنظیمات فرم ثبت فاکتور</h3>
    <p class="muted">
        در این بخش ادمین گزینه‌های مجاز «طرح فروش» و «نام کالا» را تعریف می‌کند. در فرم ثبت فاکتور، کاربر دیگر چیزی تایپ نمی‌کند و فقط از همین لیست‌ها انتخاب می‌کند؛ برای کالا، مقدار ارسالی به حسابان‌وب همان عدد/ID تعریف‌شده اینجاست.
    </p>
    <div class="settings-stats">
        <span>طرح فروش: <strong><?= e((string)count($plans)) ?></strong></span>
        <span>کالا: <strong><?= e((string)$productsTotal) ?></strong></span>
        <span>آخرین تغییر: <strong><?= e((string)($manualSettings['updated_at'] ?? '-')) ?></strong></span>
    </div>
</div>

<div class="grid two settings-grid">
    <div class="card">
        <h3>طرح‌های فروش</h3>
        <p class="muted">این نام‌ها دقیقاً همان مقدار «نوع طرح فروش» هستند. سه طرح دومرحله‌ای طبق مسیر تعریف‌شده پردازش می‌شوند؛ بقیه طرح‌ها مستقیم حسابان‌وب می‌شوند.</p>

        <form method="post" class="settings-inline-form">
            <input type="hidden" name="settings_action" value="add_plan">
            <label>افزودن طرح فروش
                <input type="text" name="sales_plan_name" placeholder="مثلاً بتا-آسان سطح 2" required>
            </label>
            <button class="btn btn-success" type="submit">افزودن</button>
        </form>

        <form method="post" class="settings-block-form">
            <input type="hidden" name="settings_action" value="bulk_add_plans">
            <label>افزودن گروهی طرح‌ها؛ هر خط یک طرح
                <textarea name="sales_plan_bulk" rows="4" placeholder="کلوپ سطح 1&#10;کلوپ سطح 2&#10;کلوپ قسطانو"></textarea>
            </label>
            <button class="btn secondary" type="submit">افزودن گروهی</button>
        </form>

        <form method="post" class="settings-list-form" onsubmit="return confirm('طرح‌های انتخاب‌شده حذف شوند؟');">
            <input type="hidden" name="settings_action" value="delete_plans">
            <div class="settings-list">
                <?php foreach ($plans as $plan): ?>
                    <?php $planName = is_array($plan) ? (string)($plan['name'] ?? '') : (string)$plan; ?>
                    <?php if (trim($planName) !== ''): ?>
                        <label class="settings-check-row">
                            <input type="checkbox" name="selected_sales_plans[]" value="<?= e($planName) ?>">
                            <span><?= e($planName) ?></span>
                        </label>
                    <?php endif; ?>
                <?php endforeach; ?>
            </div>
            <button class="btn danger small" type="submit">حذف طرح‌های انتخاب‌شده</button>
        </form>
    </div>

    <div class="card">
        <h3>افزودن کالا</h3>
        <p class="muted">نام کالا برای نمایش در فرم و گزارش است؛ عدد/ID همان مقدار حسابان‌وب است که در payload به‌جای «نام کالا» خوانده می‌شود.</p>

        <form method="post" class="settings-inline-form settings-product-add">
            <input type="hidden" name="settings_action" value="add_product">
            <label>نام کالا
                <input type="text" name="product_title" placeholder="مثلاً iPhone 13 128GB" required>
            </label>
            <label>عدد/ID حسابان‌وب
                <input type="text" name="product_code_new" inputmode="numeric" placeholder="مثلاً 185123..." required>
            </label>
            <button class="btn btn-success" type="submit">افزودن کالا</button>
        </form>

        <form method="post" class="settings-block-form">
            <input type="hidden" name="settings_action" value="bulk_add_products">
            <label>افزودن گروهی کالاها؛ هر خط با فرمت «نام کالا | عدد حسابان‌وب»
                <textarea name="products_bulk" rows="8" placeholder="iPhone 13 128GB | 185123456001&#10;Samsung A55 256GB | 185123456002"></textarea>
            </label>
            <button class="btn secondary" type="submit">افزودن گروهی کالاها</button>
        </form>
    </div>
</div>

<div class="card wide-card">
    <div class="table-head-actions">
        <div>
            <h3>کالاهای تعریف‌شده</h3>
            <p class="muted">
                نمایش <?= e(number_format((int)($productPagination['from'] ?? 0))) ?> تا <?= e(number_format((int)($productPagination['to'] ?? 0))) ?> از <?= e(number_format((int)($productPagination['total'] ?? 0))) ?> کالا
            </p>
        </div>
        <form method="get" class="settings-filter-form">
            <input type="hidden" name="page" value="rayan-form-settings">
            <input type="text" name="q" value="<?= e($productQ) ?>" placeholder="جستجو نام کالا یا ID">
            <select name="per_page">
                <?php foreach ([50, 100, 200, 500] as $option): ?>
                    <option value="<?= e((string)$option) ?>" <?= $perPage === $option ? 'selected' : '' ?>><?= e((string)$option) ?> ردیف</option>
                <?php endforeach; ?>
            </select>
            <button class="btn" type="submit">جستجو</button>
            <a class="btn secondary" href="<?= e(url('rayan-form-settings')) ?>">حذف فیلتر</a>
        </form>
    </div>

    <form method="post" id="settings-products-delete-form" onsubmit="return confirm('کالاهای انتخاب‌شده حذف شوند؟');">
        <input type="hidden" name="settings_action" value="delete_products">
        <div class="table-wrap">
            <table>
                <thead>
                <tr>
                    <th class="select-col"><input type="checkbox" id="select-all-settings-products" aria-label="انتخاب همه کالاها"></th>
                    <th>نام کالا</th>
                    <th>عدد/ID حسابان‌وب</th>
                    <th>زمان ایجاد</th>
                </tr>
                </thead>
                <tbody>
                <?php if (!$productRows): ?>
                    <tr><td colspan="4" class="center muted">هنوز کالایی تعریف نشده است.</td></tr>
                <?php endif; ?>
                <?php foreach ($productRows as $product): ?>
                    <?php
                        $title = (string)($product['title'] ?? '');
                        $code = (string)($product['code'] ?? '');
                    ?>
                    <tr>
                        <td class="select-col"><input type="checkbox" class="settings-product-checkbox" name="selected_product_codes[]" value="<?= e($code) ?>"></td>
                        <td><?= e($title) ?></td>
                        <td><code><?= e($code) ?></code></td>
                        <td class="small muted"><?= e((string)($product['created_at'] ?? '-')) ?></td>
                    </tr>
                <?php endforeach; ?>
                </tbody>
            </table>
        </div>
        <div class="actions settings-table-actions">
            <button class="btn danger" type="submit">حذف کالاهای انتخاب‌شده</button>
            <a class="btn btn-success" href="<?= e(url('rayan-requests', ['new' => 1])) ?>#manual-request-form">رفتن به ثبت فاکتور جدید</a>
        </div>
    </form>

    <?php if ($lastPage > 1): ?>
        <div class="pagination-row">
            <?php $base = ['q' => $productQ, 'per_page' => $perPage]; ?>
            <a class="pagination-btn <?= $currentPage <= 1 ? 'disabled' : '' ?>" href="<?= e(url('rayan-form-settings', array_merge($base, ['p' => $currentPage - 1]))) ?>">قبلی</a>
            <?php if ($paginationWindowStart > 1): ?>
                <a class="pagination-btn" href="<?= e(url('rayan-form-settings', array_merge($base, ['p' => 1]))) ?>">1</a>
                <span class="pagination-dots">…</span>
            <?php endif; ?>
            <?php for ($i = $paginationWindowStart; $i <= $paginationWindowEnd; $i++): ?>
                <a class="pagination-btn <?= $i === $currentPage ? 'active' : '' ?>" href="<?= e(url('rayan-form-settings', array_merge($base, ['p' => $i]))) ?>"><?= e((string)$i) ?></a>
            <?php endfor; ?>
            <?php if ($paginationWindowEnd < $lastPage): ?>
                <span class="pagination-dots">…</span>
                <a class="pagination-btn" href="<?= e(url('rayan-form-settings', array_merge($base, ['p' => $lastPage]))) ?>"><?= e((string)$lastPage) ?></a>
            <?php endif; ?>
            <a class="pagination-btn <?= $currentPage >= $lastPage ? 'disabled' : '' ?>" href="<?= e(url('rayan-form-settings', array_merge($base, ['p' => $currentPage + 1]))) ?>">بعدی</a>
        </div>
    <?php endif; ?>
</div>

<script>
document.addEventListener('DOMContentLoaded', function(){
    var all = document.getElementById('select-all-settings-products');
    if (!all) return;
    all.addEventListener('change', function(){
        document.querySelectorAll('.settings-product-checkbox').forEach(function(cb){ cb.checked = all.checked; });
    });
});
</script>
