from sqlalchemy import Column, Integer, String, Enum, ForeignKey, Boolean from sqlalchemy.orm import relationship from sqlalchemy.dialects.mysql import LONGTEXT from .database import Base class Indicator(Base): __tablename__ = "indicator" id = Column(Integer, autoincrement=True, primary_key=True, index=True) ename = Column(String(255), index=True) cname = Column(String(255), index=True) description = Column(LONGTEXT) nature = Column(Enum('定性', '定量')) category = Column(Enum('盈利能力', '收益质量', '现金流量', '资本结构', '偿债能力', '运营能力', '成长能力', '经营指标', '资质指标', '行业指标', '绿色指标', '司法指标', '合规指标', '舆情指标', '其他')) is_active = Column(Boolean, default=True) parameters = relationship("Parameters", back_populates="indicator") class Parameters(Base): __tablename__ = "parameters" id = Column(Integer, autoincrement=True, primary_key=True, index=True) ename = Column(String(255)) cname = Column(String(255)) description = Column(LONGTEXT) indicator_id = Column(Integer, ForeignKey("indicator.id")) indicator = relationship("Indicator", back_populates="parameters")