comdirect ingest: overhaul
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
from pathlib import Path
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from src.constants import IBAN_PATTERN, Currency
|
||||
from src.models.b4w import B4wExport
|
||||
from src.models.comdirect import ComdirectCreditCard, ComdirectDepot, ComdirectGiro
|
||||
|
||||
|
||||
class Account(BaseModel):
|
||||
name: str
|
||||
model: type[B4wExport | ComdirectGiro | ComdirectCreditCard | ComdirectDepot]
|
||||
iban: str | None = Field(pattern=IBAN_PATTERN, default=None)
|
||||
currency: Currency | None = None
|
||||
|
||||
|
||||
class Source(BaseModel):
|
||||
name: str
|
||||
source_path: Path
|
||||
accounts: list[Account]
|
||||
|
||||
def get_account_names(self) -> list[str]:
|
||||
return [a.name for a in self.accounts]
|
||||
|
||||
def get_account(self, name: str) -> Account | None:
|
||||
return next((a for a in self.accounts if a.name == name), None)
|
||||
Reference in New Issue
Block a user