Converters
domain.expense.ports.converters
Summary
Converters bridging enriched fetch-request output and Expense aggregates for MongoDB storage.
Classes
Functions
enriched_to_expenses
async
Convert enriched expenses into Expense aggregates ready for storage.
Each enriched expense is expanded into an Expense referencing the account
of fetch_request and resolved entity and tag objects.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
enriched_list |
List[EnrichedExpense]
|
Enriched expenses to convert. |
required |
fetch_request |
FetchRequest
|
Fetch request providing the source account. |
required |
entity_svc |
Any
|
Entity CRUD service used to resolve or create payees. |
required |
tag_svc |
Any
|
Tag CRUD service used to resolve tags by name. |
required |
fetch_request_id |
Optional[str]
|
Fetch request ID recorded on expenses;
falls back to |
None
|
Returns:
| Type | Description |
|---|---|
List[Expense]
|
List[Expense]: Converted expense aggregates. |
Raises:
| Type | Description |
|---|---|
ValueError
|
When an enriched tag name does not exist. |
expense_to_storage
Convert Expense FK fields to ObjectIds in-place for MongoDB storage.
Raises ValueError if any FK field lacks an ObjectId — prevents storing embedded subdocuments instead of references.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
expense |
Expense
|
Expense to normalize for storage. |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
When |