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

from .views import (
    AdminSubscriptionView,
    CreateSubscriptionView,
    GymPackageViewSet,
    InvoiceViewSet,
    MpesaCallbackView,
    MpesaConfigView,
    MpesaPaymentStatusView,
    MpesaSTKPushView,
    MpesaTestConnectionView,
    MySubscriptionView,
    PaymentConfigView,
    PaymentViewSet,
    SubscriptionPackageViewSet,
    SubscriptionStatsView,
)

router = DefaultRouter()
router.register("packages", SubscriptionPackageViewSet, basename="packages")
router.register("gym-packages", GymPackageViewSet, basename="gym-packages")
router.register("invoices", InvoiceViewSet, basename="invoice")
router.register("payments", PaymentViewSet, basename="payment")

urlpatterns = [
    path("", include(router.urls)),
    path("config/", PaymentConfigView.as_view(), name="payment-config"),
    path("subscriptions/", CreateSubscriptionView.as_view(), name="create-subscription"),
    path("subscriptions/mine/", MySubscriptionView.as_view(), name="my-subscription"),
    path("subscriptions/stats/", SubscriptionStatsView.as_view(), name="subscription-stats"),
    path("subscriptions/admin/<uuid:user_id>/", AdminSubscriptionView.as_view(), name="admin-subscription"),
    # M-Pesa Daraja
    path("mpesa/config/", MpesaConfigView.as_view(), name="mpesa-config"),
    path("mpesa/test-connection/", MpesaTestConnectionView.as_view(), name="mpesa-test-connection"),
    path("mpesa/stk-push/", MpesaSTKPushView.as_view(), name="mpesa-stk-push"),
    path("mpesa/callback/", MpesaCallbackView.as_view(), name="mpesa-callback"),
    path("mpesa/status/<str:checkout_id>/", MpesaPaymentStatusView.as_view(), name="mpesa-payment-status"),
]
