o
    b]hf                  	   @   s   d dl 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mZ dZded	efd
dZdedededee fddZdefddZdedefddZdefddZdS )    )BackgroundTasksHTTPException)ObjectId)datetime)Optional)str_to_objectid   )ActivityCreateActivityUpdateactivitybackground_tasksc                 C   s8   |t  }|  }t |d< ||}t|j|d< |S )Ncreated_dateid)COLLECTION_NAMEdictr   utcnow
insert_onestrinserted_id)r   r   dbactivity_collectionactivity_datainserted r   9/var/www/html/moveengine/app/v1/services/saas/activity.pycreate_activity_service   s   
r   
account_idskiplimitqc                 C   s   |t  }d| i}|r|dd}d|id|id|id|ig|d< t||||}||}	|D ]#}
t|
d	 |
d
< |
d	d  d|
v rVt|
d t	rV|
d 
 |
d< q3|	|dS )Nr   i)z$regexz$optionsactivity_titlestatususer_idto_idz$or_idactivity_idr   )total_count
activities)r   listfindr   r   count_documentsr   pop
isinstancer   	isoformat)r   r   r   r   r   r   queryregexr(   r'   r   r   r   r   get_activities_service   s$   


r1   r&   c                 C   s>   |t  dt| i}|rt|d |d< |dd  |S d S )Nr%   r&   )r   find_oner   r   r,   )r&   r   r   r   r   r   read_activity_service0   s   r3   updatec                 C   s~   |t  }dd |  D }|dt| id|i}|jdkr&tddd|dt| i}t|d |d	< |	dd  |S )
Nc                 S   s   i | ]\}}|d ur||qS )Nr   ).0kvr   r   r   
<dictcomp>;   s    z+update_activity_service.<locals>.<dictcomp>r%   z$setr     Activity not foundstatus_codedetailr   )
r   r   items
update_oner   matched_countr   r2   r   r,   )r&   r4   r   
collectionupdate_dataresultupdatedr   r   r   update_activity_service9   s   

rE   c                 C   s\   |t  }|dt| i}|stddd|dt| i t|d |d< |dd  |S )Nr%   r9   r:   r;   r   )r   r2   r   r   
delete_oner   r,   )r&   r   rA   r   r   r   r   delete_activity_serviceK   s   rG   N)fastapir   r   bsonr   r   typingr   app.v1.libraries.objectr   models.saas.activityr	   r
   r   r   r   intr1   r3   rE   rG   r   r   r   r   <module>   s    	