Files
2025-12-30 17:39:55 +08:00

108 lines
4.1 KiB
Python

from sqlmodel import Field, SQLModel,BigInteger
from datetime import datetime
from typing import Optional
from enum import Enum
from pydantic import BaseModel
class OperationModules(str, Enum):
CHAT = "chat" # 问数
DATASOURCE = "datasource" # 数据源
DASHBOARD = "dashboard" # 仪表板
MEMBER = "member" # 成员
PERMISSION = "permission" # 权限
RULES = "rules" # q组
TERMINOLOGY = "terminology" # 术语
DATA_TRAINING = "data_training" # SQL 示例库
PROMPT_WORDS = "prompt_words" # 自定义提示词
USER = "user" # 用户
WORKSPACE = "workspace" # 工作空间
AI_MODEL = "ai_model" # AI 模型
APPLICATION = "application" # 嵌入式管理 应用
THEME = "theme" # 外观配置
PARAMS_SETTING = "params_setting" # 参数配置
API_KEY = "api_key" # api key
LOG_SETTING = "log_setting" # api key
SETTING = "setting" # 设置
SYSTEM_MANAGEMENT = "system_management" # 系统管理
OPT_LOG = "opt_log" # 操作日志
class OperationStatus(str, Enum):
SUCCESS = "success"
FAILED = "failed"
class OperationType(str, Enum):
CREATE = "create"
DELETE = "delete"
UPDATE = "update"
RESET_PWD = "reset_pwd"
UPDATE_PWD = "update_pwd"
UPDATE_STATUS = "update_status"
UPDATE_TABLE_RELATION = "update_table_relation"
EDIT = "edit"
LOGIN = "login"
VIEW = "view"
EXPORT = "export"
IMPORT = "import"
ADD = "add"
CREATE_OR_UPDATE = "create_or_update"
ANALYSIS = "analysis"
PREDICTION = "prediction"
class SystemLogsResource(SQLModel, table=True):
__tablename__ = "sys_logs_resource"
id: Optional[int] = Field(default=None, primary_key=True)
log_id: Optional[int] = Field(default=None,sa_type=BigInteger())
resource_id: Optional[str] = Field(default=None)
resource_name: Optional[str] = Field(default=None)
module: Optional[str] = Field(default=None)
class SystemLog(SQLModel, table=True):
__tablename__ = "sys_logs"
id: Optional[int] = Field(default=None, primary_key=True)
operation_type: str = Field(default=None)
operation_detail: str = Field(default=None)
user_id: Optional[int] = Field(default=None, sa_type=BigInteger())
operation_status: str = Field(default=None)
ip_address: Optional[str] = Field(default=None)
user_agent: Optional[str] = Field(default=None)
execution_time: int = Field(default=0, description="执行时间(毫秒)", sa_type=BigInteger())
error_message: Optional[str] = Field(default=None)
create_time: datetime = Field(default_factory=datetime.now)
module: Optional[str] = Field(default=None)
oid: Optional[int] = Field(default=None, sa_type=BigInteger())
resource_id: Optional[str] = Field(default=None)
request_method: Optional[str] = Field(default=None)
request_path: Optional[str] = Field(default=None)
remark: Optional[str] = Field(default=None)
user_name: Optional[str] = Field(default=None)
resource_name: Optional[str] = Field(default=None)
class SystemLogInfo(BaseModel):
id: str = Field(default=None)
operation_type_name: str = Field(default=None)
operation_detail_info: str = Field(default=None)
user_name: str = Field(default=None)
resource_name: str = Field(default=None)
operation_status: str = Field(default=None)
ip_address: Optional[str] = Field(default=None)
create_time: datetime = Field(default_factory=datetime.now)
oid_list: str = Field(default=None)
remark: str = Field(default=None)
class SystemLogInfoResult(BaseModel):
id: str = Field(default=None)
operation_type_name: str = Field(default=None)
operation_detail_info: str = Field(default=None)
user_name: str = Field(default=None)
resource_name: str = Field(default=None)
operation_status: str = Field(default=None)
operation_status_name: str = Field(default=None)
ip_address: Optional[str] = Field(default=None)
create_time: datetime = Field(default_factory=datetime.now)
oid_name: str = Field(default=None)
oid: str = Field(default=None)
error_message: str = Field(default=None)
remark: str = Field(default=None)