U
    YHg7                     @   st   d dl mZ d dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZ G dd deZG d	d
 d
e	ejZdS )    )absolute_import)	BaseQuery)datetime	timedelta)db)TimestampMixin)helpersc                   @   s   e Zd Zdd Zdd ZdS )CronExecutionLogQueryc                 C   s,   t  t|d }tjtj|k  }|S )N)days)r   nowr   CronExecutionLogqueryfilter
start_timeall)selfr
   Zdays_agoZold_records r   ;/var/www/dostadmin/dostadmin/db_model/cron_execution_log.pyget_old_cron_records
   s
    z*CronExecutionLogQuery.get_old_cron_recordsc                 C   s0   t jttj|ktjtjjktj	|k
 S N)r   sessionr   r   r   r   name	CronNamesCRON_SCHEDULER_REGULARstatusfirst)r   Zcurrent_datetimer   r   r   r   5get_regular_cron_execution_log_by_datetime_and_status   s    zKCronExecutionLogQuery.get_regular_cron_execution_log_by_datetime_and_statusN)__name__
__module____qualname__r   r   r   r   r   r   r	   	   s   r	   c                   @   s   e Zd ZdZeZG dd dZG dd dZej	ej
ddZej	edd	d
Ze	ejZe	ejZe	edZedd Zedd ZdS )r   cron_execution_logc                   @   s   e Zd ZdZdZdZdZdS )zCronExecutionLog.CronRunStatuspendingzin-progress	completedfailedN)r   r   r   PENDINGIN_PROGRESS	COMPLETEDFAILEDr   r   r   r   CronRunStatus$   s   r(   c                   @   s   e Zd ZdZdS )zCronExecutionLog.CronNamesZcampaign_scheduler_regularN)r   r   r   r   r   r   r   r   r   *   s   r   T)primary_keyd   F)nullable   c                 C   s4   t j|}|r0|D ]}tj| qtj  d S r   )r   r   r   r   r   deletecommit)clsr
   Zold_cron_logsZold_cron_logr   r   r   delete_old_cron_logs3   s
    z%CronExecutionLog.delete_old_cron_logsc                 C   s*   ||_ |tjjkrt |_tj	  d S r   )
r   r   r(   r&   r   get_current_isttimeend_timer   r   r.   )r/   Zcron_logr   r   r   r   update_cron_log_status;   s    
z'CronExecutionLog.update_cron_log_statusN)r   r   r   __tablename__r	   query_classr(   r   r   ColumnIntegeridStringr   DateTimer   r2   r   classmethodr0   r3   r   r   r   r   r       s   
r   N)
__future__r   flask_sqlalchemyr   r   r   	dostadminr   dostadmin.mixinsr   Zutils.helpersr   r	   Modelr   r   r   r   r   <module>   s   