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

from .views.admin_auth import (
    ModuleViewSet, PermissionViewSet, RoleViewSet, AdminLoginView,AdminLogoutView, AdminDeleteAPIView,AdminStatusUpdateAPIView,
    PermissionRoleViewSet, AdminConfirmResetPasswordView,AdminRequestPasswordResetView, AdminDetailAPIView, AdminListCreateAPIView,
    MasterListCreateAPIView, MasterDetailAPIView, MasterStatusUpdateAPIView, MasterDeleteAPIView,
)
from .views.masters import MasterDetailView,BannerDetailView, BannerView, BannerImageTypeUpdateView, MastertoUserView, AdminRejectUserAPIView
from .views.settings import GiftView, GiftEditView, GiftDeleteView, GiftActiveUserListView
from user.views import user_settings
from .views import settings


router = DefaultRouter()
router.register(r'modules', ModuleViewSet)
router.register(r'permissions', PermissionViewSet)
router.register(r'roles', RoleViewSet)
router.register(r'permission-roles', PermissionRoleViewSet)

urlpatterns = [
    path('', include(router.urls)),
    path('login/', AdminLoginView.as_view(), name='admin-login'),
    path('logout/', AdminLogoutView.as_view(), name='admin-logout'),
    path('forget-password/', AdminRequestPasswordResetView.as_view()),
    path('reset-password/confirm/', AdminConfirmResetPasswordView.as_view()),
    path('<int:type_id>/', MasterDetailView.as_view(), name='master-detail-by-type'),
    path('master/<int:type_id>/', MastertoUserView.as_view(), name='master-detail-by-type-for-user'),

    # Admins
    path('admins/', AdminListCreateAPIView.as_view(), name='admin-list-create'),
    path('admins/<int:pk>/', AdminDetailAPIView.as_view(), name='admin-detail'),
    path('admins/<int:pk>/update-status/', AdminStatusUpdateAPIView.as_view(), name='admin-update-status'),
    path("admin/<int:pk>/delete/", AdminDeleteAPIView.as_view()),

    #Master table
    path('masters/', MasterListCreateAPIView.as_view(), name='master-list-create'),
    path('masters/<int:pk>/', MasterDetailAPIView.as_view(), name='master-detail-update'),
    path('masters/<int:pk>/update-status/', MasterStatusUpdateAPIView.as_view(), name='master-status-update'),
    path('masters/<int:pk>/delete/', MasterDeleteAPIView.as_view(), name='master-delete'),

    path('enquiries/<int:pk>/status/', user_settings.EnquiryStatusUpdateView.as_view(), name='enquiry-status-update'),

    path('banners/', BannerView.as_view(), name='banner-list-create'),
    path('banners/<int:pk>/', BannerDetailView.as_view(), name='banner-update'),
    path('banners/update-image-type/<int:pk>', BannerImageTypeUpdateView.as_view(), name='banner-image-type-update'),
    path('reject-user/', AdminRejectUserAPIView.as_view(), name='admin-reject-user'),

    #settings table
    path('gifts/', settings.GiftView.as_view(), name='gift-list-create'),
    path('gift/<int:pk>/edit/', settings.GiftEditView.as_view(), name='edit-gift'),
    path('gift/<int:pk>/delete/', settings.GiftDeleteView.as_view(), name='delete-gift'),
    path('gift/<int:pk>/update-status/', settings.GiftStatusUpdateView.as_view(), name='gift-update-status'),
    path('user-gift/', settings.GiftActiveUserListView.as_view(), name='active-gift-list'),

    path('withdraw/', settings.AppSettingView.as_view(), name='app-setting-list-create'),
    path('setting/', settings.AppSettingView.as_view(), name='app-setting-list-create'),
    path('setting/', settings.UserAppSettingView.as_view(), name='app-setting-list-create'),
    path('setting/<int:pk>/edit/', settings.AppSettingEditView.as_view(), name='app-setting-edit'),

    #plane master setting
    path('plans/', settings.PlanListView.as_view(), name='plan-list'),
    path('plan/create/', settings.PlanCreateView.as_view(), name='plan-create'),
    path('plan/<int:pk>/update/', settings.PlanUpdateView.as_view(), name='plan-update'),
    path('plan/<int:pk>/delete/', settings.PlanDeleteView.as_view(), name='plan-delete'),
    path('plan/<int:pk>/update-status/', settings.PlanStatusUpdateView.as_view(), name='plan-status-update'),

    #femalerewards
    path('female-rewards/', settings.FemaleRewardListView.as_view(), name='female-rewards'),
    path('female-rewards/create/', settings.FemaleRewardCreateView.as_view()),
    path('female-rewards/edit/', settings.FemaleRewardEditView.as_view(), name='female-reward-edit'),
    path('female-rewards/status-update/', settings.FemaleRewardStatusUpdateView.as_view(), name='female-reward-status-update'),
    path('female-reward/delete/', settings.FemaleRewardDeleteView.as_view(), name='female-reward-delete'),
]
