"""Pydantic schemas for transaction-related API operations.""" from pydantic import BaseModel, Field from datetime import date, datetime from typing import Optional from decimal import Decimal class TransactionBase(BaseModel): """Base schema for transaction data.""" run_date: date action: str symbol: Optional[str] = None description: Optional[str] = None transaction_type: Optional[str] = None exchange_quantity: Optional[Decimal] = None exchange_currency: Optional[str] = None currency: Optional[str] = None price: Optional[Decimal] = None quantity: Optional[Decimal] = None exchange_rate: Optional[Decimal] = None commission: Optional[Decimal] = None fees: Optional[Decimal] = None accrued_interest: Optional[Decimal] = None amount: Optional[Decimal] = None cash_balance: Optional[Decimal] = None settlement_date: Optional[date] = None class TransactionCreate(TransactionBase): """Schema for creating a new transaction.""" account_id: int unique_hash: str class TransactionResponse(TransactionBase): """Schema for transaction API responses.""" id: int account_id: int unique_hash: str created_at: datetime updated_at: datetime class Config: from_attributes = True