from typing import Optional from pydantic import BaseModel from datetime import datetime from app.models.payment import PaymentStatus class PaymentBase(BaseModel): order_id: int account_number: str account_name: str bank_name: str amount: float reference: str class PaymentCreate(PaymentBase): pass class PaymentUpdate(BaseModel): status: Optional[PaymentStatus] = None provider_transaction_id: Optional[str] = None class PaymentInDBBase(PaymentBase): id: Optional[int] = None status: Optional[PaymentStatus] = None provider_transaction_id: Optional[str] = None confirmed_at: Optional[datetime] = None created_at: Optional[datetime] = None updated_at: Optional[datetime] = None class Config: from_attributes = True class Payment(PaymentInDBBase): pass