from pydantic import BaseModel from typing import Optional, List from datetime import datetime class TransactionCreate(BaseModel): offset_id: int quantity: int class TransactionResponse(BaseModel): id: int transaction_hash: str quantity: int price_per_credit: float total_amount: float status: str block_number: Optional[int] = None gas_used: Optional[int] = None created_at: datetime confirmed_at: Optional[datetime] = None buyer_id: int offset_id: int class Config: from_attributes = True class TransactionListResponse(BaseModel): transactions: List[TransactionResponse] total: int page: int page_size: int class PurchaseRequest(BaseModel): project_id: int quantity: int