25 lines
No EOL
744 B
Python
25 lines
No EOL
744 B
Python
from decimal import Decimal
|
|
from typing import Optional
|
|
from pydantic import BaseModel
|
|
|
|
from app.schemas.transaction import Transaction
|
|
from app.util.encoders import decimal_encoder
|
|
|
|
class DashboardStats(BaseModel):
|
|
transaction_count: int
|
|
transaction_count_previous: int
|
|
transaction_energy_total: Decimal
|
|
transaction_energy_total_previous: Decimal
|
|
transaction_cost_total: Decimal
|
|
transaction_cost_total_previous: Decimal
|
|
|
|
class Config:
|
|
json_encoders = {Decimal: decimal_encoder}
|
|
|
|
class DashboardResponse(BaseModel):
|
|
stats: DashboardStats
|
|
current_transaction: Optional[Transaction] = None
|
|
recent_transactions: list[Transaction]
|
|
|
|
class Config:
|
|
json_encoders = {Decimal: decimal_encoder} |