# coding=utf-8
"""
    @project: MaxKB
    @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 maxkb import settings


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('MAXKB_VERSION')
        license_is_valid = cache.get(Cache_Version.SYSTEM.get_key(key='license_is_valid'),
                                     version=Cache_Version.SYSTEM.get_version())
        return {'version': version, 'edition': settings.edition,
                'license_is_valid': license_is_valid if license_is_valid is not None else False}
