"""人员级别模型 管理不同岗位/级别的时薪标准 """ from typing import List, TYPE_CHECKING from sqlalchemy import String, Boolean, DECIMAL from sqlalchemy.orm import Mapped, mapped_column, relationship from app.models.base import BaseModel if TYPE_CHECKING: from app.models.project_labor_cost import ProjectLaborCost class StaffLevel(BaseModel): """人员级别表""" __tablename__ = "staff_levels" level_code: Mapped[str] = mapped_column( String(20), unique=True, nullable=False, comment="级别编码" ) level_name: Mapped[str] = mapped_column( String(50), nullable=False, comment="级别名称" ) hourly_rate: Mapped[float] = mapped_column( DECIMAL(10, 2), nullable=False, comment="时薪(元/小时)" ) is_active: Mapped[bool] = mapped_column( Boolean, nullable=False, default=True, comment="是否启用" ) # 关系 project_labor_costs: Mapped[List["ProjectLaborCost"]] = relationship( "ProjectLaborCost", back_populates="staff_level" )