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

Storefront (customer shop) pages for checkout:
- Checkout 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()


# ============================================================================
# CHECKOUT
# ============================================================================


@router.get("/checkout", response_class=HTMLResponse, include_in_schema=False)
async def shop_checkout_page(request: Request, db: Session = Depends(get_db)):
    """
    Render checkout page.
    Handles shipping, payment, and order confirmation.
    """
    logger.debug(
        "[STOREFRONT] shop_checkout_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(
        "checkout/storefront/checkout.html", get_storefront_context(request, db=db)
    )
