class Stock(db.Model): __tablename__ = "stocks" id = db.Column(db.Integer, primary_key=True) company_name = db.Column(db.String(128), index=True, nullable=False) company_symbol = db.Column(db.String(128), index=True, nullable=False) shares = db.Column(db.Integer, nullable=False) price = db.Column(db.Float, nullable=False) transaction = db.relationship("Transaction", back_populates="stock")
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) hash = db.Column(db.String(120), nullable=False) cash = db.Column(db.Float, nullable=False, default=10000.) transactions = db.relationship('Transactions', backref='transactor', lazy=True) def __repr__(self): return f"User({self.username})"
class User(db.Model): __tablename__ = "users" id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(128), index=True, unique=True, nullable=False) hash = db.Column(db.String(128), nullable=False) cash = db.Column(db.Integer, default=10000.00, nullable=False) transactions = db.relationship("Transaction", back_populates="user") def __repr__(self): return '<User {}>'.format(self.username)
class Transaction(db.Model): __tablename__ = "transactions" id = db.Column(db.Integer, primary_key=True) # Many to one relationship user_id = db.Column(db.Integer, db.ForeignKey("users.id"), index=True, nullable=False) user = db.relationship("User", back_populates="transactions") # One to one relationship stock_id = db.Column(db.Integer, db.ForeignKey("stocks.id"), nullable=False) stock = db.relationship("Stock", uselist=False, back_populates="transaction") transacted_at = db.Column(db.DateTime, nullable=False, default=datetime.datetime.utcnow)
class Transactions(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) symbol = db.Column(db.String(20), nullable=False) shares = db.Column(db.Integer, nullable=False) price = db.Column(db.Float(), nullable=False) date = db.Column(db.DateTime(), default=datetime.utcnow()) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"symbol({self.symbol}), shares({self.shares}), price({self.price})"
class Transaction(db.Model): __tablename__ = "transactions" id = db.Column(db.Integer, primary_key=True) # Many to one relationship user_id = db.Column(db.Integer, db.ForeignKey("users.id"), index=True, nullable=False) user = db.relationship("User", back_populates="transactions") company_name = db.Column(db.String(128), index=True) company_symbol = db.Column(db.String(128), index=True, nullable=False) shares = db.Column(db.Integer, nullable=False) price = db.Column(db.Float, nullable=False) trans_type = db.Column(db.String(128), index=True, nullable=False) transacted_at = db.Column(db.DateTime, default=datetime.datetime.utcnow, nullable=False)