from datetime import date, datetime from pydantic import BaseModel class FundRecordCreate(BaseModel): type: str # income | expense amount: float category: str description: str | None = None image_urls: list[str] | None = None record_date: date class FundRecordUpdate(BaseModel): type: str | None = None amount: float | None = None category: str | None = None description: str | None = None image_urls: list[str] | None = None record_date: date | None = None class FundRecordOut(BaseModel): id: int class_id: int type: str amount: float category: str description: str | None image_urls: list[str] | None record_date: date recorder_id: int recorder_name: str created_at: datetime updated_at: datetime class CategoryAmount(BaseModel): category: str amount: float class FundStatistics(BaseModel): total_income: float total_expense: float balance: float income_by_category: list[CategoryAmount] expense_by_category: list[CategoryAmount]