class MemberChurnPredDto(db.Model):

    __tablename__ = 'member_churn_preds'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    email: str = db.Column(db.String(100),
                           db.ForeignKey(MemberDto.email),
                           nullable=False)
    probability_churn: float = db.Column(db.FLOAT, nullable=False)

    def __init__(self, id, email, probability_churn):
        self.id = id
        self.email = email
        self.prob_churn = probability_churn

    def __repr__(self):
        return f'MemberChurnPred(id={self.id}, email={self.email}, prob_churn={self.prob_churn})'

    @property
    def json(self):
        return {
            'id': self.id,
            'email': self.email,
            'prob_churn': self.probability_churn
        }
示例#2
0
class RecommendStockDto(db.Model):

    __tablename__ = 'recommend_stocks'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    email: str = db.Column(db.String(100), db.ForeignKey(MemberDto.email), nullable=False)
    stock_type: str = db.Column(db.String(50), nullable=False)
    stock_ticker: str = db.Column(db.String(100), nullable=False)

    def __init__(self, email, stock_type, stock_ticker):
        self.email = email
        self.stock_type = stock_type
        self.stock_ticker = stock_ticker

    def __repr__(self):
        return f'id={self.id}, email={self.email}, stock_type={self.stock_type}, stock_ticker={self.stock_ticker}'

    @property
    def json(self):
        return {
            'id': self.id,
            'email': self.email,
            'stock_type': self.stock_type,
            'stock_ticker': self.stock_ticker
        }
class TradingVo:
    id: int = 0
    email: str = ''
    kospi_stock_id: int = 0
    nasdaq_stock_id: int = 0
    stock_qty: int = 0
    price: float = 0.0
    trading_date: str = db.Column(db.String(1000), default=datetime.datetime.now())
class NewsDto(db.Model):
    __tablename__ = 'naver_news'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.DATETIME)
    headline: str = db.Column(db.String(255))
    contents: str = db.Column(db.String(10000))
    url: str = db.Column(db.String(500))
    stock: str = db.Column(db.String(30))
    label: float = db.Column(db.Float)

    #'date', 'headline', 'contents', 'url', 'stock', 'label'

    def __init__(self, id, date, headline, contents, url, stock, label):
        self.id = id
        self.date = date
        self.headline = headline
        self.contents = contents
        self.url = url
        self.stock = stock
        self.label = label

    def __repr__(self):
        return f'id={self.id},date={self.date}, headline={self.headline},\
            contents={self.contents},url={self.url},stock={self.stock},label={self.label}'

    @property
    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'headline': self.headline,
            'contents': self.contents,
            'url': self.url,
            'stock': self.stock,
            'label': self.label
        }

    def save(self):
        db.session.add(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()


# service = NewsAnalysis()
# Session = sessionmaker(bind = engine)
# s = Session()
# df = service.makelabel()
# print(df.head())
# s.bulk_insert_mappings(NewsDto, df.to_dict(orient="records"))
# s.commit()
# s.close()
示例#5
0
class NewsDto(db.Model):
    __tablename__ = 'korea_news'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: str = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.DATETIME)
    headline: str = db.Column(db.Text)
    url: str = db.Column(db.String(500))
    ticker: str = db.Column(db.String(30))
    label: float = db.Column(db.Float)

    def __init__(self, id, date, headline, url, ticker, label):
        self.id = id
        self.date = date
        self.headline = headline
        self.url = url
        self.ticker = ticker
        self.label = label

    def __repr__(self):
        return f'id={self.id},date={self.date}, headline={self.headline},\
            url={self.url},ticker={self.ticker},label={self.label}'

    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'headline': self.headline,
            'url': self.url,
            'ticker': self.ticker,
            'label': self.label
        }
示例#6
0
class KoreaDto(db.Model):
    __tablename__ = 'korea_covid'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.DATE)
    seoul_cases: int = db.Column(db.Integer)
    seoul_deaths: int = db.Column(db.Integer)
    total_cases: int = db.Column(db.Integer)
    total_deaths: int = db.Column(db.Integer)

    def __init__(self, id, date, seoul_cases, seoul_deaths, total_cases,
                 total_deaths):
        self.date = date
        self.seoul_cases = seoul_cases
        self.seoul_death = seoul_deaths
        self.total_cases = total_cases
        self.total_death = total_deaths

    def __repr__(self):
        return f'id={self.id},date={self.date}, seoul_cases={self.seoul_cases},\
            seoul_death={self.seoul_deaths},total_cases={self.total_cases},total_deaths={self.total_deaths}'

    @property
    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'seoul_cases': self.seoul_cases,
            'seoul_deaths': self.seoul_deaths,
            'total_cases': self.total_cases,
            'total_deaths': self.total_deaths
        }
示例#7
0
class USCovidDto(db.Model):
    __tablename__ = 'US_Covid_cases'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}
    id: int = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.Date)
    total_cases: int = db.Column(db.Integer)
    total_death: int = db.Column(db.Integer)
    ca_cases: int = db.Column(db.Integer)
    ca_death: int = db.Column(db.Integer)

    #date format : YYYY-MM-DD

    def __repr__(self):
        return f'USCovid(id=\'{self.id}\', date=\'{self.date}\', total_cases=\'{self.total_cases}\',\
            total_death=\'{self.total_death}\',ca_cases=\'{self.ca_cases}\', \
                ca_death=\'{self.ca_death}\')'

    @property
    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'total_cases': self.total_cases,
            'total_death': self.total_death,
            'ca_cases': self.ca_cases,
            'ca_death': self.ca_death,
        }

    def save(self):
        db.session.add(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
示例#8
0
class YHFinanceDto(db.Model):
    __tablename__ = 'yahoo_finance'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}
    id: int = db.Column(db.Integer, primary_key=True, index=True)
    ticker: str = db.Column(db.String(10))
    date: str = db.Column(db.Date)
    open: float = db.Column(db.Float)
    high: float = db.Column(db.Float)
    low: float = db.Column(db.Float)
    close: float = db.Column(db.Float)
    adjclose: float = db.Column(db.Float)
    volume: int = db.Column(db.BigInteger)

    #date format : YYYY-MM-DD
    # amount : unit = million

    def __init__(self, ticker, date, open, high, low, close, adjclose, volume):
        self.ticker = ticker
        self.date = date
        self.open = open
        self.high = high
        self.low = low
        self.close = close
        self.adjclose = adjclose
        self.volume = volume

    # Date,Open,High,Low,Close,Adj Close,Volume
    def __repr__(self):
        return f'YHFinance(id=\'{self.id}\',ticker=\'{self.ticker}\', date=\'{self.date}\',open=\'{self.open}\', \
            high=\'{self.high}\',low=\'{self.low}\', close=\'{self.close}\',\
                adjclose=\'{self.adjclose}\',volume=\'{self.volume}\')'

    @property
    def json(self):
        return {
            'id': self.id,
            'ticker': self.ticker,
            'date': self.date,
            'open': self.open,
            'high': self.high,
            'low': self.low,
            'close': self.close,
            'adjclose': self.adjclose,
            'volume': self.volume
        }
class NewsDto(db.Model):
    __tablename__ = 'korea_recent_news'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: str = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.DATETIME)
    headline: str = db.Column(db.String(255))
    content: str = db.Column(db.Text)
    url: str = db.Column(db.String(500))
    ticker: str = db.Column(db.String(30))

    def __init__(self, id, date, headline, content, url, ticker):
        self.id = id
        self.date = date
        self.headline = headline
        self.content = content
        self.url = url
        self.ticker = ticker

    def __repr__(self):
        return f'id={self.id},date={self.date}, headline={self.headline},\
            content={self.content},url={self.url},ticker={self.ticker}'

    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'headline': self.headline,
            'content': self.content,
            'url': self.url,
            'ticker': self.ticker
        }
示例#10
0
class USCovidDto(db.Model):
    __tablename__ = 'US_Covid_cases'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}
    id: int = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.Date)
    total_cases: int = db.Column(db.Integer)
    total_deaths: int = db.Column(db.Integer)
    ca_cases: int = db.Column(db.Integer)
    ca_deaths: int = db.Column(db.Integer)

    #date format : YYYY-MM-DD

    def __init__(self, date, total_cases, total_deaths, ca_cases, ca_deaths):
        self.date = date
        self.total_cases = total_cases
        self.total_deaths = total_deaths
        self.ca_cases = ca_cases
        self.ca_deaths = ca_deaths

    def __repr__(self):
        return f'USCovid(id=\'{self.id}\', date=\'{self.date}\', total_cases=\'{self.total_cases}\',\
            total_deaths=\'{self.total_deaths}\',ca_cases=\'{self.ca_cases}\', \
                ca_deaths=\'{self.ca_deaths}\')'

    @property
    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'total_cases': self.total_cases,
            'total_deaths': self.total_deaths,
            'ca_cases': self.ca_cases,
            'ca_deaths': self.ca_deaths,
        }
示例#11
0
class CommentDto(db.Model):

    __tablename__ = "comments"
    __table_args__ = {"mysql_collate": "utf8_general_ci"}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    board_id: int = db.Column(db.Integer,
                              db.ForeignKey(BoardDto.id),
                              nullable=False)
    email: str = db.Column(db.String(100),
                           db.ForeignKey(MemberDto.email),
                           nullable=False)
    comment: str = db.Column(db.String(500), nullable=False)
    regdate: datetime = db.Column(db.String(1000),
                                  default=datetime.datetime.now(),
                                  nullable=False)
    comment_ref: int = db.Column(db.Integer, nullable=False)
    comment_level: int = db.Column(db.Integer, nullable=False)
    comment_step: int = db.Column(db.Integer, nullable=False)

    board = db.relationship('BoardDto', back_populates='comments')
    member = db.relationship('MemberDto', back_populates='comments')

    def __init__(self, board_id, email, comment, regdate, comment_ref,
                 comment_level, comment_step):
        self.board_id = board_id
        self.email = email
        self.comment = comment
        self.regdate = regdate
        self.comment_ref = comment_ref
        self.comment_level = comment_level
        self.comment_step = comment_step

    def __repr__(self):
        return f'id={self.id}, board_id={self.board_id}, email={self.email}, comment={self.comment}, regdate={self.regdate}, ref={self.comment_ref}, level={self.comment_level}, step={self.comment_step}'

    @property
    def json(self):
        return {
            'id': self.id,
            'board_id': self.board_id,
            'email': self.email,
            'comment': self.comment,
            'regdate': self.regdate,
            'comment_ref': self.comment_ref,
            'comment_level': self.comment_level,
            'comment_step': self.comment_step
        }
示例#12
0
class InvestingDto(db.Model):
    __tablename__ = 'Investing_News'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}
    # , primary_key = True, index = True

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.Date)
    ticker: str = db.Column(db.String(30))  #stock symbol
    link: str = db.Column(db.String(225))
    headline: str = db.Column(db.String(255))
    neg: float = db.Column(db.Float)
    pos: float = db.Column(db.Float)
    neu: float = db.Column(db.Float)
    compound: float = db.Column(db.Float)

    def __init__(self, date, ticker, link, headline, neg, pos, neu, compound):
        self.date = date
        self.ticker = ticker
        self.link = link
        self.headline = headline
        self.neg = neg
        self.pos = pos
        self.neu = neu
        self.compound = compound

    def __repr__(self):
        return f'Investing(id=\'{self.id}\', date=\'{self.date}\',ticker=\'{self.ticker}\',\
                link=\'{self.link}\', headline=\'{self.headline}\',neg=\'{self.neg}\', \
                pos=\'{self.pos}\',neu=\'{self.neu}\', compound=\'{self.compound}\',)'

    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'ticker': self.ticker,
            'link': self.link,
            'headline': self.headline,
            'neg': self.neg,
            'pos': self.pos,
            'neu': self.neu,
            'compound': self.compound
        }
示例#13
0
class StockDto(db.Model):
    __tablename__ = 'naver_finance'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.DATETIME)
    open: int = db.Column(db.String(30))
    close: int = db.Column(db.String(30))
    high: int = db.Column(db.String(30))
    low: int = db.Column(db.String(30))
    amount: int = db.Column(db.String(30))
    stock: str = db.Column(db.String(30))

    def __init__(self, id, date, open, close, high, low, amount, stock):
        self.id = id
        self.date = date
        self.open = open
        self.close = close
        self.high = high
        self.low = low
        self.amount = amount
        self.stock = stock

    def __repr__(self):
        return f'id={self.id},date={self.date}, open={self.open},\
            close ={self.close},high ={self.high},low ={self.low},amount ={self.amount},stock ={self.stock}'

    @property
    def json(self):
        return {
            'id': self.id,
            'finance': self.date,
            'open': self.open,
            'close': self.close,
            'high': self.high,
            'low': self.low,
            'amount': self.amount,
            'stock': self.stock
        }

    def save(self):
        db.session.add(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
class YHNewsDto(db.Model):
    __tablename__ = 'Yahoo_News'
    __table_args__={'mysql_collate':'utf8_general_ci'}
        # , primary_key = True, index = True

    id: int = db.Column(db.Integer, primary_key = True, index = True)
    date : str = db.Column(db.Date)
    ticker : str = db.Column(db.String(30)) #stock symbol
    headline : str = db.Column(db.String(255))
    neg : float = db.Column(db.Float)
    pos : float = db.Column(db.Float)
    neu : float = db.Column(db.Float)
    compound :float  = db.Column(db.Float)



    def __repr__(self):
        return f'User(id=\'{self.id}\', date=\'{self.date}\',ticker=\'{self.ticker}\',\
                headline=\'{self.headline}\',neg=\'{self.neg}\', \
                pos=\'{self.pos}\',neu=\'{self.neu}\', \
                compound=\'{self.compound}\',)'


    @property
    def json(self):
        return {
            'id': self.id,
            'date' : self.date,
            'ticker' : self.ticker,
            'headline' : self.headline,
            'neg' : self.neg,
            'pos' : self.pos,
            'neu' : self.neu,
            'compound' : self.compound
        }


    def save(self):
        db.session.add(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
class PredictionDto(db.Model):
    __tablename__ = 'NASDAQ_prediction'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.Date)
    ticker: str = db.Column(db.String(30))
    pred_price: float = db.Column(db.Float)

    stock_id: int = db.Column(db.Integer, db.ForeignKey(YHFinanceDto.id))
    covid_id: int = db.Column(db.Integer, db.ForeignKey(USCovidDto.id))
    news_id: int = db.Column(db.Integer, db.ForeignKey(YHNewsDto.id))

    def __init__(self, ticker, date, pred_price, stock_id, covid_id, news_id):
        self.date = date
        self.ticker = ticker
        self.pred_price = pred_price

        self.stock_id = stock_id
        self.covid_id = covid_id
        self.news_id = news_id

    def __repr__(self):
        return f'Prediction(id=\'{self.id}\',date=\'{self.date}\',\
            ticker=\'{self.ticker}\',date=\'{self.date}\',pred_price=\'{self.pred_price}\',\
                stock_id=\'{self.stock_id}\',covid_id=\'{self.covid_id}\', news_id=\'{self.news_id}\' )'

    @property
    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'ticker': self.ticker,
            'pred_price': self.pred_price,
            'stock_id': self.stock_id,
            'covid_id': self.covid_id,
            'news_id': self.news_id
        }

    def save(self):
        db.session.add(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commint()
示例#16
0
class YHFinanceDto(db.Model):
    __tablename__ = 'Yahoo_Finance'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}
    id: int = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.Date)
    open: float = db.Column(db.Float)
    close: float = db.Column(db.Float)
    adjclose: float = db.Column(db.Float)
    high: float = db.Column(db.Float)
    low: float = db.Column(db.Float)
    amount: int = db.Column(db.Integer)

    #date format : YYYY-MM-DD
    # amount : unit = million

    def __repr__(self):
        return f'YHFinance(id=\'{self.id}\', date=\'{self.date}\',open=\'{self.open}\', \
            close=\'{self.close}\',adjclose=\'{self.adjclose}\',high=\'{self.high}\',\
            low=\'{self.low}\',amount=\'{self.amount}\')'

    @property
    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'open': self.open,
            'close': self.close,
            'adjclose': self.adjclose,
            'high': self.high,
            'low': self.low,
            'amount': self.amount,
            'date': self.date
        }

    def save(self):
        db.session.add(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
示例#17
0
class KospiDto(db.Model):
    __tablename__ = 'kospi_pred'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.DATETIME)
    stock: int = db.Column(db.VARCHAR(30))
    price: int = db.Column(db.VARCHAR(30))

    covid_id: int = db.Column(db.Integer, db.ForeignKey(KoreaDto.id))
    stock_id: int = db.Column(db.Integer, db.ForeignKey(StockDto.id))
    news_id: int = db.Column(db.Integer, db.ForeignKey(NewsDto.id))

    def __init__(self, id, date, covid_id, stock_id, news_id, stock, price):
        self.id = id
        self.date = date
        self.covid_id = covid_id
        self.stock_id = stock_id
        self.news_id = news_id
        self.stock = stock
        self.price = price

    def __repr__(self):
        return f'id={self.id},date={self.date},covid_id ={self.covid_id },stock_id={self.sstock_id},news_id={self.news_id},  stock={self.stock},\
            price={self.price}'

    @property
    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'covid_id': self.covid_id,
            'stock_id': self.stock_id,
            'news_id': self.news_id,
            'stock': self.stock,
            'price': self.price
        }

    def save(self):
        db.session.add(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
示例#18
0
class StockDto(db.Model):
    
    __tablename__ = 'korea_finance'
    __table_args__ = {'mysql_collate':'utf8_general_ci'}
    
    id: int = db.Column(db.Integer, primary_key = True, index = True)
    date : str = db.Column(db.String(100))
    open : int = db.Column(db.String(30))
    close : int = db.Column(db.String(30))
    high : int = db.Column(db.String(30))
    low :int = db.Column(db.String(30))
    volume : int = db.Column(db.String(30))
    ticker : str = db.Column(db.String(30))

    def __init__(self,id, date, open, close, high, low, volume, ticker):
        self.id = id
        self.date = date
        self.open = open
        self.close = close
        self.high = high
        self.low = low
        self.volume = volume
        self.ticker = ticker
    
    def __repr__(self):
        return f'id={self.id}, date={self.date}, open={self.open},\
            close={self.close}, high={self.high}, low={self.low}, volume={self.volume}, ticker={self.ticker}'
            

    def json(self):
        return {
            'id':self.id,
            'date': self.date,
            'open': self.open,
            'close': self.close,
            'high': self.high,
            'low': self.low,
            'volume': self.volume,
            'ticker' : self.ticker
        }
示例#19
0
class RecentNewsDto(db.Model):
    __tablename__ = 'US_Recent_News'
    __table_args__={'mysql_collate':'utf8_general_ci'}
    id: int = db.Column(db.Integer, primary_key = True, index = True)
    date: str = db.Column(db.Date)
    time: str = db.Column(db.Time())
    ticker: str = db.Column(db.String(30))
    link: str = db.Column(db.Text)
    headline: str = db.Column(db.String(225))
    image: str = db.Column(db.Text)
    content : str = db.Column(db.Text)
    #date format : YYYY-MM-DD
    
    def __init__(self, date, time, ticker, link, headline, image, content):
        self.date = date
        self.time = time
        self.ticker = ticker
        self.link = link
        self.headline = headline
        self.image = image
        self.content = content

    def __repr__(self):
        return f'US_RecentNews(id=\'{self.id}\', date=\'{self.date}\', time=\'{self.time}\',\
            ticker=\'{self.ticker}\',link=\'{self.link}\', headline=\'{self.headline}\'\
                image=\'{self.image}\', content=\'{self.content}\')'


    @property
    def json(self):
        return {
            'id' : self.id,
            'date' : self.date,
            'time' : self.time,
            'ticker' : self.ticker,
            'link' : self.link,
            'headline' : self.headline,
            'image' : self.image,
            'content' : self.content
        }
示例#20
0
class BoardDto(db.Model):

    __tablename__ = 'boards'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    email: str = db.Column(db.String(100),
                           db.ForeignKey(MemberDto.email),
                           nullable=False)
    article_type: str = db.Column(db.String(50), nullable=False)
    title: str = db.Column(db.String(50), nullable=False)
    content: str = db.Column(db.String(20000), nullable=False)
    regdate: datetime = db.Column(db.String(1000),
                                  default=datetime.datetime.now())

    member = db.relationship('MemberDto', back_populates='boards')
    comments = db.relationship('CommentDto',
                               back_populates='board',
                               lazy='dynamic')

    def __init__(self, email, article_type, title, content, regdate):
        self.email = email
        self.article_type = article_type
        self.title = title
        self.content = content
        self.regdate = regdate

    def __repr__(self):
        return 'Board(id={}, email={}, article_type={}, title={}, content={}, regdate={})'.format(
            self.id, self.email, self.article_type, self.title, self.content,
            self.regdate)

    @property
    def json(self):
        return {
            'id': self.id,
            'email': self.email,
            'article_type': self.article_type,
            'title': self.title,
            'content': self.content,
            'regdate': self.regdate
        }

    def save(self):
        db.session.add(self)
        db.commit()

    def delete(self):
        db.session.delete(self)
        db.commit()
示例#21
0
class TradingDto(db.Model):

    __tablename__ = "tradings"
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    email: str = db.Column(db.String(100),
                           db.ForeignKey(MemberDto.email),
                           nullable=False)
    stock_type: str = db.Column(db.String(20), nullable=False)
    stock_ticker: str = db.Column(db.String(50), nullable=False)
    stock_qty: int = db.Column(db.Integer, nullable=False)
    price: float = db.Column(db.FLOAT, nullable=False)
    trading_date: str = db.Column(db.String(50),
                                  default=datetime.datetime.now())

    member = db.relationship('MemberDto', back_populates='tradings')

    def __init__(self, email, stock_type, stock_ticker, stock_qty, price,
                 trading_date):
        self.email = email
        self.stock_type = stock_type
        self.stock_ticker = stock_ticker
        self.stock_qty = stock_qty
        self.price = price
        self.trading_date = trading_date

    def __repr__(self):
        return 'Trading(trading_id={}, email={}, stock_type={}, stock_ticker={}, stock_qty={}, price={}, trading_date={})'.format(
            self.id, self.email, self.stock_type, self.stock_ticker,
            self.stock_qty, self.price, self.trading_date)

    @property
    def json(self):
        return {
            'id': self.id,
            'email': self.email,
            'stock_type': self.stock_type,
            'stock_ticker': self.stock_ticker,
            'stock_qty': self.stock_qty,
            'price': self.price,
            'trading_date': self.trading_date
        }
示例#22
0
class KospiDto(db.Model):
    __tablename__ = 'kospi_pred'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: str = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.DATE)
    ticker: str = db.Column(db.VARCHAR(30))
    pred_price: int = db.Column(db.VARCHAR(30))

    covid_id: str = db.Column(db.Integer, db.ForeignKey(KoreaDto.id))
    stock_id: str = db.Column(db.Integer, db.ForeignKey(StockDto.id))
    news_id: str = db.Column(db.Integer, db.ForeignKey(NewsDto.id))

    def __init__(self, id, date, covid_id, stock_id, news_id, ticker,
                 pred_price):
        self.id = id
        self.date = date
        self.covid_id = covid_id
        self.stock_id = stock_id
        self.news_id = news_id
        self.ticker = ticker
        self.pred_price = pred_price

    def __repr__(self):
        return f'id={self.id},date={self.date},covid_id ={self.covid_id },stock_id={self.stock_id},news_id={self.news_id}, ticker={self.ticker},\
            pred_price={self.pred_price}'

    @property
    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'covid_id': self.covid_id,
            'stock_id': self.stock_id,
            'news_id': self.news_id,
            'ticker': self.ticker,
            'pred_price': self.pred_price
        }
class TradingDto(db.Model):

    __tablename__ = "tradings"
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    email: str = db.Column(db.String(100), db.ForeignKey(MemberDto.email), nullable=False)
    kospi_stock_id: int = db.Column(db.Integer, db.ForeignKey(StockDto.id))
    nasdaq_stock_id: int = db.Column(db.Integer, db.ForeignKey(YHFinanceDto.id))
    stock_qty: int = db.Column(db.Integer, nullable=False)
    price: float = db.Column(db.FLOAT, nullable=False)
    trading_date: str = db.Column(db.String(1000), default=datetime.datetime.now())

    def __init__(self, id, email, kospi_stock_id, nasdaq_stock_id, stock_qty, price, trading_date):
        self.id = id
        self.email = email
        self.kospi_stock_id = kospi_stock_id
        self.nasdaq_stock_id = nasdaq_stock_id
        self.stock_qty = stock_qty
        self.price = price
        self.trading_date = trading_date

    def __repr__(self):
        return 'Trading(trading_id={}, member_id={}, kospi_stock_id={}, nasdaq_stock_id={}, stock_qty={}, price={}, trading_date={})'.format(self.id, self.member_id, self.kospi_stock_id, self.nasdaq_stock_id, self.stock_qty, self.price, self.trading_date)
    
    @property
    def json(self):
        return {
            'id': self.id,
            'member_id': self.member_id,
            'kospi_stock_id': self.kospi_stock_id,
            'nasdaq_stock_id': self.nasdaq_stock_id,
            'stock_qty': self.stock_qty,
            'price': self.price,
            'trading_date': self.trading_date
        }
示例#24
0
class KoreaDto(db.Model):
    __tablename__ = 'korea_covid'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.DATETIME)
    seoul_cases: int = db.Column(db.String(30))
    seoul_death: int = db.Column(db.String(30))
    total_cases: int = db.Column(db.String(30))
    total_death: int = db.Column(db.String(30))

    def __init__(self, id, date, seoul_cases, seoul_death, total_cases,
                 total_death):
        self.date = date
        self.seoul_cases = seoul_cases
        self.seoul_death = seoul_death
        self.total_cases = total_cases
        self.total_death = total_death

    def __repr__(self):
        return f'id={self.id},date={self.date}, seoul_cases={self.seoul_cases},\
            seoul_death={self.seoul_death},total_cases={self.total_cases},total_deatb={self.total_death}'

    @property
    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'seoul_cases': self.seoul_cases,
            'seoul_death': self.seoul_death,
            'total_cases': self.total_cases,
            'total_death': self.total_death
        }

    def save(self):
        db.session.add(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()
示例#25
0
class MemberDto(db.Model):

    __tablename__ = "members"
    __table_args__ = {"mysql_collate": "utf8_general_ci"}

    email: str = db.Column(db.String(100), primary_key=True, index=True)
    password: str = db.Column(db.String(50), nullable=False)
    name: str = db.Column(db.String(50), nullable=False)
    profile: str = db.Column(db.String(200), default='noimage.png')
    geography: str = db.Column(db.String(50))
    gender: str = db.Column(db.String(10))
    age: int = db.Column(db.Integer)
    tenure: int = db.Column(db.Integer, default=0)
    stock_qty: int = db.Column(db.Integer, default=0)
    balance: float = db.Column(db.FLOAT, default=0.0)
    has_credit: int = db.Column(db.Integer)
    credit_score: int = db.Column(db.Integer)
    is_active_member: int = db.Column(db.Integer, nullable=False, default=1)
    estimated_salary: float = db.Column(db.FLOAT)
    role: str = db.Column(db.String(30), nullable=False, default='ROLE_USER')
    probability_churn: float = db.Column(db.FLOAT, default=-1)
    exited: int = db.Column(db.Integer, nullable=False, default=0)

    tradings = db.relationship('TradingDto',
                               back_populates='member',
                               lazy='dynamic')
    boards = db.relationship('BoardDto',
                             back_populates='member',
                             lazy='dynamic')
    comments = db.relationship('CommentDto',
                               back_populates='member',
                               lazy='dynamic')

    def __init__(self, email, password, name, profile, geography, gender, age,
                 tenure, stock_qty, balance, has_credit, credit_score,
                 is_active_member, estimated_salary, role, probability_churn,
                 exited):
        self.email = email
        self.password = password
        self.name = name
        self.profile = profile
        self.geography = geography
        self.gender = gender
        self.age = age
        self.tenure = tenure
        self.stock_qty = stock_qty
        self.balance = balance
        self.has_credit = has_credit
        self.credit_score = credit_score
        self.is_active_member = is_active_member
        self.estimated_salary = estimated_salary
        self.role = role
        self.probability_churn = probability_churn
        self.exited = exited

    def __repr__(self):
        return 'Member(email={}, password={},'\
        'name={}, profile={}, geography={}, gender={}, age={}, tenure={}, stock_qty={}, balance={},'\
        'hasCrCard={}, credit_score={}, isActiveMember={}, estimatedSalary={}, role={}, probability_churn={}, exited={}'\
        .format(self.email, self.password, self.name, self.profile, self.geography, self.gender, self.age, self.tenure, self.stock_qty, self.balance, self.has_credit, self.credit_score, self.is_active_member, self.estimated_salary, self.role, self.probability_churn, self.exited)

    @property
    def json(self):
        return {
            'email': self.email,
            'password': self.password,
            'name': self.name,
            'profile': self.profile,
            'geography': self.geography,
            'gender': self.gender,
            'age': self.age,
            'tenure': self.tenure,
            'stock_qty': self.stock_qty,
            'balance': self.balance,
            'has_credit': self.has_credit,
            'credit_score': self.credit_score,
            'is_active_member': self.is_active_member,
            'estimated_salary': self.estimated_salary,
            'role': self.role,
            'probability_churn': self.probability_churn,
            'exited': self.exited
        }
class NasdaqPredictionDto(db.Model):
    __tablename__ = 'NASDAQ_prediction'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: int = db.Column(db.Integer, primary_key=True, index=True)
    ticker: str = db.Column(db.String(30))
    date: str = db.Column(db.Date)
    pred_price: float = db.Column(db.Float)
    open: float = db.Column(db.Float)
    high: float = db.Column(db.Float)
    low: float = db.Column(db.Float)
    close: float = db.Column(db.Float)
    stock_id: int = db.Column(db.Integer, db.ForeignKey(YHFinanceDto.id))
    covid_id: int = db.Column(db.Integer, db.ForeignKey(USCovidDto.id))
    news_id: int = db.Column(db.Integer, db.ForeignKey(InvestingDto.id))

    def __init__(self, ticker, date, pred_price, open, high, low, close,
                 stock_id, covid_id, news_id):
        self.ticker = ticker
        self.date = date
        self.pred_price = pred_price
        self.open = open
        self.high = high
        self.low = low
        self.close = close

        self.stock_id = stock_id
        self.covid_id = covid_id
        self.news_id = news_id

    def __repr__(self):
        return f'NASDAQ_Prediction(id=\'{self.id}\',ticker=\'{self.ticker}\',date=\'{self.date}\', pred_price=\'{self.pred_price}\',\
                open=\'{self.open}\',high=\'{self.high}\',low=\'{self.low}\',close=\'{self.close}\',\
                stock_id=\'{self.stock_id}\',covid_id=\'{self.covid_id}\', news_id=\'{self.news_id}\' )'

    @property
    def json(self):
        return {
            'id': self.id,
            'ticker': self.ticker,
            'date': self.date,
            'pred_price': self.pred_price,
            'open': self.open,
            'high': self.high,
            'low': self.low,
            'close': self.close,
            'stock_id': self.stock_id,
            'covid_id': self.covid_id,
            'news_id': self.news_id
        }

    def save(self):
        db.session.add(self)
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commint()
示例#27
0
class KospiDto(db.Model):
    __tablename__ = 'kospi_pred'
    __table_args__ = {'mysql_collate': 'utf8_general_ci'}

    id: str = db.Column(db.Integer, primary_key=True, index=True)
    date: str = db.Column(db.DATE)
    ticker: str = db.Column(db.VARCHAR(30))
    pred_price: int = db.Column(db.VARCHAR(30))
    open: float = db.Column(db.Float)
    high: float = db.Column(db.Float)
    low: float = db.Column(db.Float)
    close: float = db.Column(db.Float)

    covid_id: str = db.Column(db.Integer, db.ForeignKey(KoreaDto.id))
    stock_id: str = db.Column(db.Integer, db.ForeignKey(StockDto.id))
    news_id: str = db.Column(db.Integer, db.ForeignKey(NewsDto.id))

    def __init__(self, id, date, covid_id, stock_id, news_id, ticker,
                 pred_price, open, high, low, close):
        self.id = id
        self.date = date
        self.covid_id = covid_id
        self.stock_id = stock_id
        self.news_id = news_id
        self.ticker = ticker
        self.pred_price = pred_price
        self.open = open
        self.high = high
        self.low = low
        self.cloese = close

    def __repr__(self):
        return f'id={self.id},date={self.date},covid_id ={self.covid_id },stock_id={self.stock_id},news_id={self.news_id}, ticker={self.ticker},\
            pred_price={self.pred_price},open={self.open},high={self.high},low={self.low},close={self.close}'

    @property
    def json(self):
        return {
            'id': self.id,
            'date': self.date,
            'covid_id': self.covid_id,
            'stock_id': self.stock_id,
            'news_id': self.news_id,
            'ticker': self.ticker,
            'pred_price': self.pred_price,
            'open': self.open,
            'low': self.low,
            'high': self.high,
            'close': self.close
        }