from enum import Enum from pydantic import BaseModel, Field from datetime import datetime from typing import Optional class PaymentMethod(str, Enum): CASH = "cash" CARD = "card" class PaymentStatus(str, Enum): PENDING = "pending" PROCESSING = "processing" COMPLETED = "completed" FAILED = "failed" class Payment(BaseModel): id: Optional[int] = None order_id: int amount: float = Field(..., gt=0) method: PaymentMethod status: PaymentStatus = PaymentStatus.PENDING transaction_id: Optional[str] = None created_at: datetime = Field(default_factory=datetime.utcnow) updated_at: Optional[datetime] = None