from pydantic import BaseModel, EmailStr from datetime import datetime from typing import Optional class UserBase(BaseModel): """用户基础模型""" username: str department: str role: str class UserCreate(UserBase): """创建用户模型""" password: str class UserUpdate(BaseModel): """更新用户模型""" password: Optional[str] = None department: Optional[str] = None role: Optional[str] = None class UserResponse(UserBase): """用户响应模型""" id: int created_at: datetime updated_at: Optional[datetime] = None class Config: from_attributes = True class UserLogin(BaseModel): """用户登录模型""" username: str password: str