from datetime import datetime from sqlalchemy import DateTime, String from sqlalchemy.orm import Mapped, mapped_column from app.common.enums import PermissionFilterStrategy from app.core.base_model import PaymentModelMixin, TenantMixin, EnterpriseMixin from .enums import DepartmentStatusEnum class DepartmentModel(PaymentModelMixin, TenantMixin, EnterpriseMixin): """部门模型""" __tablename__ = "pay_department" __table_args__ = {"comment": "部门表"} __permission_strategy__ = PermissionFilterStrategy.ENTERPRISE_BASED department_id: Mapped[str | None] = mapped_column( String(64), unique=True, index=True, comment="部门ID(业务主键)" ) name: Mapped[str] = mapped_column(String(128), comment="部门名称") code: Mapped[str | None] = mapped_column(String(64), comment="部门编码") parent_id: Mapped[str | None] = mapped_column( String(64), index=True, comment="上级部门ID" ) leader_employee_id: Mapped[str | None] = mapped_column( String(64), comment="部门负责人员工ID" ) sort_order: Mapped[int] = mapped_column( default=0, comment="排序值(越大越靠前)" ) status: Mapped[str] = mapped_column( String(32), default=DepartmentStatusEnum.DEPARTMENT_ACTIVE.value, comment="状态", )