model.py 898 B

1234567891011121314151617181920212223242526272829
  1. from typing import TYPE_CHECKING
  2. from sqlalchemy import Integer, String
  3. from sqlalchemy.orm import Mapped, mapped_column, relationship
  4. from app.core.base_model import ModelMixin, UserMixin
  5. if TYPE_CHECKING:
  6. from app.api.v1.module_system.user.model import UserModel
  7. class PositionModel(ModelMixin, UserMixin):
  8. """
  9. 岗位模型
  10. """
  11. __tablename__: str = "sys_position"
  12. __table_args__: dict[str, str] = {"comment": "岗位表"}
  13. __loader_options__: list[str] = ["users", "created_by", "updated_by"]
  14. name: Mapped[str] = mapped_column(String(64), nullable=False, comment="岗位名称")
  15. order: Mapped[int] = mapped_column(Integer, nullable=False, default=1, comment="显示排序")
  16. # 关联关系
  17. users: Mapped[list["UserModel"]] = relationship(
  18. secondary="sys_user_positions",
  19. back_populates="positions",
  20. lazy="selectin",
  21. )