from app.extensions import db from app.enums.TradeStatus import TradeStatus from datetime import datetime, timedelta class UserTrade(db.Model): id = db.Column(db.BigInteger, primary_key=True, autoincrement=True) sender_userid = db.Column(db.BigInteger, nullable=False, index=True) recipient_userid = db.Column(db.BigInteger, nullable=False, index=True) sender_userid_robux = db.Column(db.BigInteger, nullable=False, default=0) # Robux the sender is offering recipient_userid_robux = db.Column(db.BigInteger, nullable=False, default=0) # Robux the recipient is offering status = db.Column(db.Enum(TradeStatus), nullable=False, default=TradeStatus.Pending) created_at = db.Column(db.DateTime, nullable=False) updated_at = db.Column(db.DateTime, nullable=False) expires_at = db.Column(db.DateTime, nullable=False) def __init__( self, sender_userid : int, recipient_userid : int, sender_userid_robux : int = 0, recipient_userid_robux : int = 0, status : TradeStatus = TradeStatus.Pending, created_at : datetime = None, updated_at : datetime = None, expires_at : datetime = None ): self.sender_userid = sender_userid self.recipient_userid = recipient_userid self.sender_userid_robux = sender_userid_robux self.recipient_userid_robux = recipient_userid_robux self.status = status self.created_at = created_at or datetime.utcnow() self.updated_at = updated_at or datetime.utcnow() self.expires_at = expires_at or datetime.utcnow() + timedelta(days=7) def __repr__(self): return f""