47 lines
1.0 KiB
Python
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 |