schemas.balance_snapshot_schemas¶
src.schemas.balance_snapshot_schemas
¶
Balance snapshot request and response schemas.
Pydantic schemas for balance snapshot API endpoints. Includes: - Request schemas (client → API) - Response schemas (API → client) - DTO-to-schema conversion methods
Reference
- docs/architecture/api-design-patterns.md
Classes¶
BalanceSnapshotResponse
¶
Bases: BaseModel
Single balance snapshot response.
Attributes:
| Name | Type | Description |
|---|---|---|
id |
UUID
|
Snapshot unique identifier. |
account_id |
UUID
|
Account FK. |
balance |
Decimal
|
Total account balance. |
available_balance |
Decimal | None
|
Available balance (nullable). |
holdings_value |
Decimal | None
|
Total holdings value (nullable). |
cash_value |
Decimal | None
|
Cash balance (nullable). |
currency |
str
|
ISO 4217 currency code. |
source |
str
|
How snapshot was captured. |
captured_at |
datetime
|
When balance was captured. |
created_at |
datetime
|
Record creation timestamp. |
change_amount |
Decimal | None
|
Change from previous snapshot (nullable). |
change_percent |
float | None
|
Percentage change (nullable). |
Source code in src/schemas/balance_snapshot_schemas.py
Functions¶
from_dto
classmethod
¶
Convert application DTO to response schema.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dto
|
BalanceSnapshotResult
|
BalanceSnapshotResult from handler. |
required |
Returns:
| Type | Description |
|---|---|
BalanceSnapshotResponse
|
BalanceSnapshotResponse for API response. |
Source code in src/schemas/balance_snapshot_schemas.py
BalanceHistoryResponse
¶
Bases: BaseModel
Balance history response for charting.
Includes computed metrics for change tracking.
Attributes:
| Name | Type | Description |
|---|---|---|
snapshots |
list[BalanceSnapshotResponse]
|
List of snapshot responses (ordered by time). |
total_count |
int
|
Total number of snapshots in range. |
start_balance |
Decimal | None
|
Balance at start of period (nullable). |
end_balance |
Decimal | None
|
Balance at end of period (nullable). |
total_change_amount |
Decimal | None
|
Change over period (nullable). |
total_change_percent |
float | None
|
Percentage change over period (nullable). |
currency |
str | None
|
Currency of the values (nullable). |
Source code in src/schemas/balance_snapshot_schemas.py
Functions¶
from_dto
classmethod
¶
Convert application DTO to response schema.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dto
|
BalanceHistoryResult
|
BalanceHistoryResult from handler. |
required |
Returns:
| Type | Description |
|---|---|
BalanceHistoryResponse
|
BalanceHistoryResponse for API response. |
Source code in src/schemas/balance_snapshot_schemas.py
LatestSnapshotsResponse
¶
Bases: BaseModel
Latest snapshots response for portfolio summary.
Attributes:
| Name | Type | Description |
|---|---|---|
snapshots |
list[BalanceSnapshotResponse]
|
List of latest snapshot responses (one per account). |
total_count |
int
|
Number of accounts with snapshots. |
total_balance_by_currency |
dict[str, str]
|
Aggregate balance by currency. |
Source code in src/schemas/balance_snapshot_schemas.py
Functions¶
from_dto
classmethod
¶
Convert application DTO to response schema.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dto
|
LatestSnapshotsResult
|
LatestSnapshotsResult from handler. |
required |
Returns:
| Type | Description |
|---|---|
LatestSnapshotsResponse
|
LatestSnapshotsResponse for API response. |
Source code in src/schemas/balance_snapshot_schemas.py
BalanceHistoryRequest
¶
Bases: BaseModel
Request parameters for balance history query.
Attributes:
| Name | Type | Description |
|---|---|---|
start_date |
datetime
|
Start of date range (inclusive). |
end_date |
datetime
|
End of date range (inclusive). |
source |
str | None
|
Optional filter by snapshot source. |