"""
URL configuration for po_service project.

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/4.2/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.urls import path, re_path
from po_app import views
from declarations import views as dec_views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('save_order_request/', views.CreateOrUpdateOrderRequestView.as_view(), name='save_order_request'), 
    path('order_requests/', views.OrderRequestListView.as_view(), name='order_requests'),
    path('manage_order_files/', views.OrderAttachmentFilesView.as_view(), name='remove_files'),
    path('order_request_files/', views.OrderRequestFilesView.as_view(), name='order_request_files'),
    path('initiate_order_creation/', views.OrderProcessInitiateView.as_view(), name='initiate_order_creation'),
    path('get_cost_centers/', views.CostCenterAPIView.as_view(), name='get_cost_centers'),
    path('save_order/', views.OrderCreateView.as_view(), name='save_order'),
    path('get_order_history/', views.OrderHistoryView.as_view(), name='get_order_history'),
    path('get_similar_orders/', views.SimilarOrderView.as_view(), name='get_similar_orders'),
    path('search_orders/', views.SearchOrdersAPIView.as_view(), name='search_orders'),
    path('get_order_details/', views.OrderDetailsAPIView.as_view(), name='get_order_details'),
    path('orders/', views.OrderListAPIView.as_view(), name='orders'),
    path('get_order_status/', views.OrderStatusListView.as_view(), name='get_order_status'),
    path('update_order_status/', views.UpdateOrderStatusView.as_view(), name='update_order_status'),
    path('update_delivery_status/', views.MarkAsDelivered.as_view(), name='update_delivery_status'),
    # path('generate_xml_old/', views.GenerateXMLAPIViewOld.as_view(), name='generate_xml'),
    path('serve-file/<str:filename>/', views.ServePDFFileView.as_view(), name='serve_file'),
    path('get_order_request_details/', views.OrderRequestDetailsAPIView.as_view(), name='get_order_request_details'),
    path('extracharges/', views.ExtraChargeListView.as_view(), name='extracharges'),
    path('save_extra_charges/', views.UpdateOrderChargesView.as_view(), name='save_extra_charges'),
    path('send_email/', views.SendEmailAPIViewOLD.as_view(), name='send_email'),
    path('get_transporter_request_data/', views.TransporterRequestDataView.as_view(), name='get_transporter_request_data'),
    path('get_shipping_agent_mail_info/', views.ShippingAgentMailInfoView.as_view(), name='get_shipping_agent_mail_info'),
    path('get_warehouse_mail_info/', views.WarehouseMailInfoView.as_view(), name='get_warehouse_mail_info'),
    path('get_customs_mail_info/', views.CustomsMailInfoView.as_view(), name='get_customs_mail_info'),
    path('send_confirmation_email/', views.SendEmailAPIView.as_view(), name='send_confirmation_email'),
    path('get_doc_info/', views.DocListView.as_view(), name='get_doc_info'),
    path('get_coc_info/', views.CocView.as_view(), name='get_coc_info'),
    path('get_transport_mail_info/', views.TransportMailView.as_view(), name='get_transport_mail_info'),
    path('get_customer_mail_info/', views.CustomerMailView.as_view(), name='get_customer_mail_info'),
    path('get_multiple_transport_mail_info/', views.MultipleTransportMailView.as_view(), name='get_multiple_transport_mail_info'),
    path('get_customer_mail_multiple_info/', views.CustomerMailMultipleOrderView.as_view(), name='get_customer_mail_multiple_info'),
    path('get_cmr_info/', views.GenerateCMRView.as_view(), name='generate_cmr'),
    path('replan_order_from_loading_station/', views.replanOrderDueToStationUpdate.as_view(), name='replan_order_from_loading_station'),
    path('get_price_from_quantity/', views.ProductPriceFromQuantity.as_view(), name='get_price_from_quantity'),
    path('get_mail_history/', views.EmailHistoryAPIView.as_view(), name='get_mail_history'),
    path('get_loadplan_pdf/', views.LoadPlanPDFView.as_view(), name='get_loadplan_pdf'),
    path('send_loadplan_mail/', views.SendLoadplanMailView.as_view(), name='send_loadplan_mail'),
    path('generate_xml/', views.GenerateXMLAPIView.as_view(), name='generate_xml'),
    path('serve_image_file/<str:filename>/', views.ServeImageView.as_view(), name='serve_image_file'),
    # path('get_incoterms/', views.IncoTermsListView.as_view(), name='get_incoterms'),
    # path('save_instruction_pdf/', views.SaveInstructionPDFView.as_view(), name='save_instruction_pdf'),
    # path('serve_doc/<str:filename>/', views.ServeDocumentsView.as_view(), name='serve_doc'),
    path('save_unloading_instruction/', views.SaveUnloadingInstructionView.as_view(), name='save_unloading_instruction'),
    path('delete_order/', views.DeleteOrderView.as_view(),name='delete_order'),
    path('get_price_list/', views.PriceListView.as_view(), name='get_price_list'),
    path('save_order_price/', views.SaveOrderPriceView.as_view(), name='save_order_price'),
    path('get_extra_charges/', views.ExtraChargesGeneralList.as_view(), name='get_extra_charges'),
    path('update_order/', views.UpdateOrderRequestView.as_view(), name='update_order'),
    path('sync_price_master/', views.SyncPriceMasterView.as_view(), name='sync_price_master'),
    path('get_mdgf_data/', views.GetMultimodelView.as_view(), name='get_mdgf_data'),
    path('get_all_price_data/', views.GetPriceMasterView.as_view(), name='get_all_price_data'),
    path('packing_details/', views.PackingDetailView.as_view(), name='packing_details'),
    path('packing_document/', views.PackageDocumentView.as_view(), name='packing_document'),
    path('cancel_mail/', views.OrderCancellationMailView.as_view(), name='cancel_mail'),
    path('get_mail_content/', views.GetEmailDataView.as_view(), name='get_mail_content'),
    path('get_tabs/', views.CheckReplanView.as_view(), name='tabs'),
    path('update_requirement/', views.CustomerRequirementView.as_view(), name='update_requirement'),
    path('save_as_draft/', views.EmailDraftView.as_view(), name='save_as_draft'),
    path('get_package_master/', views.PackageMasterView.as_view(), name='get_package_master'),
    path('get_customer_requirements/', views.GetCustomerRequirementView.as_view(), name='get_customer_requirements'),

    path('migrate_orders/', views.GetAllOrder.as_view(), name='migrate_orders'),
    path('migrate_order_requests/', views.GetAllOrderRequests.as_view(), name='migrate_order_requests'),

    # declarations
    path('company/', dec_views.CompanyView.as_view(), name='company'),
    path('declaration/', dec_views.EUDeclarationView.as_view(), name='declaration'),
    path('get_eud_mail_data/', dec_views.GetEUDRenewalDataView.as_view(), name='get_eud_mail_data'),
    path('eud_doc/', dec_views.ServeEUDDocument.as_view(), name='eud_doc'),
    path('send_eud_email/', dec_views.SendEUDEmailAPIView.as_view(), name='send_eud_email'),
    path('eud_notify/', dec_views.NotifyAdminEUDView.as_view(), name='eud_notify'),
    path('company/base/', dec_views.CompanyDocumentView.as_view(), name='base_company'),
    path('shared_docs/', dec_views.SharedDocumentView.as_view(), name='shared_docs'),
    path('get_shared_doc_mail_data/', dec_views.GetShareDocumentContentView.as_view(), name='get_shared_doc_mail_data'),
    path('saved_docs/', dec_views.SavedDocumentView.as_view(), name='saved_docs'),

    re_path(r'^medias/(?P<file_path>.*)$', views.serve_media_file, name='serve_media'),
    
]


if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)