Files
fastapi-best-architecture/backend/common/enums.py
T

140 lines
2.6 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from enum import Enum
from enum import IntEnum as SourceIntEnum
from typing import Type
class _EnumBase:
@classmethod
def get_member_keys(cls: Type[Enum]) -> list[str]:
return [name for name in cls.__members__.keys()]
@classmethod
def get_member_values(cls: Type[Enum]) -> list:
return [item.value for item in cls.__members__.values()]
class IntEnum(_EnumBase, SourceIntEnum):
"""整型枚举"""
pass
class StrEnum(_EnumBase, str, Enum):
"""字符串枚举"""
pass
class MenuType(IntEnum):
"""菜单类型"""
directory = 0
menu = 1
button = 2
class RoleDataScopeType(IntEnum):
"""数据范围"""
all = 1
custom = 2
class MethodType(StrEnum):
"""请求方法"""
GET = 'GET'
POST = 'POST'
PUT = 'PUT'
DELETE = 'DELETE'
PATCH = 'PATCH'
OPTIONS = 'OPTIONS'
class LoginLogStatusType(IntEnum):
"""登陆日志状态"""
fail = 0
success = 1
class BuildTreeType(StrEnum):
"""构建树形结构类型"""
traversal = 'traversal'
recursive = 'recursive'
class OperaLogCipherType(IntEnum):
"""操作日志加密类型"""
aes = 0
md5 = 1
itsdangerous = 2
plan = 3
class StatusType(IntEnum):
"""状态类型"""
disable = 0
enable = 1
class UserSocialType(StrEnum):
"""用户社交类型"""
github = 'GitHub'
linuxdo = 'LinuxDo'
class GenModelColumnType(StrEnum):
"""代码生成模型列类型"""
BIGINT = 'BIGINT'
BINARY = 'BINARY'
BIT = 'BIT'
BLOB = 'BLOB'
BOOL = 'BOOL'
BOOLEAN = 'BOOLEAN'
CHAR = 'CHAR'
DATE = 'DATE'
DATETIME = 'DATETIME'
DECIMAL = 'DECIMAL'
DOUBLE = 'DOUBLE'
DOUBLE_PRECISION = 'DOUBLE PRECISION'
ENUM = 'ENUM'
FLOAT = 'FLOAT'
GEOMETRY = 'GEOMETRY'
GEOMETRYCOLLECTION = 'GEOMETRYCOLLECTION'
INT = 'INT'
INTEGER = 'INTEGER'
JSON = 'JSON'
LINESTRING = 'LINESTRING'
LONGBLOB = 'LONGBLOB'
LONGTEXT = 'LONGTEXT'
MEDIUMBLOB = 'MEDIUMBLOB'
MEDIUMINT = 'MEDIUMINT'
MEDIUMTEXT = 'MEDIUMTEXT'
MULTILINESTRING = 'MULTILINESTRING'
MULTIPOINT = 'MULTIPOINT'
MULTIPOLYGON = 'MULTIPOLYGON'
NUMERIC = 'NUMERIC'
POINT = 'POINT'
POLYGON = 'POLYGON'
REAL = 'REAL'
SERIAL = 'SERIAL'
SET = 'SET'
SMALLINT = 'SMALLINT'
TEXT = 'TEXT'
TIME = 'TIME'
TIMESTAMP = 'TIMESTAMP'
TINYBLOB = 'TINYBLOB'
TINYINT = 'TINYINT'
TINYTEXT = 'TINYTEXT'
VARBINARY = 'VARBINARY'
VARCHAR = 'VARCHAR'
YEAR = 'YEAR'