feat: Phase 3 - Partners API (5 endpoints + 2 helpers)
- GET /api/v1/partners/stats/ - total, active, pendingKyc, highRisk counts - GET /api/v1/partners/ - paginated list with status/kyc/type/search filters - GET /api/v1/partners/:id/ - full detail with events, kycDocuments, dealTerms, ledger - PATCH /api/v1/partners/:id/status/ - suspend/activate partner - POST /api/v1/partners/:id/kyc/review/ - approve/reject KYC with reason Helpers: _serialize_partner(), _partner_kyc_docs() Status/KYC/type mapping: backend snake_case to frontend capitalised values Risk score derived from kyc_compliance_status (high_risk=80, approved=5, etc.) All views IsAuthenticated, models imported inside methods
This commit is contained in:
@@ -12,4 +12,10 @@ urlpatterns = [
|
||||
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/<int:pk>/', views.PartnerDetailView.as_view(), name='partner-detail'),
|
||||
path('partners/<int:pk>/status/', views.PartnerStatusView.as_view(), name='partner-status'),
|
||||
path('partners/<int:pk>/kyc/review/', views.PartnerKYCReviewView.as_view(), name='partner-kyc-review'),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user