from enum import Enum


class GuideWordType(Enum):
    """
        引导词类型
        NEWVISITOR 新访客 0
        BOOKEDVISITOR 已预约访客 1
        STAFF 员工 2
        CHAT 聊天关键词 3
    """
    NEWVISITOR = 0
    BOOKEDVISITOR = 1 
    STAFF = 2 
    CHAT = 3

class ExplanationContentStatus(Enum):
    """
    讲解内容状态

    NOTSTART: 未开始
    READY: 已就绪
    PLAYING: 播放中
    FINISH: 已完成
    """
    NOTSTART = '0'
    READY = '1'
    PLAYING = '2'
    FINISH = '3'

class BusinessType(Enum):
    """
    业务操作类型

    OTHER: 其它
    INSERT: 新增
    UPDATE: 修改
    DELETE: 删除
    GRANT: 授权
    EXPORT: 导出
    IMPORT: 导入
    FORCE: 强退
    GENCODE: 生成代码
    CLEAN: 清空数据
    """

    OTHER = 0
    INSERT = 1
    UPDATE = 2
    DELETE = 3
    GRANT = 4
    EXPORT = 5
    IMPORT = 6
    FORCE = 7
    GENCODE = 8
    CLEAN = 9


class RedisInitKeyConfig(Enum):
    """
    系统内置Redis键名
    """

    @property
    def key(self):
        return self.value.get('key')

    @property
    def remark(self):
        return self.value.get('remark')

    ACCESS_TOKEN = {'key': 'access_token', 'remark': '登录令牌信息'}
    SYS_DICT = {'key': 'sys_dict', 'remark': '数据字典'}
    SYS_CONFIG = {'key': 'sys_config', 'remark': '配置信息'}
    CAPTCHA_CODES = {'key': 'captcha_codes', 'remark': '图片验证码'}
    ACCOUNT_LOCK = {'key': 'account_lock', 'remark': '用户锁定'}
    PASSWORD_ERROR_COUNT = {'key': 'password_error_count', 'remark': '密码错误次数'}
    SMS_CODE = {'key': 'sms_code', 'remark': '短信验证码'}
