58 lines
1.1 KiB
Python

from typing import Optional
from pydantic import BaseModel, Field
from datetime import datetime
import enum
# Import here to avoid circular imports
from app.schemas.bot import Bot
class BotPurchaseStatus(str, enum.Enum):
RUNNING = "running"
COMPLETED = "completed"
CANCELLED = "cancelled"
class BotPurchaseBase(BaseModel):
bot_id: int
amount: float = Field(..., gt=0)
expected_roi_amount: float
class BotPurchaseCreate(BotPurchaseBase):
user_id: int
start_time: datetime = datetime.utcnow()
end_time: datetime
status: BotPurchaseStatus = BotPurchaseStatus.RUNNING
class BotPurchaseUpdate(BaseModel):
status: Optional[BotPurchaseStatus] = None
class BotPurchaseInDBBase(BotPurchaseBase):
id: int
user_id: int
start_time: datetime
end_time: datetime
status: BotPurchaseStatus
created_at: datetime
updated_at: datetime
class Config:
orm_mode = True
class BotPurchase(BotPurchaseInDBBase):
pass
class BotPurchaseRequest(BaseModel):
amount: float = Field(..., gt=0)
class BotPurchaseWithBot(BotPurchase):
bot: Bot
class Config:
orm_mode = True