47 lines
1.0 KiB
Python

from typing import Optional
from pydantic import BaseModel
from datetime import datetime
import enum
class TransactionType(str, enum.Enum):
DEPOSIT = "deposit"
WITHDRAWAL = "withdrawal"
TRANSFER = "transfer"
BOT_PURCHASE = "bot_purchase"
BOT_EARNING = "bot_earning"
ADMIN_ADJUSTMENT = "admin_adjustment"
class TransactionBase(BaseModel):
user_id: int
wallet_id: int
amount: float
transaction_type: TransactionType
description: Optional[str] = None
related_transaction_id: Optional[int] = None
deposit_id: Optional[int] = None
withdrawal_id: Optional[int] = None
bot_purchase_id: Optional[int] = None
class TransactionCreate(TransactionBase):
pass
class TransactionUpdate(BaseModel):
description: Optional[str] = None
related_transaction_id: Optional[int] = None
class TransactionInDBBase(TransactionBase):
id: int
created_at: datetime
updated_at: datetime
class Config:
orm_mode = True
class Transaction(TransactionInDBBase):
pass