| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- # Database Models
- from . import db # that SQLAlchemy Object in __init__.py
- from flask_login import UserMixin
- from flask import app
- from sqlalchemy.sql import func
- class User(db.Model, UserMixin): # User Database
- id = db.Column(db.Integer, primary_key=True)
- email = db.Column(db.String(150), unique=True)
- password = db.Column(db.String(150))
- username = db.Column(db.String(150))
- profile_image = db.Column(db.String(150))
- focus = db.Column(db.Integer)
- totphash = db.Column(db.String(32), unique=True)
- class TX(db.Model):
- id = db.Column(db.Integer, primary_key=True)
- filehash = db.Column(db.String(64)) # sha256 hash
- datetime = db.Column(db.DateTime(timezone=True))
- source_id = db.Column(db.Integer)
- destination_id = db.Column(db.Integer)
- price = db.Column(db.Float)
- txhash = db.Column(db.String(64))
- class Hashchain(db.Model):
- id = db.Column(db.Integer, primary_key=True)
- blockhash = db.Column(db.String(64))
- mint_date = db.Column(db.DateTime(timezone=True), default=func.now())
- class Art(db.Model):
- id = db.Column(db.Integer, primary_key=True)
- name = db.Column(db.String(200))
- description = db.Column(db.String(200))
- filehash = db.Column(db.String(64), unique=True) # sha256 hash # parent foreign key
- owner = db.Column(db.Integer)
- creator = db.Column(db.Integer)
- dname = db.Column(db.String(20)) # designated DB name
- class List(db.Model):
- id = db.Column(db.Integer, primary_key=True)
- filehash = db.Column(db.String(64), unique=True) # sha256 hash # one-to-one from Art
- seller = db.Column(db.Integer)
- min_price = db.Column(db.Float)
- out_price = db.Column(db.Float)
- cur_bid = db.Column(db.Float)
- timeout = db.Column(db.String(20))
- list_date = db.Column(db.DateTime(timezone=True), default=func.now())
- class Bids(db.Model):
- id = db.Column(db.Integer, primary_key=True)
- filehash = db.Column(db.String(64)) # sha256 hash # one-to-many from List
- buyer = db.Column(db.Integer)
- bid_price = db.Column(db.Float)
- bid_date = db.Column(db.DateTime(timezone=True), default=func.now())
- class Wallet(db.Model):
- id = db.Column(db.Integer, primary_key=True)
- user_id = db.Column(db.Integer, unique=True)
- amount = db.Column(db.Integer) # in cents
- class Stripe(db.Model):
- # This table is for keeping track of top-up
- # transactions
- id = db.Column(db.Integer, primary_key=True)
- user_id = db.Column(db.Integer)
- raw_amount = db.Column(db.Integer) # in cents (multiply by 100)
- tx_date = db.Column(db.DateTime(timezone=True), default=func.now())
|