from django.urls import path from . import views from .views import api_views from .views import photo_status_api app_name = 'products' urlpatterns = [ # Main unified list for products and kits (default view) path('', views.CombinedProductListView.as_view(), name='products-list'), # Legacy URLs for backward compatibility path('all/', views.CombinedProductListView.as_view(), name='all-products'), path('products/', views.ProductListView.as_view(), name='product-list-legacy'), path('kits/', views.ProductKitListView.as_view(), name='productkit-list'), # CRUD URLs for Product path('product/create/', views.ProductCreateView.as_view(), name='product-create'), path('product//', views.ProductDetailView.as_view(), name='product-detail'), path('product//update/', views.ProductUpdateView.as_view(), name='product-update'), path('product//delete/', views.ProductDeleteView.as_view(), name='product-delete'), # Photo management for Product path('product/photo//delete/', views.product_photo_delete, name='product-photo-delete'), path('product/photo//set-main/', views.product_photo_set_main, name='product-photo-set-main'), path('product/photo//move-up/', views.product_photo_move_up, name='product-photo-move-up'), path('product/photo//move-down/', views.product_photo_move_down, name='product-photo-move-down'), path('product/photos/delete-bulk/', views.product_photos_delete_bulk, name='product-photos-delete-bulk'), # CRUD URLs for ProductKit (комплекты/букеты) path('kit/create/', views.ProductKitCreateView.as_view(), name='productkit-create'), path('kit//', views.ProductKitDetailView.as_view(), name='productkit-detail'), path('kit//update/', views.ProductKitUpdateView.as_view(), name='productkit-update'), path('kit//delete/', views.ProductKitDeleteView.as_view(), name='productkit-delete'), path('kit//make-permanent/', views.ProductKitMakePermanentView.as_view(), name='productkit-make-permanent'), # Photo management for ProductKit path('kit/photo//delete/', views.productkit_photo_delete, name='productkit-photo-delete'), path('kit/photo//set-main/', views.productkit_photo_set_main, name='productkit-photo-set-main'), path('kit/photo//move-up/', views.productkit_photo_move_up, name='productkit-photo-move-up'), path('kit/photo//move-down/', views.productkit_photo_move_down, name='productkit-photo-move-down'), # API endpoints path('api/search-products-variants/', views.search_products_and_variants, name='api-search-products-variants'), path('api/kits/temporary/create/', views.create_temporary_kit_api, name='api-temporary-kit-create'), path('api/tags/create/', api_views.create_tag_api, name='api-tag-create'), path('api/tags//toggle/', api_views.toggle_tag_status_api, name='api-tag-toggle'), # Photo processing status API (for AJAX polling) path('api/photos/status//', photo_status_api.photo_processing_status, name='api-photo-status'), path('api/photos/batch-status/', photo_status_api.batch_photo_status, name='api-batch-photo-status'), # CRUD URLs for ProductVariantGroup (Варианты товаров) path('variant-groups/', views.ProductVariantGroupListView.as_view(), name='variantgroup-list'), path('variant-groups/create/', views.ProductVariantGroupCreateView.as_view(), name='variantgroup-create'), path('variant-groups//', views.ProductVariantGroupDetailView.as_view(), name='variantgroup-detail'), path('variant-groups//update/', views.ProductVariantGroupUpdateView.as_view(), name='variantgroup-update'), path('variant-groups//delete/', views.ProductVariantGroupDeleteView.as_view(), name='variantgroup-delete'), # AJAX endpoints for ProductVariantGroup item management path('variant-groups/item//move//', views.product_variant_group_item_move, name='variantgroup-item-move'), # CRUD URLs for ProductCategory path('categories/', views.ProductCategoryListView.as_view(), name='category-list'), path('categories/create/', views.ProductCategoryCreateView.as_view(), name='category-create'), path('categories//', views.ProductCategoryDetailView.as_view(), name='category-detail'), path('categories//update/', views.ProductCategoryUpdateView.as_view(), name='category-update'), path('categories//delete/', views.ProductCategoryDeleteView.as_view(), name='category-delete'), # Category photo management path('categories/photo//delete/', views.category_photo_delete, name='category-photo-delete'), path('categories/photo//set-main/', views.category_photo_set_main, name='category-photo-set-main'), path('categories/photo//move-up/', views.category_photo_move_up, name='category-photo-move-up'), path('categories/photo//move-down/', views.category_photo_move_down, name='category-photo-move-down'), # CRUD URLs for ProductTag path('tags/', views.ProductTagListView.as_view(), name='tag-list'), path('tags/create/', views.ProductTagCreateView.as_view(), name='tag-create'), path('tags//', views.ProductTagDetailView.as_view(), name='tag-detail'), path('tags//update/', views.ProductTagUpdateView.as_view(), name='tag-update'), path('tags//delete/', views.ProductTagDeleteView.as_view(), name='tag-delete'), # CRUD URLs for ConfigurableKitProduct path('configurable-kits/', views.ConfigurableKitProductListView.as_view(), name='configurablekit-list'), path('configurable-kits/create/', views.ConfigurableKitProductCreateView.as_view(), name='configurablekit-create'), path('configurable-kits//', views.ConfigurableKitProductDetailView.as_view(), name='configurablekit-detail'), path('configurable-kits//update/', views.ConfigurableKitProductUpdateView.as_view(), name='configurablekit-update'), path('configurable-kits//delete/', views.ConfigurableKitProductDeleteView.as_view(), name='configurablekit-delete'), # API для управления вариантами ConfigurableKitProduct path('configurable-kits//options/add/', views.add_option_to_configurable, name='configurablekit-add-option'), path('configurable-kits//options//remove/', views.remove_option_from_configurable, name='configurablekit-remove-option'), path('configurable-kits//options//set-default/', views.set_option_as_default, name='configurablekit-set-default-option'), ]