# app/modules/cart/routes/pages/storefront.py
"""
Cart Storefront Page Routes (HTML rendering).

Storefront (customer shop) pages for shopping cart:
- Cart page
"""

import logging

from fastapi import APIRouter, Depends, Request
from fastapi.responses import HTMLResponse
from sqlalchemy.orm import Session

from app.api.deps import get_db
from app.modules.core.utils.page_context import get_storefront_context
from app.templates_config import templates

logger = logging.getLogger(__name__)

router = APIRouter()


# ============================================================================
# SHOPPING CART
# ============================================================================


@router.get("/cart", response_class=HTMLResponse, include_in_schema=False)
async def shop_cart_page(request: Request, db: Session = Depends(get_db)):
    """
    Render shopping cart page.
    Shows cart items and allows quantity updates.
    """
    logger.debug(
        "[STOREFRONT] shop_cart_page REACHED",
        extra={
            "path": request.url.path,
            "store": getattr(request.state, "store", "NOT SET"),
            "context": getattr(request.state, "context_type", "NOT SET"),
        },
    )

    return templates.TemplateResponse(
        "cart/storefront/cart.html", get_storefront_context(request, db=db)
    )
