from pydantic import BaseModel from datetime import datetime from typing import Optional class ProjectBase(BaseModel): """项目基础模型""" name: str description: Optional[str] = None department: str budget: Optional[int] = None start_date: Optional[datetime] = None end_date: Optional[datetime] = None status: Optional[str] = "pending" class ProjectCreate(ProjectBase): """创建项目模型""" pass class ProjectUpdate(BaseModel): """更新项目模型""" name: Optional[str] = None description: Optional[str] = None department: Optional[str] = None budget: Optional[int] = None start_date: Optional[datetime] = None end_date: Optional[datetime] = None status: Optional[str] = None class ProjectResponse(ProjectBase): """项目响应模型""" id: int created_by: int created_at: datetime updated_at: Optional[datetime] = None class Config: from_attributes = True