diff --git a/app/schemas.py b/app/schemas.py index f82b4c8..9371673 100644 --- a/app/schemas.py +++ b/app/schemas.py @@ -1,6 +1,6 @@ from pydantic import BaseModel from datetime import date -from typing import Optional +from typing import Optional, List # ----------------------- # Customer Schemas @@ -28,6 +28,7 @@ class Customer(CustomerBase): class Config: orm_mode = True + # ----------------------- # Account Schemas # ----------------------- @@ -43,3 +44,32 @@ class Account(AccountBase): account_number: str class Config: orm_mode = True + + +# ----------------------- +# Transaction Schemas +# ----------------------- +class TransactionBase(BaseModel): + account_id: str + branch_id: Optional[int] = None + transaction_type: str + amount: float + date: date + balance_after: float + vendor: Optional[str] = None + transaction_location: Optional[str] = None + +class Transaction(TransactionBase): + transaction_id: str + class Config: + orm_mode = True + + +# ----------------------- +# Nested Schemas +# ----------------------- +class AccountWithTransactions(Account): + transactions: Optional[List[Transaction]] = [] + +class CustomerWithAccounts(Customer): + accounts: Optional[List[AccountWithTransactions]] = []