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")