"""
inventory/urls.py
──────────────────
URL configuration for the inventory app.
All endpoints are prefixed with /api/inventory/ in the root urls.py.
"""

from django.urls import include, path
from rest_framework.routers import DefaultRouter

from inventory.views import (
    AuditLogViewSet,
    AuthorEarningsView,
    AuthorPayoutViewSet,
    BookstoreViewSet,
    DashboardView,
    EventViewSet,
    ExpenseCategoryViewSet,
    ExpenseViewSet,
    InventoryBalanceViewSet,
    InventoryReportView,
    InventoryTransactionViewSet,
    ProfitLossView,
    SalesReportView,
    SaleViewSet,
    StockAdjustView,
    StockLocationViewSet,
    StockReceiveView,
    StockTransferView,
)

router = DefaultRouter()
router.register(r"locations", StockLocationViewSet, basename="stocklocation")
router.register(r"transactions", InventoryTransactionViewSet, basename="inventorytransaction")
router.register(r"balances", InventoryBalanceViewSet, basename="inventorybalance")
router.register(r"bookstores", BookstoreViewSet, basename="bookstore")
router.register(r"events", EventViewSet, basename="event")
router.register(r"sales", SaleViewSet, basename="sale")
router.register(r"payouts", AuthorPayoutViewSet, basename="authorpayout")
router.register(r"expenses/categories", ExpenseCategoryViewSet, basename="expensecategory")
router.register(r"expenses", ExpenseViewSet, basename="expense")
router.register(r"audit-logs", AuditLogViewSet, basename="auditlog")

urlpatterns = [
    path("", include(router.urls)),

    # Stock operations
    path("stock/receive/", StockReceiveView.as_view(), name="stock-receive"),
    path("stock/transfer/", StockTransferView.as_view(), name="stock-transfer"),
    path("stock/adjust/", StockAdjustView.as_view(), name="stock-adjust"),

    # Dashboard & Reports
    path("dashboard/", DashboardView.as_view(), name="inventory-dashboard"),
    path("reports/pl/", ProfitLossView.as_view(), name="report-pl"),
    path("reports/inventory/", InventoryReportView.as_view(), name="report-inventory"),
    path("reports/sales/", SalesReportView.as_view(), name="report-sales"),
    path("reports/authors/<int:author_id>/", AuthorEarningsView.as_view(), name="report-author-earnings"),
]
