mirror of
https://github.com/fastapi-practices/fastapi-best-architecture.git
synced 2026-09-21 21:15:13 +00:00
140 lines
2.6 KiB
Python
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'
|