from django.contrib import admin
from django.urls import path,include
from .views import *
from . import views

urlpatterns = [
    path('create_group', GroupCreateView.as_view({'post':'create'}), name='GroupCreate'),
    path('delete_group/<int:group_id>', GroupCreateView.as_view({'delete':'destroy'}), name='GroupCreate'),
    path('permission_list',PermissionListView.as_view({'get':'list'}, name = 'permission')),
    path('user_permission_assign',UserPermissionAssignView.as_view({'post':'create'}, name = 'userpermission')),

    path('user_register', UserRegisterView.as_view({'post':'create','get':'list'}), name='UserCreate'),
    path('user_list', UserListView.as_view({'get':'list'}), name='UserList'),
    path('user_update', UserupdateView.as_view({'put':'update','get':'list'}), name='UpdateUser'),
    path('admin_update_user/<int:user_id>', UserDeleteView.as_view({'put': 'update','get':'list'}),name='update_user'),
    path('user_delete/<int:user_id>', UserDeleteView.as_view({'delete':'destroy','get':'list'}), name='DeleteUser'),

    path('user_login', UserLoginView.as_view({'post':'create'}), name='UserLoginView'),
    path('user_logout', LogoutView.as_view({'post':'create'}), name='UserlogoutView'),
    path('change_password', ChangePasswordAPIView.as_view({'put':'update'}), name='ChangePassword'),
    
    # auto add all permission to group for request user who create organization
    path('create_organization',OrganizationCreateView.as_view({'post':'create','get':'list'}, name = 'create_organization')),  
    path('update_organization/<int:org_id>',OrganizationUpdateView.as_view({'put':'update','get':'list'}, name = 'update_organization')),
    path('delete_organization/<int:org_id>',OrganizationUpdateView.as_view({'delete':'destroy'}, name = 'delete_organization')),
    path('organization_list',OrganizationGetView.as_view({'get':'list'}, name = 'organization_list')),
    path('email_notification',EmailNotification.as_view({'get':'list'}, name = 'emailnotification')),
    path('email_notification/<int:org_id>',EmailNotification.as_view({'put':'update'}, name = 'email_notification_update')),

    path('create_location',LocationCreateView.as_view({'post':'create','get':'list'}, name = 'create_location')),
    path('update_location/<int:loc_id>',LocationUpdateView.as_view({'put':'update','get':'list'}, name = 'update_location')),
    path('delete_location/<int:loc_id>',LocationUpdateView.as_view({'delete':'destroy'}, name = 'delete_location')),
    path('location_list',LocationGetView.as_view({'get':'list'}, name = 'location_list')),

    path('create_area',AreaCreateView.as_view({'post':'create','get':'list'}, name = 'create_area')),
    path('update_area/<int:area_id>',AreaUpdateView.as_view({'put':'update','get':'list'}, name = 'update_area')),
    path('delete_area/<int:area_id>',AreaUpdateView.as_view({'delete':'destroy'}, name = 'delete_area')),
    path('area_list',AreaGetView.as_view({'get':'list'}, name = 'area_list')),

    path('create_camera',CameraCreateView.as_view({'post':'create','get':'list'}, name = 'create_camera')),
    path('update_camera/<int:camera_id>',CameraUpdataeView.as_view({'put':'update','get':'list'}, name = 'update_camera')),
    path('delete_camera/<int:camera_id>',CameraUpdataeView.as_view({'delete':'destroy'}, name = 'delete_camera')),
    path('camera_list',CameraGetView.as_view({'get':'list'}, name = 'camera_list')),
    path('camera_enable_disable/<int:camera_id>',CameraEnableDisableView.as_view({'put':'update','get':'list'}, name = 'camera_enable_disable')),
    path('camera_list_without_pagination',CameraListWithoutPaginationView.as_view({'get':'list'}, name = 'camera_event_list')),

    path('create_camera_event',CameraEventCreateView.as_view({'post':'create','get':'list'}, name = 'create_camera_event')),
    path('camera_event_delete/<int:camera_event_id>',CameraEventGetView.as_view({'delete':'destroy'}, name = 'camera_event_list')),
    path('enable_disable_camera_event/<int:camera_event_id>',CameraEventGetView.as_view({'put':'update','get':'list'}, name = 'update_camera_event')),
    path('update_name_camera_event/<int:camera_event_id>',CameraEventnameUpdateView.as_view({'put':'update','get':'list'}, name = 'update_camera_event')),
    path('event_list',EventGetListView.as_view({'get':'list'}, name = 'event_list')),
    
    path('top_four_alert_data',TopFourAlertDataView.as_view({'get':'list'}, name = 'top_four_event_data')),

    path('Whatsapp_message',WhatsappMessageView.as_view({'post':'create','get':'list'}, name = 'Whatsapp_message')),
    path('send_whatsapp_alert',SendWhatsAppAlert.as_view({'post':'create','get':'list'}, name = 'SendWhatsAppAlert')),

    path('roi_create',RoiCreateView.as_view({'post':'create','get':'list'}, name = 'roi_create')),
    path('roi_list/<int:roi_id>',RoigetView.as_view({'get':'list'}, name = 'roi_list')),
    path('update_roi/<int:roi_id>',RoigetView.as_view({'put':'update','get':'list'}, name = 'update_roi')),
    path('delete_roi/<int:roi_id>',RoigetView.as_view({'delete':'destroy'}, name = 'delete_roi')),
    
    path('start_event_detection', EventDetectionAPIView.as_view(), name='event-detection'),

    # path('video_stream/<int:camera_id>', views.video_stream, name='video_stream'),
    path('report_generation_view',ReportGenerationView.as_view({'get':'list'}, name = 'report_generation_view')),
    path('alert_event_camera_location_count', Alert_event_camera_location_CountView.as_view({'get':'list'}, name = 'aecl_count')),
    path('undetected_event_count', UndetectedEventCountView.as_view({'get':'list'}, name = 'undected_event_count')),
    path('undetected_datewise_event_count', UndetectedEventDateWiseCountView.as_view({'get':'list'}, name = 'under_detection_count')),
    path('undetected_event_percentage', UndetectedEventPercentageView.as_view({'get':'list'}, name = 'undected_event_count')),
    path('undetected_event_datewise_percentage', UndetectedEventDateWisePercentageView.as_view({'get':'list'}, name = 'undected_event_count')),
    path('export_to_excel', ExportToExcelView.as_view({'get':'list'}, name = 'export_to_excel')),
    path('export_to_pdf', ExportToPDFView.as_view({'get':'list'}, name = 'export_to_pdf')),
    path('export_to_csv', ExportToCSVView.as_view({'get':'list'}, name = 'export_to_csv')),
    path('alerts', AlertReportView.as_view(), name='alert-report'),
    
    path('alert_get_list', AlertGetView.as_view({'get':'list'}, name = 'alert_get_list')),

    # path('upload_video_on_detection',RunScriptOnVideoApiView.as_view(),name='upload_video_on_detection'),
    path('user_organization_loaction_area_id_wise_user_list',UserOrganizationLoactionAreaIdView.as_view({'get':'list'}),name='user_organization_loaction_area_id'),
    path('organization_location_area_id',OrganizationLocationAreaIdView.as_view({'get':'list'}),name='OrganizationLocationAreaIdView'),

    path('organization_location_area_id_wise_user_list',OrganizationLocationAreaCameraUserView.as_view({'get':'list'}),name='organization_location_area_id_wise_camera_list'),

    # path('stream_rtsp', stream_rtsp, name='stream_rtsp'),
    path('stream_rtsp', convert_rtsp_to_hls, name='convert_rtsp_to_hls'),
    path('get_hls_file', get_hls_file, name='get_hls_file'),

    path('fall_detection_upload_video',FallDetectionViewSet.as_view(),name='fall_detection_upload_video'),
    path('fire_detection_upload_video',FireDetectionApiView.as_view(),name='fire_detection_upload_video'),
    path('intrusion_detection_upload_video',IntrusionDetectionApiView.as_view(),name='intrusion_detection_upload_video'),
    path('danger_zone_upload_video',DanzerDetectionApiView.as_view(),name='danger_zone_upload_video'),

    #dummy
    path('alert_generate',AlertViewSet.as_view({'post':'create','get':'list'}), name='alert_generate'),
    
    path('entry_exit_count',EntryExitCount.as_view({'get':'list'}), name='entry_exit_count'),
    path('queue_management',QueueManagementAPI.as_view({'get':'list'}), name='queue_management'),
    path('heat_mapping_api',HeatMappingAPI.as_view({'get':'list'}), name='heat_mapping_api'),
    path('demographic_details_api',DemographicDetailsAPI.as_view({'get':'list'}), name='demographic_details_api'),
    path('parking_api',ParkingAPI.as_view({'post':'create','get':'list'}), name='parking_api'),
    path('export_csv_report',ExportReportCSV.as_view({'get':'list'}),name='export_csv_report'),

    path('user_profile_view',UserProfileView.as_view({'put': 'update','get':'list'}),name='user_profile_view'),


    path('alert_image_upload', AlertImageUploadView.as_view(), name='alert-image-upload'),

    path('group_list',GroupListAPIView.as_view({'get':'list'}), name='group_list'),
    path('group_permission',GroupPermissionAssignAPIView.as_view({'post':'create'}), name='permission_listing'),
    # path('group_creation',GroupCreateView.as_view({'post':'create','delete':'destroy'}), name='group_creation'),
    path('dashboard',DashboardAPI.as_view({'get':'list'}), name='Dashboard'),
    path('alert_for_ppe_kit',AlertForPPEApiView.as_view({'get':'list'}), name='alert_for_ppe_kit'),
    path('id_based_alert/<int:alert_id>',IdBasedAlertsApi.as_view({'get':'list'}), name='IdBasedAlertsApi'),
    path('id_based_ppe_alert/<int:alert_id>',IdBasedPPEAlertsApi.as_view({'get':'list'}), name='IdBasedPPEAlertsApi'),
    path('camera_id_for_roi/<int:camera_id>',CameraIDForROI.as_view({'get':'list'}), name='CameraIDForROI'),
    path('delete_log_api',DeleteLogApi.as_view({'get':'list'}), name='DeleteLogApi'),
    
]
