# coding=utf-8
"""
    @project: LZKB
    @Author：虎虎
    @file： system.py
    @date：2025/6/4 16:01
    @desc:
"""
import os

from django.db import models
from rest_framework import serializers
from django.core.cache import cache

from common.constants.cache_version import Cache_Version
from common.database_model_manage.database_model_manage import DatabaseModelManage
from common.utils.rsa_util import get_key_pair_by_sql
from lzkb import settings
from system_manage.models import SystemSetting


class SettingType(models.CharField):
    # Community Edition
    CE = "CE", "社区"
    # Enterprise Edition
    PE = "PE", "专业版"
    # Professional Edition
    EE = "EE", '企业版'


class SystemProfileResponseSerializer(serializers.Serializer):
    version = serializers.CharField(required=True, label="version")
    edition = serializers.CharField(required=True, label="edition")
    license_is_valid = serializers.BooleanField(required=True, label="License is valid")


class SystemProfileSerializer(serializers.Serializer):
    @staticmethod
    def profile():
        version = os.environ.get('NEBULA_VERSION', os.environ.get('LZKB_VERSION', os.environ.get('MAXKB_VERSION')))
        license_is_valid = DatabaseModelManage.get_model('license_is_valid') or (lambda: False)
        return {'version': version, 'edition': settings.edition,
                'license_is_valid': license_is_valid() if license_is_valid() is not None else False,
                'ras': get_key_pair_by_sql().get('key')}
