o
    Ah                     @   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 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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& d
ejfd7d8Z'ed9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dAed
ejfdBdCZ*dS )D    )	APIRouterDependsHTTPExceptionQuery)database)OptionalListDict)datetime)ScheduleScheduleCreateScheduleUpdate	SchedulesScheduleAssignmentRequestScheduleSelectItem!ScheduleTravelStatusUpdateRequestScheduleWithTasksCreate)	schedules/)response_modelscheduledbc                 C   s   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
   s   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      r.   z/list/{account_id}c                 C      t | |S Nr   list_schedules_service)r    r   r   r   r   list_schedules#      r4   schedule_updatec                 C   s"   t | ||}|stddd|S r'   )r   update_schedule_servicer   )r%   r6   r   updatedr   r   r   update_schedule'   s   r9   c                 C   r&   r'   )r   delete_schedule_servicer   )r%   r   deletedr   r   r   delete_schedule.   r/   r<   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fleet_idsort_byorder_byc                 C   s$   t j| |||||||||	|
||dS )N)r    rD   rE   r"   rF   rG   rH   rI   rJ   rK   rL   rM   r   r2   )r    rD   rE   r!   rF   rG   rH   rI   rJ   rK   rL   rM   r   r   r   r   list_schedules_with_query5   s   rN   z/assignrequestc                    s2   t j| j| j| j|d}|stdddddiS )N)r%   r    rJ   r   r(   zSchedule or Workforce not foundr*   messagezSchedule assigned successfully)r   assign_schedule_servicer%   r    rJ   r   )rO   r   successr   r   r   assign_scheduleU   s   rS   z/update-travel-statusc                 C   s(   t j| j| j|d}|stddd|S )N)r%   travel_statusr   r(   r)   r*   )r   update_travel_status_servicer%   rT   r   )rO   r   r8   r   r   r   update_travel_statusc   s   rV   z/create-with-taskspayloadc                 C   r0   r1   )r   "create_schedule_with_tasks_service)rW   r   r   r   r   create_schedule_with_tasksq   r5   rY   )+fastapir   r   r   r   app.dbr   typingr   r   r	   r
    app.v1.models.platform.schedulesr   r   r   r   r   r   r   r   app.v1.services.platformr   r   routerpostget_mongo_dbMongoDBr   getstrr$   r.   r4   putr9   deleter<   intrN   rS   rV   rY   r   r   r   r   <module>   s    ( 

  $ 


	
 $