Files
smart-project-pricing/后端服务/app/models/staff_level.py
2026-01-31 21:33:06 +08:00

50 lines
1.1 KiB
Python

"""人员级别模型
管理不同岗位/级别的时薪标准
"""
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"
)