from django.urls import path, include from rest_framework_simplejwt.views import TokenRefreshView from . import views urlpatterns = [ path('admin/auth/login/', views.AdminLoginView.as_view(), name='admin_login'), path('auth/refresh/', TokenRefreshView.as_view(), name='token_refresh'), path('auth/me/', views.MeView.as_view(), name='auth_me'), path('health/', views.HealthView.as_view(), name='health'), # Phase 2: Dashboard endpoints path('dashboard/metrics/', views.DashboardMetricsView.as_view(), name='dashboard-metrics'), path('dashboard/revenue/', views.DashboardRevenueView.as_view(), name='dashboard-revenue'), path('dashboard/activity/', views.DashboardActivityView.as_view(), name='dashboard-activity'), path('dashboard/actions/', views.DashboardActionsView.as_view(), name='dashboard-actions'), # Phase 3: Partner endpoints path('partners/stats/', views.PartnerStatsView.as_view(), name='partner-stats'), path('partners/', views.PartnerListView.as_view(), name='partner-list'), path('partners//', views.PartnerDetailView.as_view(), name='partner-detail'), path('partners//status/', views.PartnerStatusView.as_view(), name='partner-status'), path('partners//kyc/review/', views.PartnerKYCReviewView.as_view(), name='partner-kyc-review'), path('partners//impersonate/', views.PartnerImpersonateView.as_view(), name='partner-impersonate'), path('partners/onboard/', views.PartnerOnboardView.as_view(), name='partner-onboard'), path('partners//staff/', views.PartnerStaffCreateView.as_view(), name='partner-staff-create'), # Partner-Me: partner portal self-service (Sprint 1) path('partners/me/profile/', views.PartnerMeProfileView.as_view(), name='partner-me-profile'), path('partners/me/notifications/', views.PartnerMeNotificationsView.as_view(), name='partner-me-notifications'), path('partners/me/payout/', views.PartnerMePayoutView.as_view(), name='partner-me-payout'), path('partners/me/change-password/', views.PartnerMeChangePasswordView.as_view(), name='partner-me-change-password'), path('users/metrics/', views.UserMetricsView.as_view(), name='user-metrics'), path('users/', views.UserListView.as_view(), name='user-list'), path('users//', views.UserDetailView.as_view(), name='user-detail'), path('users//status/', views.UserStatusView.as_view(), name='user-status'), # Phase 5: Events endpoints path('events/stats/', views.EventStatsView.as_view(), name='event-stats'), path('events/', views.EventListView.as_view(), name='event-list'), path('events//', views.EventDetailView.as_view(), name='event-detail'), path('events//update/', views.EventUpdateView.as_view(), name='event-update'), path('events//moderate/', views.EventModerationView.as_view(), name='event-moderate'), path('events//delete/', views.EventDeleteView.as_view(), name='event-delete'), path('events/create/', views.EventCreateView.as_view(), name='event-create'), path('events/types/', views.EventTypesView.as_view(), name='event-types'), path('events//primary-image/', views.EventPrimaryImageView.as_view(), name='event-primary-image'), path('financials/metrics/', views.FinancialMetricsView.as_view(), name='financial-metrics'), path('financials/transactions/', views.TransactionListView.as_view(), name='transaction-list'), path('financials/settlements/', views.SettlementListView.as_view(), name='settlement-list'), path('financials/settlements//release/', views.SettlementReleaseView.as_view(), name='settlement-release'), path('reviews/metrics/', views.ReviewMetricsView.as_view(), name='review-metrics'), path('reviews/', views.ReviewListView.as_view(), name='review-list'), path('reviews//moderate/', views.ReviewModerationView.as_view(), name='review-moderate'), path('reviews//', views.ReviewDeleteView.as_view(), name='review-delete'), # Lead Manager path('leads/metrics/', views.LeadMetricsView.as_view(), name='lead-metrics'), path('leads/', views.LeadListView.as_view(), name='lead-list'), path('leads//', views.LeadDetailView.as_view(), name='lead-detail'), path('leads//update/', views.LeadUpdateView.as_view(), name='lead-update'), path('gamification/submit-event/', views.GamificationSubmitEventView.as_view(), name='gamification-submit-event'), path('gamification/submit-event', views.GamificationSubmitEventView.as_view()), path('shop/items/', views.ShopItemsView.as_view(), name='shop-items'), path('shop/items', views.ShopItemsView.as_view()), path('shop/redeem/', views.ShopRedeemView.as_view(), name='shop-redeem'), path('shop/redeem', views.ShopRedeemView.as_view()), path('gamification/dashboard/', views.GamificationDashboardView.as_view(), name='gamification-dashboard'), path('gamification/dashboard', views.GamificationDashboardView.as_view()), # Payment gateway settings path('settings/payment-gateway/active/', views.ActivePaymentGatewayView.as_view(), name='active-payment-gateway'), path('settings/payment-gateways/', views.PaymentGatewaySettingsView.as_view(), name='payment-gateways'), path('settings/payment-gateways//', views.PaymentGatewaySettingsView.as_view(), name='payment-gateway-detail'), # RBAC path('rbac/departments/', views.DepartmentListCreateView.as_view(), name='rbac-department-list'), path('rbac/departments//', views.DepartmentDetailView.as_view(), name='rbac-department-detail'), path('rbac/squads/', views.SquadListCreateView.as_view(), name='rbac-squad-list'), path('rbac/squads//', views.SquadDetailView.as_view(), name='rbac-squad-detail'), path('rbac/staff/', views.StaffListView.as_view(), name='rbac-staff-list'), path('rbac/staff/invite/', views.StaffInviteView.as_view(), name='rbac-staff-invite'), path('rbac/staff//', views.StaffUpdateView.as_view(), name='rbac-staff-update'), path('rbac/staff//deactivate/', views.StaffDeactivateView.as_view(), name='rbac-staff-deactivate'), path('rbac/staff//move/', views.StaffMoveView.as_view(), name='rbac-staff-move'), path('rbac/roles/', views.RoleListCreateView.as_view(), name='rbac-role-list'), path('rbac/roles//', views.RoleDetailView.as_view(), name='rbac-role-detail'), path('rbac/scopes/', views.ScopeListView.as_view(), name='rbac-scope-list'), path('rbac/org-tree/', views.OrgTreeView.as_view(), name='rbac-org-tree'), path('rbac/audit-log/', views.AuditLogListView.as_view(), name='rbac-audit-log'), path('rbac/audit-log/metrics/', views.AuditLogMetricsView.as_view(), name='rbac-audit-log-metrics'), # Notifications (admin-side recurring email jobs) path('notifications/types/', views.NotificationTypesView.as_view(), name='notification-types'), path('notifications/schedules/', views.NotificationScheduleListView.as_view(), name='notification-schedule-list'), path('notifications/schedules//', views.NotificationScheduleDetailView.as_view(), name='notification-schedule-detail'), path('notifications/schedules//recipients/', views.NotificationRecipientView.as_view(), name='notification-recipient-create'), path('notifications/schedules//recipients//', views.NotificationRecipientDetailView.as_view(), name='notification-recipient-detail'), path('notifications/schedules//send-now/', views.NotificationScheduleSendNowView.as_view(), name='notification-schedule-send-now'), path('notifications/schedules//test-send/', views.NotificationScheduleTestSendView.as_view(), name='notification-schedule-test-send'), # Ad Control path('ad-control/', include('ad_control.urls')), ]