36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
|
|
from sqlmodel import Field, SQLModel
|
|
|
|
|
|
class HeadcountRequest(SQLModel, table=True):
|
|
__tablename__ = "headcount_requests"
|
|
|
|
id: int | None = Field(default=None, primary_key=True)
|
|
department_id: int = Field(foreign_key="departments.id")
|
|
requested_by_manager_id: int = Field(foreign_key="employees.id")
|
|
|
|
role_title: str
|
|
employee_type: str # human | agent
|
|
quantity: int = Field(default=1)
|
|
|
|
justification: str | None = None
|
|
status: str = Field(default="submitted")
|
|
|
|
created_at: datetime = Field(default_factory=datetime.utcnow)
|
|
|
|
|
|
class EmploymentAction(SQLModel, table=True):
|
|
__tablename__ = "employment_actions"
|
|
|
|
id: int | None = Field(default=None, primary_key=True)
|
|
employee_id: int = Field(foreign_key="employees.id")
|
|
issued_by_employee_id: int = Field(foreign_key="employees.id")
|
|
|
|
action_type: str # praise|warning|pip|termination
|
|
notes: str | None = None
|
|
|
|
created_at: datetime = Field(default_factory=datetime.utcnow)
|