<?php

declare(strict_types=1);
require_once __DIR__ . '/../app/config/bootstrap.php';
require_once __DIR__ . '/../app/services/CartService.php';
require_once __DIR__ . '/../app/controllers/ShopController.php';
require_once __DIR__ . '/../app/core/DijikalaLayout.php';

$cart = new CartService();
$notice = null;

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = (string)($_POST['action'] ?? '');
    if ($action === 'update') {
        foreach ((array)($_POST['qty'] ?? []) as $productId => $qty) {
            $cart->updateQuantity((int)$productId, (int)$qty);
        }
        $notice = 'سبد خرید بروزرسانی شد.';
    } elseif ($action === 'remove') {
        $cart->removeProduct((int)($_POST['product_id'] ?? 0));
        $notice = 'آیتم حذف شد.';
    }
} elseif (isset($_GET['add'])) {
    $ok = $cart->addProduct((int)$_GET['add']);
    $notice = $ok ? 'محصول به سبد خرید اضافه شد.' : 'افزودن محصول ممکن نبود.';
} elseif (isset($_GET['remove'])) {
    $cart->removeProduct((int)$_GET['remove']);
    $notice = 'آیتم حذف شد.';
}

$summary = (new ShopController())->cartSummary();
$items = $summary['items'];
$totals = $summary['totals'];

renderDijikalaShellStart(APP_NAME . ' | سبد خرید', ['noindex' => true], '');
?>

<article class="container" style="padding:1.5rem 0 3rem;">
    <h2>سبد خرید</h2>
    <?php if ($notice): ?>
        <p style="margin:12px 0;"><?= htmlspecialchars($notice) ?></p>
    <?php endif; ?>
    <?php if (!$items): ?>
        <p>سبد خرید شما خالی است.</p>
        <a class="btn-login" href="<?= htmlspecialchars(appPath('/public/products.php')) ?>" style="text-decoration:none;display:inline-block;margin-top:12px;">مشاهده محصولات</a>
    <?php else: ?>
        <form method="post">
            <input type="hidden" name="action" value="update">
            <table class="admin-table compact" style="width:100%;border-collapse:collapse;margin:16px 0;">
                <thead>
                    <tr>
                        <th style="text-align:right;padding:8px;border-bottom:1px solid #e2e8f0;">محصول</th>
                        <th style="padding:8px;border-bottom:1px solid #e2e8f0;">قیمت</th>
                        <th style="padding:8px;border-bottom:1px solid #e2e8f0;">تعداد</th>
                        <th style="padding:8px;border-bottom:1px solid #e2e8f0;">جمع</th>
                        <th style="padding:8px;border-bottom:1px solid #e2e8f0;">عملیات</th>
                    </tr>
                </thead>
                <tbody>
                <?php foreach ($items as $item): ?>
                    <tr>
                        <td style="padding:10px;border-bottom:1px solid #f1f5f9;"><?= htmlspecialchars($item['product_title']) ?></td>
                        <td style="padding:10px;border-bottom:1px solid #f1f5f9;"><?= number_format((float)$item['price']) ?> تومان</td>
                        <td style="padding:10px;border-bottom:1px solid #f1f5f9;">
                            <input type="number" min="0" max="<?= (int)$item['stock'] ?>"
                                   name="qty[<?= (int)$item['product_id'] ?>]" value="<?= (int)$item['quantity'] ?>">
                        </td>
                        <td style="padding:10px;border-bottom:1px solid #f1f5f9;"><?= number_format((float)$item['price'] * (int)$item['quantity']) ?></td>
                        <td style="padding:10px;border-bottom:1px solid #f1f5f9;">
                            <button type="submit">اعمال</button>
                            <a href="<?= htmlspecialchars(appPath('/public/cart.php')) ?>?remove=<?= (int)$item['product_id'] ?>" style="margin-inline-start:8px;">حذف</a>
                        </td>
                    </tr>
                <?php endforeach; ?>
                </tbody>
            </table>
        </form>
        <div style="margin:16px 0;">
            <p>جمع کالاها: <?= number_format((float)$totals['subtotal']) ?> تومان</p>
            <p>هزینه ارسال: <?= number_format((float)$totals['shipping']) ?> تومان</p>
            <p><strong>مبلغ نهایی: <?= number_format((float)$totals['grand_total']) ?> تومان</strong></p>
        </div>
        <a class="btn-login" href="<?= htmlspecialchars(appPath('/public/checkout.php')) ?>" style="text-decoration:none;display:inline-block;">ادامه و تسویه</a>
    <?php endif; ?>
</article>

<?php
renderDijikalaShellEnd('cart', 'minimal');
Performance::finish('public.cart');
