"""
Marketplace URL configuration.
URL prefix: /api/v1/web/marketplace/
"""

from django.urls import path
from api.v1.web.views.marketplace import (
    CategoryListView,
    BrandListView,
    MarketplaceProductListView,
    MarketplaceProductDetailView,
    FeaturedProductsView,
    ProductReviewListView,
    ProductReviewCreateView,
    RetailCheckoutView,
    CartView,
    CartAddItemView,
    CartUpdateItemView,
    CartClearView,
    WishlistView,
    WishlistToggleView,
    WishlistStatusView,
    FlashOfferListView,
    CouponValidateView,
    PincodeServiceabilityView,
    ProductDeliveryEstimationView,
)

urlpatterns = [
    # Catalog browsing
    path('featured/', FeaturedProductsView.as_view(), name='marketplace-featured'),
    path('categories/', CategoryListView.as_view(), name='marketplace-categories'),
    path('brands/', BrandListView.as_view(), name='marketplace-brands'),

    # Product listing & detail
    path('products/', MarketplaceProductListView.as_view(), name='marketplace-products'),
    path('products/<slug:slug>/', MarketplaceProductDetailView.as_view(), name='marketplace-product-detail'),

    # Reviews (list + create share the same URL, split by method)
    path('products/<uuid:product_id>/reviews/', ProductReviewListView.as_view(), name='marketplace-product-reviews-list'),
    path('products/<uuid:product_id>/reviews/create/', ProductReviewCreateView.as_view(), name='marketplace-product-reviews-create'),

    # Delivery estimation
    path('products/<uuid:product_id>/delivery/', ProductDeliveryEstimationView.as_view(), name='marketplace-product-delivery'),

    # Flash offers
    path('flash-offers/', FlashOfferListView.as_view(), name='marketplace-flash-offers'),

    # Coupons
    path('coupons/validate/', CouponValidateView.as_view(), name='marketplace-coupon-validate'),

    # Serviceability
    path('serviceability/', PincodeServiceabilityView.as_view(), name='marketplace-serviceability'),

    # Cart
    path('checkout/', RetailCheckoutView.as_view(), name='marketplace-checkout'),
    path('cart/', CartView.as_view(), name='marketplace-cart'),
    path('cart/add/', CartAddItemView.as_view(), name='marketplace-cart-add'),
    path('cart/items/<uuid:item_id>/', CartUpdateItemView.as_view(), name='marketplace-cart-update'),
    path('cart/clear/', CartClearView.as_view(), name='marketplace-cart-clear'),

    # Wishlist
    path('wishlist/', WishlistView.as_view(), name='marketplace-wishlist'),
    path('wishlist/toggle/', WishlistToggleView.as_view(), name='marketplace-wishlist-toggle'),
    path('wishlist/status/', WishlistStatusView.as_view(), name='marketplace-wishlist-status'),
]
