from sqlalchemy import Column, Integer, String, Float, ForeignKey, DateTime from sqlalchemy.orm import relationship import enum import datetime from app.db.base_class import Base class BotPurchaseStatus(str, enum.Enum): RUNNING = "running" COMPLETED = "completed" CANCELLED = "cancelled" class BotPurchase(Base): id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, ForeignKey("user.id"), nullable=False) bot_id = Column(Integer, ForeignKey("bot.id"), nullable=False) amount = Column(Float, nullable=False) expected_roi_amount = Column(Float, nullable=False) start_time = Column(DateTime, default=datetime.datetime.utcnow) end_time = Column(DateTime) status = Column(String, default=BotPurchaseStatus.RUNNING) # Relationships user = relationship("User", back_populates="bot_purchases") bot = relationship("Bot", back_populates="purchases") transaction = relationship("Transaction", back_populates="bot_purchase", uselist=False)