Remove HR module; provision agent sessions via /employees

This commit is contained in:
Abhimanyu Saharan
2026-02-02 16:48:17 +05:30
parent 8f8e3b7c67
commit 1bbc65c983
7 changed files with 238 additions and 445 deletions

View File

@@ -1,8 +1,7 @@
from app.models.activity import Activity
from app.models.org import Department, Employee
from app.models.projects import Project, ProjectMember
from app.models.work import Task, TaskComment
from app.models.hr import HeadcountRequest, EmploymentAction
from app.models.activity import Activity
__all__ = [
"Department",
@@ -11,7 +10,5 @@ __all__ = [
"ProjectMember",
"Task",
"TaskComment",
"HeadcountRequest",
"EmploymentAction",
"Activity",
]

View File

@@ -1,66 +0,0 @@
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")
# fulfillment linkage (optional)
fulfilled_employee_id: int | None = Field(default=None, foreign_key="employees.id")
fulfilled_onboarding_id: int | None = Field(default=None, foreign_key="agent_onboardings.id")
fulfilled_at: datetime | None = None
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
# Optional idempotency key to prevent duplicates on retries
idempotency_key: str | None = Field(default=None, index=True, unique=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
class AgentOnboarding(SQLModel, table=True):
__tablename__ = "agent_onboardings"
id: int | None = Field(default=None, primary_key=True)
agent_name: str
role_title: str
prompt: str
cron_interval_ms: int | None = None
tools_json: str | None = None
owner_hr_id: int | None = Field(default=None, foreign_key="employees.id")
# Link to the employee record once created
employee_id: int | None = Field(default=None, foreign_key="employees.id")
status: str = Field(default="planned") # planned|spawning|spawned|verified|blocked
spawned_agent_id: str | None = None
session_key: str | None = None
notes: str | None = None
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)