import pathlib

from patch.include import *


def clear_old_license():
    for license in models.CmfLicense.list(filter=['lic_product', '=', None]):
        license.delete()


def apply_regnum():
    config_path = pathlib.Path('/opt/CONFIG')
    if not config_path.exists():
        return
    key_re = re.compile(r'''^ *KEY=['"]?(?P<regnum>[\d-]+)['"]?''')
    regnum = None
    for line in config_path.open():
        key_match = key_re.match(line)
        if key_match:
            regnum = key_match['regnum']
    if regnum:
        print(f'Found REGNUM {regnum}. Try to apply.')
        models.CmfLicense.apply_regnum(regnum)


@app_context(commit=True)
def refactor_license():
    """
    Для тестирования патча: ( cd /opt/eva-app; python3 -m patch.202408221502_fix_gantt_task_type )
    Здесь можно работать с моделями через models.CmfTask и т.д.
    Для прогрессбара используйте:
    for task in tqdm(models.CmfTask.list()):
        ...
    """
    clear_old_license()
    apply_regnum()


if __name__ == "__main__":
    refactor_license()
