models.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # Database Models
  2. from . import db # that SQLAlchemy Object in __init__.py
  3. from flask_login import UserMixin
  4. from sqlalchemy.sql import func
  5. class User(db.Model, UserMixin): # User Database
  6. id = db.Column(db.Integer, primary_key=True)
  7. email = db.Column(db.String(150), unique=True)
  8. password = db.Column(db.String(150))
  9. username = db.Column(db.String(150))
  10. profile_image = db.Column(db.String(150))
  11. focus = db.Column(db.Integer)
  12. class TX(db.Model):
  13. id = db.Column(db.Integer, primary_key=True)
  14. filehash = db.Column(db.String(64)) # sha256 hash
  15. datetime = db.Column(db.DateTime(timezone=True))
  16. source_id = db.Column(db.Integer)
  17. destination_id = db.Column(db.Integer)
  18. price = db.Column(db.Float)
  19. txhash = db.Column(db.String(64))
  20. class Hashchain(db.Model):
  21. id = db.Column(db.Integer, primary_key=True)
  22. blockhash = db.Column(db.String(64))
  23. class Art(db.Model):
  24. id = db.Column(db.Integer, primary_key=True)
  25. name = db.Column(db.String(200))
  26. description = db.Column(db.String(200))
  27. filehash = db.Column(db.String(64), unique=True) # sha256 hash # parent foreign key
  28. owner = db.Column(db.Integer)
  29. creator = db.Column(db.Integer)
  30. dname = db.Column(db.String(20)) # designated DB name
  31. class List(db.Model):
  32. id = db.Column(db.Integer, primary_key=True)
  33. filehash = db.Column(db.String(64)) # sha256 hash # one-to-one from Art
  34. seller = db.Column(db.Integer)
  35. min_price = db.Column(db.Float)
  36. out_price = db.Column(db.Float)
  37. cur_bid = db.Column(db.Float)
  38. timeout = db.Column(db.String(20))
  39. list_date = db.Column(db.DateTime(timezone=True), default=func.now())
  40. class Bids(db.Model):
  41. id = db.Column(db.Integer, primary_key=True)
  42. filehash = db.Column(db.String(64)) # sha256 hash # one-to-many from List
  43. buyer = db.Column(db.Integer)
  44. bid_price = db.Column(db.Float)
  45. bid_date = db.Column(db.DateTime(timezone=True), default=func.now())