hku-class/backend/app/schemas/fund.py

50 lines
1.0 KiB
Python

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]