Files

35 lines
1.4 KiB
Python
Raw Permalink Normal View History

"""育种目标 数据模型"""
from datetime import datetime
from sqlalchemy import Float, ForeignKey, Index, Integer, String, Text
from sqlalchemy.orm import Mapped, mapped_column
from app.core.base_model import MappedBase, ModelMixin, UserMixin
class TargetModel(ModelMixin, UserMixin, MappedBase):
"""育种目标 主数据表。"""
__tablename__ = "bre_target"
target_name: Mapped[str] = mapped_column(String(100), nullable=False, comment="目标名称")
plan_id: Mapped[int | None] = mapped_column(
Integer, ForeignKey("bre_plan.id", ondelete="SET NULL"), nullable=True, index=True,
comment="所属育种计划", default=None,
)
series: Mapped[str | None] = mapped_column(String(100), nullable=True, comment="系列/品系", default=None)
description: Mapped[str | None] = mapped_column(Text, nullable=True, comment="目标描述", default=None)
is_preset: Mapped[str | None] = mapped_column(String(50), nullable=True, comment="是否预设", default=None)
remark: Mapped[str | None] = mapped_column(Text, nullable=True, comment="备注", default=None)
# 无 status 列:覆盖基类默认 ix_<表>_status_deleted 索引,
# 仅保留 (created_time, is_deleted) 复合索引用于数据权限过滤。
__table_args__ = (
Index("ix_bre_target_created_deleted", "created_time", "is_deleted"),
)