from django.urls import path
from rest_framework.routers import DefaultRouter
from .views import (
	AdminTransferRequestActionView,
	AdminTransferRequestListView,
	DistributorTransferTermsAdminViewSet,
	DistributorIDAdminViewSet,
	DistributorIDWebViewSet,
	UserAutoIDActivateView,
	UserAutoIDAllocationListView,
	UserIncomingTransferRequestListView,
	UserTransferOldOwnerConsentView,
	UserTransferRequestReopenView,
	UserTransferredOutDistributorListView,
	UserTransferTermsListView,
	UserTransferRequestDetailView,
	UserTransferRequestListCreateView,
)

admin_router = DefaultRouter()
admin_router.register(r'distributor-ids', DistributorIDAdminViewSet, basename='admin-distributor-id')
admin_router.register(r'distributor/transfer-terms', DistributorTransferTermsAdminViewSet, basename='admin-distributor-transfer-terms')

web_router = DefaultRouter()
web_router.register(r'distributor/ids', DistributorIDWebViewSet, basename='web-distributor-id')

web_urlpatterns = [
	path('distributor/transfers/', UserTransferRequestListCreateView.as_view(), name='web-distributor-transfers'),
	path('distributor/transfers/incoming/', UserIncomingTransferRequestListView.as_view(), name='web-distributor-transfers-incoming'),
	path('distributor/transfers/<uuid:transfer_id>/', UserTransferRequestDetailView.as_view(), name='web-distributor-transfer-detail'),
	path('distributor/transfers/<uuid:transfer_id>/reopen/', UserTransferRequestReopenView.as_view(), name='web-distributor-transfer-reopen'),
	path('distributor/transfers/<uuid:transfer_id>/old-owner-consent/', UserTransferOldOwnerConsentView.as_view(), name='web-distributor-transfer-old-owner-consent'),
	path('distributor/transfers/<uuid:transfer_id>/new-owner-consent/', UserTransferOldOwnerConsentView.as_view(), name='web-distributor-transfer-new-owner-consent'),
	path('distributor/transfer-terms/', UserTransferTermsListView.as_view(), name='web-distributor-transfer-terms'),
	path('distributor/transfers/history/transferred-out-ids/', UserTransferredOutDistributorListView.as_view(), name='web-distributor-ids-transferred-out'),
	path('distributor/auto-ids/', UserAutoIDAllocationListView.as_view(), name='web-distributor-auto-ids'),
	path('distributor/auto-ids/activate/', UserAutoIDActivateView.as_view(), name='web-distributor-auto-ids-activate'),
]

admin_urlpatterns = [
	path('distributor/transfers/', AdminTransferRequestListView.as_view(), name='admin-distributor-transfers'),
	path('distributor/transfers/<uuid:transfer_id>/action/', AdminTransferRequestActionView.as_view(), name='admin-distributor-transfers-action'),
	path(
		'distributor/transfer-terms/',
		DistributorTransferTermsAdminViewSet.as_view({'get': 'list', 'post': 'create'}),
		name='admin-distributor-transfer-terms',
	),
	path(
		'distributor/transfer-terms/<uuid:pk>/',
		DistributorTransferTermsAdminViewSet.as_view({'get': 'retrieve', 'patch': 'partial_update', 'delete': 'destroy'}),
		name='admin-distributor-transfer-term-detail',
	),
]

# In main urls, include as:
# path('api/v1/admin/', include('apps.business.distributor.urls.admin_router'))
# path('api/v1/web/', include('apps.business.distributor.urls.web_router'))
