# coding=utf-8
"""
    @project: lzkb
    @Author：虎
    @file： __init__.py
    @date：2023/11/10 10:43
    @desc:
"""
from django.core.cache import cache
from django.db.models import QuerySet
from django.utils.translation import gettext as _


from ..constants.cache_version import Cache_Version
from ..db.sql_execute import update_execute
from ..utils.lock import RedisLock

update_document_status_sql = """
                             UPDATE "public"."document"
                             SET status ="replace"("replace"("replace"(status, '1', '3'), '0', '3'), '4', '3')
                             WHERE status ~ '1|0|4' \
                             """


def run():
    from models_provider.models import Model, Status
    rlock = RedisLock()
    if rlock.try_lock('event_init', 30 * 30):
        try:
            # 修改Model状态为ERROR
            QuerySet(Model).filter(
                status=Status.DOWNLOAD
            ).update(
                status=Status.ERROR, meta={'message': _('The download process was interrupted, please try again')}
            )
            # 更新文档状态
            update_execute(update_document_status_sql, [])
            version, get_key = Cache_Version.SYSTEM.value
            cache.delete(get_key(key='rsa_key'), version=version)
        finally:
            rlock.un_lock('event_init')
