Add teams + team ownership (schema + API)

This commit is contained in:
Jarvis
2026-02-02 12:51:25 +00:00
parent dc8750353d
commit e283543ef1
7 changed files with 178 additions and 3 deletions

View File

@@ -1,11 +1,12 @@
from app.models.activity import Activity
from app.models.org import Department, Employee
from app.models.org import Department, Team, Employee
from app.models.projects import Project, ProjectMember
from app.models.work import Task, TaskComment
__all__ = [
"Department",
"Employee",
"Team",
"Project",
"ProjectMember",
"Task",

View File

@@ -13,6 +13,16 @@ class Department(SQLModel, table=True):
head_employee_id: int | None = Field(default=None, foreign_key="employees.id")
class Team(SQLModel, table=True):
__tablename__ = "teams"
id: int | None = Field(default=None, primary_key=True)
name: str = Field(index=True)
department_id: int = Field(foreign_key="departments.id")
lead_employee_id: int | None = Field(default=None, foreign_key="employees.id")
class Employee(SQLModel, table=True):
__tablename__ = "employees"
@@ -21,6 +31,7 @@ class Employee(SQLModel, table=True):
employee_type: str # human | agent
department_id: int | None = Field(default=None, foreign_key="departments.id")
team_id: int | None = Field(default=None, foreign_key="teams.id")
manager_id: int | None = Field(default=None, foreign_key="employees.id")
title: str | None = None

View File

@@ -10,6 +10,9 @@ class Project(SQLModel, table=True):
name: str = Field(index=True, unique=True)
status: str = Field(default="active")
# Project ownership: projects are assigned to teams (not departments)
team_id: int | None = Field(default=None, foreign_key="teams.id")
class ProjectMember(SQLModel, table=True):
__tablename__ = "project_members"