"""系统设置模型:公司信息单例行。 与 M1 计提参数体系刻意分离:公司名称/logo 是「展示事实」,没有按生效日期 时点化演算的语义(参数体系按 effective_date 取值快照),且参数值列 value_text 为 String(64) 装不下;故独立单行表。logo 只存相对路径——文件在 `backend/uploads/logo/`,独立于数据库备份体积且可单独替换(见 system_setting_service)。整个系统恒为单行(迁移种子 id=1 保底,upsert 维护)。 """ from sqlalchemy import String from sqlalchemy.orm import Mapped, mapped_column from app.models.base import BIGINT_UNSIGNED, Base, TimestampMixin, mysql_table_args class SystemSetting(Base, TimestampMixin): """系统设置表:本期仅公司信息(公司名称 / logo 路径),全系统单行 id=1。""" __tablename__ = "system_settings" __table_args__ = mysql_table_args("系统设置表(公司信息,全系统单行)") id: Mapped[int] = mapped_column( BIGINT_UNSIGNED, primary_key=True, autoincrement=True, comment="主键ID" ) company_name: Mapped[str] = mapped_column( String(64), nullable=False, comment="公司名称(登录页与导出页眉展示)" ) logo_path: Mapped[str | None] = mapped_column( String(255), comment="logo 相对路径(文件存 uploads/logo/,null=未上传使用默认)", )