# 04 — Team Management

**Domain:** Team Management · **BE Owner:** Munna (B) for teams/membership; Sharif (C) for divisions · **FE:** Bablu

## Critical distinction
Permanent membership (`service_team_members`) ≠ contract membership (`contract_members`).

## Features
- Team Divisions BD/PD (`team_divisions`)
- Service Team (`service_teams`)
- Permanent Team Membership (`service_team_members`)
- Team UI

## Workstreams
Backend · API Contract · Frontend · Tests

### PMS-1.3-BE — Team Divisions & Contract Roles — Backend

**Task ID:** PMS-1.3-BE
**Domain:** 04. Team Management
**Feature:** Team Divisions & Contract Roles
**Workstream:** Backend
**Task Title:** Team Divisions & Contract Roles — Backend
**Description:** BD/PD divisions; reuse designations for contract roles; optional pms_contract_role_maps; document PM=Member of Project.
**Owner:** Sharif
**Lane:** C
**Priority:** P0
**Estimate:** 5.00h
**Dependency:** PMS-0.1 HARD
**Dependency Type:** HARD
**Specification Reference:** SRS §13–§16; card PMS-1.3-BE
**Business Rule Reference:** BD/PD primary divisions; no ActAs master table; PM wording
**API Contract Reference:** Include in PMS-API-1.3 (see 11-api.md)
**Acceptance Criteria**
- Given company When seeded Then BD and PD divisions exist
- Given docs When read Then PM means Member of Project
**Definition of Done:** Global BE DoD / seed path
**Git Ownership / File Ownership:** `team_divisions`, optional `pms_contract_role_maps`
**Git Conflict Risk:** LOW
**Parallelization Notes:** Parallel with service master; unlocks Munna membership division FK

_Detail card:_ `docs/projects/PMS_PHASE1_TASK_CARDS.md` → `PMS-1.3-BE`

---

### PMS-1.3-FE — Team Divisions & Roles — Frontend

**Task ID:** PMS-1.3-FE
**Domain:** 04. Team Management
**Feature:** Team Divisions & Roles
**Workstream:** Frontend
**Task Title:** Team Divisions & Roles — Frontend
**Description:** Reference/config UI for divisions/roles.
**Owner:** Bablu
**Lane:** D
**Priority:** P2
**Estimate:** 3.00h
**Dependency:** PMS-1.3-BE SOFT; PMS-0.1-FE HARD
**Dependency Type:** SOFT / HARD
**Specification Reference:** Card PMS-1.3-FE
**Business Rule Reference:** PM help text
**API Contract Reference:** PMS-API-1.3
**Acceptance Criteria**
- BD/PD visible; PM helper text present
**Definition of Done:** Global FE DoD
**Git Ownership / File Ownership:** frontend divisions/roles screens
**Git Conflict Risk:** LOW
**Parallelization Notes:** Low priority vs project/contract UI

_Detail card:_ `docs/projects/PMS_PHASE1_TASK_CARDS.md` → `PMS-1.3-FE`

---

### PMS-API-3.1 — Service Teams & Membership API Contract Lock

**Task ID:** PMS-API-3.1
**Domain:** 04. Team / 11. API
**Feature:** Service Team
**Workstream:** API Contract
**Task Title:** Service Teams & Membership API Contract Lock
**Description:** NEW STRUCTURAL. Freeze team + permanent member APIs; state Team≠Contract Team.
**Owner:** Munna
**Lane:** B
**Priority:** P0
**Estimate:** 1.50h
**Dependency:** PMS-API-0; PMS-API-1.2
**Dependency Type:** HARD
**Specification Reference:** SRS §12–§13; cards 3.1/3.2
**Business Rule Reference:** Team ≠ Contract Team; membership has no contract role
**API Contract Reference:** Self
**Acceptance Criteria**
- Permanent membership endpoints do not require designation_id
**Definition of Done:** In 11-api.md
**Git Ownership / File Ownership:** `service_teams`, `service_team_members` → Munna
**Git Conflict Risk:** LOW
**Parallelization Notes:** Unlocks PMS-3.1-FE; BE can proceed after 1.2

_Detail card:_ `docs/projects/PMS_PHASE1_TASK_CARDS.md` → `PMS-API-3.1`

---

### PMS-3.1-BE — Service Teams — Backend

**Task ID:** PMS-3.1-BE
**Domain:** 04. Team Management
**Feature:** Service Team
**Workstream:** Backend
**Task Title:** Service Teams — Backend
**Description:** CRUD service_teams linked to pms_services.
**Owner:** Munna
**Lane:** B
**Priority:** P0
**Estimate:** 5.00h
**Dependency:** PMS-1.2-BE HARD; PMS-1.3-BE SOFT; PMS-API-3.1 SOFT
**Dependency Type:** HARD / SOFT / SOFT
**Specification Reference:** SRS §12; card PMS-3.1-BE
**Business Rule Reference:** Team ≠ Contract Team
**API Contract Reference:** PMS-API-3.1
**Acceptance Criteria**
- Team belongs to one service; company scoped; IDOR blocked
**Definition of Done:** Global BE DoD
**Git Ownership / File Ownership:** `service_teams`
**Git Conflict Risk:** LOW
**Parallelization Notes:** Scaffold before 1.2 merge; hard FK after

_Detail card:_ `docs/projects/PMS_PHASE1_TASK_CARDS.md` → `PMS-3.1-BE`

---

### PMS-3.2-BE — Service Team Membership — Backend

**Task ID:** PMS-3.2-BE
**Domain:** 04. Team Management
**Feature:** Permanent Team Membership
**Workstream:** Backend
**Task Title:** Service Team Membership — Backend
**Description:** Permanent BD/PD members; does not set contract role.
**Owner:** Munna
**Lane:** B
**Priority:** P0
**Estimate:** 6.00h
**Dependency:** PMS-3.1-BE HARD
**Dependency Type:** HARD
**Specification Reference:** SRS §25; card PMS-3.2-BE
**Business Rule Reference:** Membership ≠ contract role; BR-06
**API Contract Reference:** PMS-API-3.1
**Acceptance Criteria**
- Given add member When saved Then no designation_id required
- Given employee When only on team Then valid without any contract assignment
**Definition of Done:** Global BE DoD; must not write contract_members
**Git Ownership / File Ownership:** `service_team_members`
**Git Conflict Risk:** LOW
**Parallelization Notes:** Independent of Contract CRUD until 3.3

_Detail card:_ `docs/projects/PMS_PHASE1_TASK_CARDS.md` → `PMS-3.2-BE`

---

### PMS-3.1-FE — Service Teams & Members — Frontend

**Task ID:** PMS-3.1-FE
**Domain:** 04. Team Management
**Feature:** Service Teams & Members UI
**Workstream:** Frontend
**Task Title:** Service Teams & Members — Frontend
**Description:** UI for permanent teams/members; copy clarifies not contract assignment.
**Owner:** Bablu
**Lane:** D
**Priority:** P1
**Estimate:** 6.00h
**Dependency:** PMS-API-3.1; PMS-3.2-BE SOFT; PMS-0.1-FE
**Dependency Type:** SOFT / SOFT / HARD
**Specification Reference:** Card PMS-3.1-FE
**Business Rule Reference:** Permanent vs contract distinction in UI copy
**API Contract Reference:** PMS-API-3.1
**Acceptance Criteria**
- BD/PD required on add; permanent wording visible
**Definition of Done:** Global FE DoD
**Git Ownership / File Ownership:** frontend teams screens
**Git Conflict Risk:** LOW
**Parallelization Notes:** Can proceed while Ashraful builds contracts

_Detail card:_ `docs/projects/PMS_PHASE1_TASK_CARDS.md` → `PMS-3.1-FE`

---
