TelegramAktienBot/api/app/models.py

73 lines
2.8 KiB
Python
Raw Normal View History

2022-04-12 07:50:24 +00:00
__author__ = "Florian Kaiser"
__copyright__ = "Copyright 2022, Project Aktienbot"
__credits__ = ["Florian Kaiser", "Florian Kellermann", "Linus Eickhof", "Kevin Pauer"]
__license__ = "GPL 3.0"
__version__ = "1.0.1"
2022-04-12 07:50:24 +00:00
from app.db import database as db
2022-03-13 19:43:24 +00:00
class User(db.Model):
__tablename__ = 'users'
2022-03-27 15:23:33 +00:00
email = db.Column('email', db.String(255), primary_key=True, nullable=False, unique=True)
2022-03-27 18:42:11 +00:00
password = db.Column('password', db.BINARY(60), nullable=False)
2022-03-27 15:23:33 +00:00
username = db.Column('username', db.String(255), nullable=False, server_default='')
telegram_user_id = db.Column('telegram_user_id', db.String(255), nullable=True, server_default='')
2022-04-05 08:51:09 +00:00
admin = db.Column('admin', db.Boolean(), server_default='0') # 0 = False, 1 = True
cron = db.Column('cron', db.String(20), server_default='0 8 * * *', nullable=False)
2022-03-13 19:43:24 +00:00
2022-03-13 20:41:52 +00:00
def as_dict(self):
2022-03-27 19:08:24 +00:00
return {
"email": self.email,
"username": self.username,
"telegram_user_id": self.telegram_user_id,
2022-04-05 08:51:09 +00:00
"admin": self.admin,
"cron": self.cron
2022-03-27 19:08:24 +00:00
}
2022-03-13 20:41:52 +00:00
2022-03-13 19:43:24 +00:00
class Transaction(db.Model):
__tablename__ = 'transactions'
t_id = db.Column('t_id', db.Integer(), nullable=False, unique=True, primary_key=True)
2022-03-27 15:23:33 +00:00
email = db.Column('email', db.String(255), db.ForeignKey('users.email', ondelete='CASCADE'))
isin = db.Column('isin', db.String(255))
comment = db.Column('comment', db.String(255))
2022-03-13 19:43:24 +00:00
time = db.Column('time', db.DateTime())
count = db.Column('count', db.Integer())
price = db.Column('price', db.Float())
2022-03-13 20:41:52 +00:00
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
2022-03-13 19:43:24 +00:00
class Keyword(db.Model):
__tablename__ = 'keywords'
s_id = db.Column('s_id', db.Integer(), nullable=False, unique=True, primary_key=True)
2022-03-27 15:23:33 +00:00
email = db.Column('email', db.String(255), db.ForeignKey('users.email', ondelete='CASCADE'))
2022-03-13 19:43:24 +00:00
keyword = db.Column('keyword', db.String(255))
2022-03-13 20:41:52 +00:00
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
2022-03-13 19:43:24 +00:00
class Share(db.Model):
__tablename__ = 'shares'
a_id = db.Column('a_id', db.Integer(), nullable=False, unique=True, primary_key=True)
2022-03-27 15:23:33 +00:00
email = db.Column('email', db.String(255), db.ForeignKey('users.email', ondelete='CASCADE'))
isin = db.Column('isin', db.String(255))
comment = db.Column('comment', db.String(255))
2022-03-13 20:41:52 +00:00
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
2022-04-05 13:08:57 +00:00
class SharePrice(db.Model):
__tablename__ = 'share_price'
id = db.Column('id', db.Integer(), nullable=False, unique=True, primary_key=True)
isin = db.Column('isin', db.String(255))
2022-04-05 13:08:57 +00:00
price = db.Column('price', db.Float())
date = db.Column('date', db.DateTime())
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}