o
    VhW                  &   @   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 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d.edeejfd/e!d2e
dejfd3d4Z(ej)d.edeejfd/e!dejfd5d6Z*ej d7edeejeefde!dejdefd8d9Z+ejd:edeejfd;edejfd<d=Z,dS )>    )	APIRouterDependsHTTPExceptionBody)database)Task
TaskCreate
TaskUpdateTaskListTaskStatusUpdateRequest)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.   r/   r0   r1   r2   r3   r4   r5   r   r   r   r   list_all_tasks   s   ,r8   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   rA   z
/{task_id}task_idc                 C       t | |}|stddd|S N  Task not foundr9   )r   get_task_servicer   rB   r   r   r   r   r   get_task+      rI   updatec                 C   s"   t | ||}|stddd|S rD   )r   update_task_servicer   )rB   rK   r   r   r   r   r   update_task2   s   rM   c                 C   rC   rD   )r   delete_task_servicer   rH   r   r   r   delete_task9   rJ   rO   z/list/{account_id}/c                 C   r   r   r6   r"   r   r   r   
list_tasks@   r   rP   z/update-task-statusrequestc                 C   s(   t j| j| j|d}|stddd|S )N)rB   task_statusr   rE   rF   r9   )r   update_task_status_servicerB   rR   r   )rQ   r   updatedr   r   r   update_task_statusM   s   rU   )-fastapir   r   r   r   app.dbr   app.v1.models.platform.tasksr   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intr8   rA   rI   rM   deleterO   rP   rU   r   r   r   r   <module>   s\     * $ *