class Volumes(db.Model): # internal fields id = db.Column(db.Integer(), primary_key=True) currency = db.Column(db.String(255),default='',nullable=False, index=True) volume = db.Column(db.Numeric(14, 6), default=0) # create and modifiy time created_date = db.Column(db.DateTime, default=datetime.datetime.utcnow()) last_updated = db.Column(db.DateTime, default=datetime.datetime.utcnow(), onupdate=datetime.datetime.utcnow()) def __repr__(self): return '<Transaction %s %s>' % (self.currency, self.volume)
class UserWallet(db.Model): # internal fields id = db.Column(db.Integer(), primary_key=True) id_user = db.Column(db.Integer(), index=True) currency = db.Column(db.String(255),default='',nullable=False) address = db.Column(db.String(255),default='',nullable=False) flag_used = db.Column(db.Integer(),default=0,nullable=False) # create and modifiy time created_date = db.Column(db.DateTime, default=datetime.datetime.utcnow()) last_updated = db.Column(db.DateTime, default=datetime.datetime.utcnow(), onupdate=datetime.datetime.utcnow()) def __repr__(self): return '<Transaction %r>' % (self.name)
class UserAuth(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer(), db.ForeignKey('user.id', ondelete='CASCADE')) # User authentication information (required for Flask-User) username = db.Column(db.String(50), nullable=True) password = db.Column(db.String(255), nullable=False, server_default='') reset_password_token = db.Column(db.String(100), nullable=False, server_default='') active = db.Column(db.Boolean(), nullable=False, server_default='0') # Relationships user = db.relationship('User', uselist=False)
class BuyHistory(db.Model): id_history = db.Column(db.Integer(), primary_key=True, autoincrement=True) uuid = db.Column(db.String(32), nullable=False) uid = db.Column(db.Integer(), db.ForeignKey('user.id'), index=True) order_type = db.Column(db.String(10), default='buy') currency = db.Column(db.String(10),default='',nullable=False, index=True) currency2 = db.Column(db.String(10),default='',nullable=False, index=True) amount_start_no_fee = db.Column(db.Numeric(14, 6), default=0) amount_start = db.Column(db.Numeric(14, 6), default=0) amount = db.Column(db.Numeric(14, 6), default=0) diff = db.Column(db.Numeric(14, 6), default=0) initial_fee = db.Column(db.Numeric(14, 6), default=0) fee = db.Column(db.Numeric(14, 6), default=0) fee_percentage = db.Column(db.Numeric(14, 6), default=0) price_per_unit = db.Column(db.Numeric(14, 6), default=0) total_order = db.Column(db.Numeric(14, 6), default=0) total_order_no_fee = db.Column(db.Numeric(14, 6), default=0) flag_completed = db.Column(db.Integer(), default=0) # create and modifiy time created_date = db.Column(db.DateTime, default=datetime.datetime.utcnow()) last_updated = db.Column(db.DateTime, default=datetime.datetime.utcnow(), onupdate=datetime.datetime.utcnow()) def __repr__(self): return '<Buy %r>' % (self.uid)
class SellBuy(db.Model): id = db.Column(db.Integer(), primary_key=True, autoincrement=True) order_type = db.Column(db.String(10), default='sell') usid = db.Column(db.Integer(), nullable=False) ubid = db.Column(db.Integer(), nullable=False) sid = db.Column(db.String(32),default='',nullable=False) bid = db.Column(db.String(32),default='',nullable=False) currency = db.Column(db.String(10),default='',nullable=False) currency2 = db.Column(db.String(10),default='',nullable=False) amount_of_buy = db.Column(db.DECIMAL(), default=0) price_per_unit = db.Column(db.DECIMAL(), default=0) price_per_unit_sell = db.Column(db.DECIMAL(), default=0) total_order = db.Column(db.DECIMAL(), default=0) total_order_sell = db.Column(db.DECIMAL(), default=0) total_order_no_fee = db.Column(db.DECIMAL(), default=0) diff = db.Column(db.DECIMAL(), default=0) # create and modifiy time created_date = db.Column(db.DateTime, default=datetime.datetime.utcnow()) last_updated = db.Column(db.DateTime, default=datetime.datetime.utcnow(), onupdate=datetime.datetime.utcnow()) def __repr__(self): return '<BuySell %r>' % (self.id)
class Transaction(db.Model): # internal fields id = db.Column(db.Integer(), primary_key=True) uuid = db.Column(db.String(32), nullable=False) txid = db.Column(db.String(255),default='',nullable=False) id_user = db.Column(db.Integer(), index=True) provider = db.Column(db.String(255),default='',nullable=False) address = db.Column(db.String(255),default='',nullable=False) transaction_type = db.Column(db.String(255),default='',nullable=False, index=True) currency = db.Column(db.String(255),default='',nullable=False, index=True) amount = db.Column(db.Numeric(14, 6), default=0) blockhash = db.Column(db.String(255),default='',nullable=False) blockindex = db.Column(db.String(255),default='',nullable=False) hex = db.Column(db.String(255),default='',nullable=False) blocktime = db.Column(db.String(255),default='',nullable=False) confirmations = db.Column(db.String(255),default='',nullable=False) timereceived = db.Column(db.String(255),default='',nullable=False) time = db.Column(db.String(255),default='',nullable=False) status = db.Column(db.Integer(),default=1,nullable=False) # 1 - da esegure # > 2 - errore # eseguito # create and modifiy time created_date = db.Column(db.DateTime, default=datetime.datetime.utcnow()) last_updated = db.Column(db.DateTime, default=datetime.datetime.utcnow(), onupdate=datetime.datetime.utcnow()) def __repr__(self): return '<Transaction %r>' % (self.name)
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) #oauth2 ids google_id = db.Column(db.String(255), default='', nullable=False) facebook_id = db.Column(db.String(255), default='', nullable=False) avatar = db.Column(db.String(255), nullable=False, default='') # User email information (required for Flask-User) email = db.Column(db.String(255), nullable=False, unique=True) confirmed_at = db.Column(db.DateTime()) # User information active = db.Column('is_active', db.Boolean(), nullable=False, server_default='0') first_name = db.Column(db.String(50), nullable=False, server_default='') last_name = db.Column(db.String(50), nullable=False, server_default='') # Relationships user_auth = db.relationship('UserAuth', uselist=False) roles = db.relationship('Role', secondary='user_roles', backref=db.backref('users', lazy='dynamic')) # currencies USD = db.Column(db.Numeric(14, 6), default=0) EUR = db.Column(db.Numeric(14, 6), default=0) RUR = db.Column(db.Numeric(14, 6), default=0) CNY = db.Column(db.Numeric(14, 6), default=0) JPY = db.Column(db.Numeric(14, 6), default=0) # cryptocurrencies BTC = db.Column(db.Numeric(14, 6), default=9999) LTC = db.Column(db.Numeric(14, 6), default=9999) QRK = db.Column(db.Numeric(14, 6), default=9999) NVC = db.Column(db.Numeric(14, 6), default=9999) NMC = db.Column(db.Numeric(14, 6), default=9999) NVC = db.Column(db.Numeric(14, 6), default=9999) XPM = db.Column(db.Numeric(14, 6), default=9999) BTC = db.Column(db.Numeric(14, 6), default=9999) DRK = db.Column(db.Numeric(14, 6), default=9999) PPC = db.Column(db.Numeric(14, 6), default=9999) PPC = db.Column(db.Numeric(14, 6), default=9999) URO = db.Column(db.Numeric(14, 6), default=9999) DOGE = db.Column(db.Numeric(14, 6), default=9999) locale = db.Column(db.String(50), nullable=False, default='en') timezone = db.Column(db.String(50), nullable=False, default='Europe/Amsterdam') # security white_list_ip = db.Column(db.Text(), nullable=False, default='') otp_secret = db.Column(db.String(16)) # create and modifiy time created_date = db.Column(AwareDateTime, default=db.func.now(), nullable=False) last_updated = db.Column(db.DateTime, default=datetime.datetime.utcnow(), onupdate=datetime.datetime.utcnow()) def create_2fa(self): # generate a random secret otp_secret = base64.b32encode(os.urandom(10)).decode('utf-8') return otp_secret def delete_2fa(self): # generate a random secret self.otp_secret = '' def get_totp_uri(self): return 'otpauth://totp/%s?secret=%s&issuer=IBWT' % (self.email, self.otp_secret) def verify_totp(self, token): return onetimepass.valid_totp(token, self.otp_secret)
class UserDepositWithdrawal(db.Model): # internal fields id = db.Column(db.Integer(), primary_key=True) uuid = db.Column(db.String(32), nullable=False) transaction_type = db.Column(db.String(255), default='', nullable=False, index=True) id_user = db.Column(db.Integer(), index=True) provider = db.Column(db.String(255), default='', nullable=False) address = db.Column(db.String(255), default='', nullable=False) amount = db.Column(db.Numeric(14, 6), default=0) currency = db.Column(db.String(255), default='', nullable=False, index=True) status = db.Column(db.Integer(), default=1, nullable=False) # 1 - da esegure # > 2 - errore # eseguito # create and modifiy time created_date = db.Column(db.DateTime, default=datetime.datetime.utcnow()) last_updated = db.Column(db.DateTime, default=datetime.datetime.utcnow(), onupdate=datetime.datetime.utcnow())
class UserRoles(db.Model): id = db.Column(db.Integer(), primary_key=True) user_id = db.Column(db.Integer(), db.ForeignKey('user.id', ondelete='CASCADE')) role_id = db.Column(db.Integer(), db.ForeignKey('role.id', ondelete='CASCADE'))
class Role(db.Model): id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(50), unique=True) description = db.Column(db.String(255))