315105cebb
- 투자 의견 조회
ㄴ 전반적인 주식 판단 기준(ex. 채무, 리스크 등등)을 기준으로 판단하여 도출
- 투자 추천
ex)
{
"tickers": [
"NVDA", "GOOGL", "AAPL"
],
"risk_type": "aggressive"
}
29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
from backend.repository.db_init import Base
|
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
from datetime import datetime
|
|
from sqlalchemy import JSON, ForeignKey, String
|
|
|
|
class StockAnalysis(Base):
|
|
__tablename__ = "stock_analysis"
|
|
|
|
analysis_id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
|
|
ticker:Mapped[str]
|
|
company_name:Mapped[str]
|
|
analysis_json: Mapped[dict] = mapped_column(JSON)
|
|
report:Mapped[str]
|
|
created_at:Mapped[datetime] = mapped_column(default=datetime.now, nullable=False)
|
|
opinion = relationship("InvestmentOpinion", back_populates="analysis", uselist=False)
|
|
|
|
class InvestmentOpinion(Base):
|
|
__tablename__ = "investment_opinion"
|
|
|
|
opinion_id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
|
|
analysis_id: Mapped[int] = mapped_column(ForeignKey("stock_analysis.analysis_id"), unique=True)
|
|
opinion: Mapped[str]
|
|
# 투자의견 : Buy, sell.....
|
|
rating:Mapped[str] = mapped_column(String(20), nullable=True)
|
|
score:Mapped[int] = mapped_column(default=0)
|
|
created_at:Mapped[datetime] = mapped_column(default=datetime.now, nullable=False)
|
|
analysis = relationship("StockAnalysis", back_populates="opinion")
|
|
|