o
    Sh                     @   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      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      r0   z/list/{account_id}c                 C   s   t | |S )Nr   list_schedules_service)r"   r   r   r   r   list_schedules#   s   r4   schedule_updatec                 C   s"   t | ||}|stddd|S r)   )r   update_schedule_servicer   )r'   r5   r   updatedr   r   r   update_schedule'   s   r8   c                 C   r(   r)   )r   delete_schedule_servicer   )r'   r   deletedr   r   r   delete_schedule.   r1   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"   rC   rD   r$   rE   rF   rG   rH   rI   rJ   rK   rL   r   r2   )r"   rC   rD   r#   rE   rF   rG   rH   rI   rJ   rK   rL   r   r   r   r   list_schedules_with_query5   s   rM   z/assignrequestc                    s2   t j| j| j| j|d}|stdddddiS )N)r'   r"   rI   r   r*   zSchedule or Workforce not foundr,   messagezSchedule assigned successfully)r   assign_schedule_servicer'   r"   rI   r   )rN   r   successr   r   r   assign_scheduleU   s   rR   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'   rS   r   )rN   r   r7   r   r   r   update_travel_statusc   s   rU   z/create-with-taskspayloadc                 C   r   )N151515151515151515151551ssss)r   r   "create_schedule_with_tasks_service)rV   r   r   r   r   create_schedule_with_tasksq   r    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&   r0   r4   putr8   deleter;   intrM   rR   rU   rY   r   r   r   r   <module>   s    ( 

  $ 


	
 $