# -*- 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="展示文本")