models.py 2.0 KB

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