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

from .views import (
    AccessLogViewSet,
    EquipmentCategoryViewSet,
    EquipmentViewSet,
    GiftCardViewSet,
    GuestPassPaymentStatusView,
    GuestPassRenewView,
    GymDoorQRViewSet,
    MaintenanceLogViewSet,
    MemberCheckInStatusView,
    MemberCheckInView,
    POSTransactionViewSet,
    ProductViewSet,
    PublicCheckInView,
    PublicMemberLookupView,
    PurchaseOrderViewSet,
    SupplierViewSet,
    VisitorCheckInView,
    VisitorLookupView,
    VisitorViewSet,
)

router = DefaultRouter()
router.register(r"visitors", VisitorViewSet, basename="visitor")
router.register(r"access-logs", AccessLogViewSet, basename="access-log")
router.register(r"door-qr", GymDoorQRViewSet, basename="door-qr")
router.register(r"equipment-categories", EquipmentCategoryViewSet, basename="equipment-category")
router.register(r"equipment", EquipmentViewSet, basename="equipment")
router.register(r"maintenance-logs", MaintenanceLogViewSet, basename="maintenance-log")
router.register(r"products", ProductViewSet, basename="product")
router.register(r"suppliers", SupplierViewSet, basename="supplier")
router.register(r"purchase-orders", PurchaseOrderViewSet, basename="purchase-order")
router.register(r"pos-transactions", POSTransactionViewSet, basename="pos-transaction")
router.register(r"gift-cards", GiftCardViewSet, basename="gift-card")

urlpatterns = [
    path("", include(router.urls)),
    path("checkin/", PublicCheckInView.as_view(), name="public-checkin"),
    path("checkin/visitor/", VisitorCheckInView.as_view(), name="visitor-checkin"),
    path("checkin/member/", MemberCheckInView.as_view(), name="member-checkin"),
    path("checkin/member/status/", MemberCheckInStatusView.as_view(), name="member-checkin-status"),
    path("visitor-lookup/<str:code>/", VisitorLookupView.as_view(), name="visitor-lookup"),
    path("checkin/member-lookup/<str:code>/", PublicMemberLookupView.as_view(), name="public-member-lookup"),
    path("checkin/guest-renew/", GuestPassRenewView.as_view(), name="guest-pass-renew"),
    path("checkin/guest-payment-status/<str:checkout_id>/", GuestPassPaymentStatusView.as_view(), name="guest-payment-status"),
]
