model.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from datetime import datetime
  2. from sqlalchemy import DateTime, String
  3. from sqlalchemy.orm import Mapped, mapped_column
  4. from app.common.enums import PermissionFilterStrategy
  5. from app.core.base_model import PaymentModelMixin, TenantMixin, EnterpriseMixin
  6. from .enums import DepartmentStatusEnum
  7. class DepartmentModel(PaymentModelMixin, TenantMixin, EnterpriseMixin):
  8. """部门模型"""
  9. __tablename__ = "pay_department"
  10. __table_args__ = {"comment": "部门表"}
  11. __permission_strategy__ = PermissionFilterStrategy.ENTERPRISE_BASED
  12. department_id: Mapped[str | None] = mapped_column(
  13. String(64), unique=True, index=True, comment="部门ID(业务主键)"
  14. )
  15. name: Mapped[str] = mapped_column(String(128), comment="部门名称")
  16. code: Mapped[str | None] = mapped_column(String(64), comment="部门编码")
  17. parent_id: Mapped[str | None] = mapped_column(
  18. String(64), index=True, comment="上级部门ID"
  19. )
  20. leader_employee_id: Mapped[str | None] = mapped_column(
  21. String(64), comment="部门负责人员工ID"
  22. )
  23. sort_order: Mapped[int] = mapped_column(
  24. default=0, comment="排序值(越大越靠前)"
  25. )
  26. status: Mapped[str] = mapped_column(
  27. String(32),
  28. default=DepartmentStatusEnum.DEPARTMENT_ACTIVE.value,
  29. comment="状态",
  30. )