o
    TCh}                  &   @   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
mZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	l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deejeefde"dejdefddZ#ej!deddddddddddddd ddddeejfde"dee" dee" dee" dee$ dee" dee" dee" d ee" d!ee" d"ee" d#ee" d$e%d%e%d&ee" d'ee" d(ee" dejf$d)d*Z&e!d+dddeejfdee" d e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d0d1Z(ej!d2edeejfd3e"dejfd4d5Z)ejd2edeejfd3e"d6e
dejfd7d8Z*ej+d2edeejfd3e"dejfd9d:Z,ej!d;edeejeefde"dejdefd<d=Z-dS )>    )	APIRouterDependsHTTPExceptionBody)database)Task
TaskCreate
TaskUpdateTaskListTaskStatusUpdateRequestTaskStatusResponse)CheckListSelect)User)get_current_userdetails)tasksget_select_list)Optional)datetime/)response_modeltaskdbc                 C      t | |S N)task_servicecreate_task_service)r   r    r   9/var/www/html/moveengine/app/v1/routers/platform/tasks.pycreate_task      r   z/getchecklist/{account_id}
account_idcurrent_userc                 C   s   t | ||S r   r   r!   r   r"   r   r   r   get_checklist   r    r$   N
   asc
service_id	task_modepriority	roundtrip	from_dateto_datecustomer_idworkforce_idfleet_idstatusqskiplimitsort_by
sort_orderschedule_idc                 C   s,   t | |||||||||	|
|||||||S r   r   list_tasks_service)r!   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r   r   r   r   list_all_tasks   s   ,r9   z/summaryc              
   C   sD   z| ||d}t ||W S  ty! } ztdt|dd }~ww )N)r-   r.   r/   i  status_codedetail)r   get_task_summary_service
ValueErrorr   str)r-   r.   r/   r   payloader   r   r   get_task_summary   s   rB   z/update-task-statusrequestc                 C   s0   t d tj| j| j|d}|stddd|S )NzTest update-task-status)task_idtask_statusr     Task not foundr:   )printr   update_task_status_servicerD   rE   r   )rC   r   updatedr   r   r   update_task_status+   s   rK   z
/{task_id}rD   c                 C       t | |}|stddd|S NrF   rG   r:   )r   get_task_servicer   rD   r   r   r   r   r   get_task:      rP   updatec                 C   s"   t | ||}|stddd|S rM   )r   update_task_servicer   )rD   rR   r   r   r   r   r   update_taskA   s   rT   c                 C   rL   rM   )r   delete_task_servicer   rO   r   r   r   delete_taskH   rQ   rV   z/list/{account_id}/c                 C   r   r   r7   r#   r   r   r   
list_tasksO   r    rW   ).fastapir   r   r   r   app.dbr   app.v1.models.platform.tasksr   r   r	   r
   r   r   app.v1.models.platform.servicesr   app.v1.models.saas.usersmodelr   app.v1.dependencies.authr   app.v1.services.platformr   r   !app.v1.services.platform.servicesr   typingr   r   routerpostget_mongo_dbMongoDBr   getr?   r$   boolintr9   rB   rK   rP   rT   deleterV   rW   r   r   r   r   <module>   s\      * $ .