from pydantic import BaseModel from typing import Optional from datetime import datetime from app.models.transaction import TransactionStatus, TransactionType class TransactionBase(BaseModel): amount: float currency: str to_address: str notes: Optional[str] = None class TransactionCreate(TransactionBase): from_wallet_id: Optional[int] = None class TransactionResponse(TransactionBase): id: int user_id: int from_wallet_id: Optional[int] to_wallet_id: Optional[int] transaction_hash: Optional[str] fee: float transaction_type: TransactionType status: TransactionStatus from_address: Optional[str] block_number: Optional[int] confirmations: int created_at: datetime class Config: from_attributes = True class FiatTransactionBase(BaseModel): amount: float currency: str payment_method: Optional[str] = None notes: Optional[str] = None class FiatTransactionCreate(FiatTransactionBase): transaction_type: TransactionType class FiatTransactionResponse(FiatTransactionBase): id: int account_id: int transaction_type: TransactionType status: TransactionStatus bank_reference: Optional[str] created_at: datetime class Config: from_attributes = True