o
    /i1                     @   s  d dl mZmZmZmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ e Zejdedeejfd	ed
ejfddZ ej!de	e dedddedddeejfde"dee" d
ejfddZ#ej!dedeejfde"d
ejfddZ$ej!dedeejfde"d
ejfddZ%ej&dedeejfde"ded
ejfdd Z'ej(dedeejfde"d
ejfd!d"Z)ej!dededdded d d#d$ed%d d&d'd(edd)dddddddded*d+dd,eejfde"d-e*d.e*dee" d/ee" d0ee" d1ee" d2ee" d3ee" d4ee* d5ee" d6ee" d7ee* d
ejfd8d9Z+ed:eejfd;ed
ejfd<d=Z,ejd>edeejfd;ed
ejfd?d@Z-ejdAedeejfdBed
ejfdCdDZ.ejdEedeejfd;ed
ejfdFdGZ/ej!dHedeejfdIe"d
ejfdJdKZ0ej!dLedeejfde"de"d
ejfdMdNZ1ej&dHedeejfdIe"dOed
ejfdPdQZ2e(dHeejfdIe"d
ejfdRdSZ3dS )T    )	APIRouterDependsHTTPExceptionQuery)database)OptionalListDict)datetime)ScheduleScheduleCreateScheduleUpdate	SchedulesScheduleAssignmentRequestScheduleSelectItem!ScheduleTravelStatusUpdateRequestScheduleWithTasksCreateShiftStatusCreateShiftStatusUpdateShiftStatusResponseShiftStatusList)	schedules/)response_modelscheduledbc                 C      t d t| |S )N=create_schedulecreate_schedulecreate_schedule1010101010101010)printschedule_servicecreate_schedule_service)r   r    r!   =/var/www/html/moveengine/app/v1/routers/platform/schedules.pycreate_schedule
      r#   z/search.z
Account ID)descriptionNz Search keyword for schedule_name
account_idqc                 C   s   t j| ||dS )N)r&   search_queryr   )r   search_schedules_select_service)r&   r'   r   r!   r!   r"   search_schedules_for_select   s
   r*   z/{schedule_id}schedule_idc                 C       t | |}|stddd|S N  Schedule not foundstatus_codedetail)r   get_schedule_servicer   )r+   r   r   r!   r!   r"   get_account      r4   z/list/{account_id}c                 C   s   t | |S N)r   list_schedules_service)r&   r   r!   r!   r"   list_schedules#   s   r8   schedule_updatec                 C   "   t | ||}|stddd|S r-   )r   update_schedule_servicer   )r+   r9   r   updatedr!   r!   r"   update_schedule'      r=   c                 C   r,   r-   )r   delete_schedule_servicer   )r+   r   deletedr!   r!   r"   delete_schedule.   r5   rA   zPagination start)ger%   
   d   zMax number of items to return)gtler%   zOptional search keywordcreated_datezField to sort by   skiplimitstatusstart_date_fromstart_date_tocustomer_idworkforce_id	trip_typefleet_idsort_byorder_byc                 C   s.   t d tj| |||||||||	|
|||dS )Nz'Coming schedule 69696969696969696969696)r&   rI   rJ   r(   rK   rL   rM   rN   rO   rP   rQ   rR   rS   r   )r   r   r7   )r&   rI   rJ   r'   rK   rL   rM   rN   rO   rP   rQ   rR   rS   r   r!   r!   r"   list_schedules_with_query5   s"   rT   z/assignrequestc                    s:   t j| j| j| j|d}td |stdddddiS )N)r+   r&   rO   r   z>Schedule or Workforce not foundSchedule or Workforce not foundr.   zSchedule or Workforce not foundr0   messagezSchedule assigned successfully)r   assign_schedule_servicer+   r&   rO   r   r   )rU   r   successr!   r!   r"   assign_scheduleX   s   rY   z/update-travel-statusc                 C   s(   t j| j| j|d}|stddd|S )N)r+   travel_statusr   r.   r/   r0   )r   update_travel_status_servicer+   rZ   r   )rU   r   r<   r!   r!   r"   update_travel_statusf   s   r\   z/create-with-taskspayloadc                 C   r   )N151515151515151515151551ssss)r   r   "create_schedule_with_tasks_service)r]   r   r!   r!   r"   create_schedule_with_taskst   r$   r`   z/shift-statusc                 C   s   t | |}|S r6   )r   create_shift_status_service)rU   r   resultr!   r!   r"   create_shift_statusz   s   rc   z/shift-status/{shift_status_id}shift_status_idc                 C   r,   Nr.   zShift status not foundr0   )r   get_shift_status_servicer   )rd   r   rb   r!   r!   r"   get_shift_status   r5   rg   z-/shift-status/list/{account_id}/{schedule_id}c                 C   s   t | ||S r6   )r   list_shift_status_service)r&   r+   r   r!   r!   r"   list_shift_statuses   s   ri   updatec                 C   r:   re   )r   update_shift_status_servicer   )rd   rj   r   r<   r!   r!   r"   update_shift_status   r>   rl   c                 C   r,   re   )r   delete_shift_status_servicer   )rd   r   r@   r!   r!   r"   delete_shift_status   r5   rn   )4fastapir   r   r   r   app.dbr   typingr   r   r	   r
    app.v1.models.platform.schedulesr   r   r   r   r   r   r   r   r   r   r   r   app.v1.services.platformr   r   routerpostget_mongo_dbMongoDBr#   getstrr*   r4   r8   putr=   deleterA   intrT   rY   r\   r`   rc   rg   ri   rl   rn   r!   r!   r!   r"   <module>   s    8 

  $ 


	
"    $$$