"""
SCM API URLs — v1.

مسیرهای REST API ماژول خرید و تدارکات.
"""
from django.urls import path, include
from rest_framework.routers import DefaultRouter

from .views import (
    # Vendor Management
    VendorCategoryViewSet,
    VendorViewSet,
    VendorContactViewSet,
    VendorBankAccountViewSet,
    VendorAddressViewSet,
    # Purchase Requisition
    PurchaseRequisitionViewSet,
    # RFQ
    RFQViewSet,
    RFQVendorResponseViewSet,
    # Purchase Order
    PurchaseOrderViewSet,
    # Goods Receipt
    GoodsReceiptViewSet,
    # Purchase Return
    PurchaseReturnViewSet,
    # Vendor Evaluation
    EvaluationCriteriaViewSet,
    EvaluationPeriodViewSet,
    VendorEvaluationViewSet,
    # Price Management
    VendorPriceListViewSet,
    PurchaseDiscountViewSet,
)

app_name = "scm"

router = DefaultRouter()

# 1. Vendor Management
router.register(r"vendor-categories", VendorCategoryViewSet, basename="vendor-category")
router.register(r"vendors", VendorViewSet, basename="vendor")
router.register(r"vendor-contacts", VendorContactViewSet, basename="vendor-contact")
router.register(r"vendor-bank-accounts", VendorBankAccountViewSet, basename="vendor-bank-account")
router.register(r"vendor-addresses", VendorAddressViewSet, basename="vendor-address")

# 2. Purchase Requisition
router.register(r"purchase-requisitions", PurchaseRequisitionViewSet, basename="purchase-requisition")

# 3. RFQ
router.register(r"rfqs", RFQViewSet, basename="rfq")
router.register(r"rfq-vendor-responses", RFQVendorResponseViewSet, basename="rfq-vendor-response")

# 4. Purchase Order
router.register(r"purchase-orders", PurchaseOrderViewSet, basename="purchase-order")

# 5. Goods Receipt
router.register(r"goods-receipts", GoodsReceiptViewSet, basename="goods-receipt")

# 6. Purchase Return
router.register(r"purchase-returns", PurchaseReturnViewSet, basename="purchase-return")

# 7. Vendor Evaluation
router.register(r"evaluation-criteria", EvaluationCriteriaViewSet, basename="evaluation-criteria")
router.register(r"evaluation-periods", EvaluationPeriodViewSet, basename="evaluation-period")
router.register(r"vendor-evaluations", VendorEvaluationViewSet, basename="vendor-evaluation")

# 8. Price Management
router.register(r"vendor-price-lists", VendorPriceListViewSet, basename="vendor-price-list")
router.register(r"purchase-discounts", PurchaseDiscountViewSet, basename="purchase-discount")

urlpatterns = [
    path("", include(router.urls)),
]
