from django.urls import path

from api_v2.views import (
    ContentTypeListView,
    HealthCheckView,
    QuickCreateEmployeeUserView,
    RoleListView,
    PrintingJobByCustomerView,
    PrintingJobBatchAdvancePreviewView,
    PrintingJobBatchAdvanceSubmitView,
    PrintingJobBatchAddParametersView,
    PrintingOrderExternalSnapshotSyncView,
    PlateOrderByProcessNodeView,
    PlateOrderByProcessView,
    PlateOrderByStateStatusView,
    PlateOrderBatchUpdateView,
    PrintingOrderBatchAdvanceRecordsView,
    BusinessObjectCloneView,
    MissionCancelView,
    MissionCategoryDetailView,
    MissionCategoryListCreateView,
    MissionDetailView,
    MissionListCreateView,
    MissionReopenView,
    MissionReplyListCreateView,
    MissionReplyRejectView,
    MissionSetUrgentView,
    AgentUnshippedShipmentListView,
    AgentTransportVehicleListView,
    AgentTransportVehicleDetailView,
)
from api_v2.views.basic_info import CustomerEmployeeBindingView, MyVisiblePagesView

urlpatterns = [
    path('health/', HealthCheckView.as_view(), name='api_v2_health_check'),
    path('roles/', RoleListView.as_view(), name='api_v2_role_list'),
    path('users/quick-create/', QuickCreateEmployeeUserView.as_view(), name='api_v2_user_quick_create'),
    path('customers/bind-employee/', CustomerEmployeeBindingView.as_view(), name='api_v2_customer_bind_employee'),
    path('me/visible-pages/', MyVisiblePagesView.as_view(), name='api_v2_my_visible_pages'),
    path('printing-jobs/by-customer/', PrintingJobByCustomerView.as_view(), name='api_v2_printing_job_by_customer'),
    path('printing-jobs/batch-advance/preview/', PrintingJobBatchAdvancePreviewView.as_view(), name='api_v2_printing_job_batch_advance_preview'),
    path('printing-jobs/batch-advance/', PrintingJobBatchAdvanceSubmitView.as_view(), name='api_v2_printing_job_batch_advance_submit'),
    path('printing-jobs/batch-add-parameters/', PrintingJobBatchAddParametersView.as_view(), name='api_v2_printing_job_batch_add_parameters'),
    path('printing-orders/sync-external-snapshot/', PrintingOrderExternalSnapshotSyncView.as_view(), name='api_v2_printing_order_sync_external_snapshot'),
    path('printing-orders/<int:printing_order_id>/batch-advance-records/', PrintingOrderBatchAdvanceRecordsView.as_view(), name='api_v2_printing_order_batch_advance_records'),
    path('plate-orders/by-process-node/', PlateOrderByProcessNodeView.as_view(), name='api_v2_plate_order_by_process_node'),
    path('plate-orders/by-process/', PlateOrderByProcessView.as_view(), name='api_v2_plate_order_by_process'),
    path('plate-orders/by-state-status/', PlateOrderByStateStatusView.as_view(), name='api_v2_plate_order_by_state_status'),
    path('plate-orders/batch-update/', PlateOrderBatchUpdateView.as_view(), name='api_v2_plate_order_batch_update'),
    path('stateflow/business-objects/clone/', BusinessObjectCloneView.as_view(), name='api_v2_stateflow_business_object_clone'),
    path('content-types/', ContentTypeListView.as_view(), name='api_v2_content_type_list'),
    path('ai/shipments/unshipped/', AgentUnshippedShipmentListView.as_view(), name='api_v2_ai_unshipped_shipment_list'),
    path('ai/transport-vehicles/', AgentTransportVehicleListView.as_view(), name='api_v2_ai_transport_vehicle_list'),
    path('ai/transport-vehicles/<str:license_plate>/', AgentTransportVehicleDetailView.as_view(), name='api_v2_ai_transport_vehicle_detail'),
    path('mission-categories/', MissionCategoryListCreateView.as_view(), name='api_v2_mission_category_list_create'),
    path('mission-categories/<int:category_id>/', MissionCategoryDetailView.as_view(), name='api_v2_mission_category_detail'),
    path('missions/', MissionListCreateView.as_view(), name='api_v2_mission_list_create'),
    path('missions/<int:mission_id>/', MissionDetailView.as_view(), name='api_v2_mission_detail'),
    path('missions/<int:mission_id>/replies/', MissionReplyListCreateView.as_view(), name='api_v2_mission_reply_list_create'),
    path('missions/<int:mission_id>/reopen/', MissionReopenView.as_view(), name='api_v2_mission_reopen'),
    path('missions/<int:mission_id>/cancel/', MissionCancelView.as_view(), name='api_v2_mission_cancel'),
    path('missions/<int:mission_id>/set-urgent/', MissionSetUrgentView.as_view(), name='api_v2_mission_set_urgent'),
    path('mission-replies/<int:reply_id>/reject/', MissionReplyRejectView.as_view(), name='api_v2_mission_reply_reject'),
]
