""" StarSystem ORM Model 恒星系统数据模型 """ from sqlalchemy import Column, Integer, String, Text, Double, TIMESTAMP, func from sqlalchemy.dialects.postgresql import JSONB from sqlalchemy.orm import relationship from app.database import Base class StarSystem(Base): """恒星系统表""" __tablename__ = 'star_systems' id = Column(Integer, primary_key=True, index=True) name = Column(String(200), unique=True, nullable=False, index=True) name_zh = Column(String(200)) host_star_name = Column(String(200), nullable=False, index=True) # 位置信息(系外恒星系) distance_pc = Column(Double) distance_ly = Column(Double) ra = Column(Double) dec = Column(Double) position_x = Column(Double) position_y = Column(Double) position_z = Column(Double) # 恒星物理参数 spectral_type = Column(String(20)) radius_solar = Column(Double) mass_solar = Column(Double) temperature_k = Column(Double) magnitude = Column(Double) luminosity_solar = Column(Double) # 显示属性 color = Column(String(20)) planet_count = Column(Integer, default=0) # 描述信息 description = Column(Text) details = Column(Text) extra_data = Column(JSONB) # 时间戳 created_at = Column(TIMESTAMP, server_default=func.now()) updated_at = Column(TIMESTAMP, server_default=func.now(), onupdate=func.now()) # 关系 celestial_bodies = relationship("CelestialBody", back_populates="star_system", cascade="all, delete-orphan") def __repr__(self): return f""