# -*- coding: utf-8 -*-
from django.urls import path
from . import views

app_name = 'pos'

urlpatterns = [
    # POS терминал: главная страница (рендер HTML) [GET]
    path('', views.pos_terminal, name='terminal'),
    # Установить текущий склад для POS (сохранение в сессии) [POST]
    path('api/set-warehouse/<int:warehouse_id>/', views.set_warehouse, name='set-warehouse'),
    # Установить текущего клиента для POS (сохранение в Redis с TTL 2 часа) [POST]
    path('api/set-customer/<int:customer_id>/', views.set_customer, name='set-customer'),
    # Сохранить корзину POS (сохранение в Redis с TTL 2 часа) [POST]
    path('api/save-cart/', views.save_cart, name='save-cart'),
    # Получить товары и комплекты (пагинация, поиск, сортировка) [GET]
    path('api/items/', views.get_items_api, name='items-api'),
    # Получить список активных витрин [GET]
    path('api/get-showcases/', views.get_showcases_api, name='get-showcases-api'),
    # Получить актуальные витринные временные комплекты [GET]
    path('api/showcase-kits/', views.get_showcase_kits_api, name='showcase-kits-api'),
    # Добавить витринный комплект в корзину с блокировкой [POST]
    path('api/showcase-kits/<int:kit_id>/add-to-cart/', views.add_showcase_kit_to_cart, name='add-showcase-kit-to-cart'),
    # Сохранить черновик заказа для передачи в orders/create/ [POST]
    path('api/create-draft/', views.create_order_draft, name='create-order-draft'),
    # Снять блокировку витринного комплекта при удалении из корзины [POST]
    path('api/showcase-kits/<int:kit_id>/remove-from-cart/', views.remove_showcase_kit_from_cart, name='remove-showcase-kit-from-cart'),
    # Сбросить ВСЕ свои блокировки витринных букетов [POST]
    path('api/showcase-kits/release-all-my-locks/', views.release_all_my_showcase_locks, name='release-all-my-showcase-locks'),
    # Получить детали комплекта для редактирования [GET]
    path('api/product-kits/<int:kit_id>/', views.get_product_kit_details, name='get-product-kit-details'),
    # Обновить временный комплект (состав, фото, цены) [POST]
    path('api/product-kits/<int:kit_id>/update/', views.update_product_kit, name='update-product-kit'),
    # Разобрать витринный комплект (освободить резервы, установить статус discontinued) [POST]
    path('api/product-kits/<int:kit_id>/disassemble/', views.disassemble_product_kit, name='disassemble-product-kit'),
    # Списать витринный комплект (создать документ списания с компонентами) [POST]
    path('api/product-kits/<int:kit_id>/write-off/', views.write_off_showcase_kit, name='write-off-showcase-kit'),
    # Создать временный комплект и зарезервировать на витрину [POST]
    path('api/create-temp-kit/', views.create_temp_kit_to_showcase, name='create-temp-kit-api'),
    # Создать заказ и провести оплату в POS [POST]
    path('api/checkout/', views.pos_checkout, name='pos-checkout'),
    # ============================================
    # DISCOUNT API
    # ============================================
    # Валидировать промокод [POST]
    path('api/discounts/validate-promo/', views.validate_promo_code, name='validate-promo'),
    # Рассчитать скидки для корзины [POST]
    path('api/discounts/calculate/', views.calculate_cart_discounts, name='calculate-discounts'),
    # Получить список доступных скидок [GET]
    path('api/discounts/available/', views.get_available_discounts, name='available-discounts'),
]