43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from pydantic import BaseModel, Field
|
|
from typing import Optional
|
|
from datetime import datetime
|
|
|
|
|
|
class ActivityBase(BaseModel):
|
|
"""活动记录基础模型"""
|
|
user_name: str = Field(..., max_length=50, description="用户名(脱敏)")
|
|
action: str = Field(..., max_length=50, description="操作类型")
|
|
service_name: str = Field(..., max_length=100, description="服务名称")
|
|
service_type: Optional[str] = Field(None, max_length=50, description="服务类型")
|
|
sort_order: int = Field(default=0, description="排序顺序")
|
|
|
|
|
|
class ActivityCreate(ActivityBase):
|
|
"""创建活动记录"""
|
|
pass
|
|
|
|
|
|
class ActivityUpdate(BaseModel):
|
|
"""更新活动记录"""
|
|
user_name: Optional[str] = Field(None, max_length=50)
|
|
action: Optional[str] = Field(None, max_length=50)
|
|
service_name: Optional[str] = Field(None, max_length=100)
|
|
service_type: Optional[str] = Field(None, max_length=50)
|
|
sort_order: Optional[int] = None
|
|
|
|
|
|
class ActivityOut(ActivityBase):
|
|
"""活动记录输出模型"""
|
|
id: int
|
|
created_time: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class ActivityDisplay(BaseModel):
|
|
"""前端展示格式"""
|
|
text: str = Field(..., description="展示文本")
|