# 03 — Service Management

**Domain:** Service Management · **BE Owner:** Sharif (C) · **FE:** Bablu (D)

## Features
| Feature | Notes |
| --- | --- |
| Service Master (`pms_services`) | Phase 1 |
| Client Integration | Reuse existing Client module — PMS-1.5-BE |
| Service Configuration | **Not currently specified** beyond master CRUD |

## Workstreams
Backend · API Contract · Frontend · Tests · Integration

### PMS-API-1.2 — Service Master API Contract Lock

**Task ID:** PMS-API-1.2
**Domain:** 03. Service / 11. API
**Feature:** Service Master
**Workstream:** API Contract
**Task Title:** Service Master API Contract Lock
**Description:** NEW STRUCTURAL. Freeze CRUD + /active list.
**Owner:** Sharif
**Lane:** C
**Priority:** P0
**Estimate:** 1.00h
**Dependency:** PMS-API-0
**Dependency Type:** HARD
**Specification Reference:** SRS §9; card PMS-1.2-BE
**Business Rule Reference:** Unique name/company; active dropdown
**API Contract Reference:** Self
**Acceptance Criteria**
- Endpoints, payloads, errors, permissions documented
**Definition of Done:** In 11-api.md
**Git Ownership / File Ownership:** `pms_services` → Sharif
**Git Conflict Risk:** LOW
**Parallelization Notes:** Parallel with PMS-API-1.1; unlocks FE + Munna team FK planning

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

---

### PMS-1.2-BE — Service Master — Backend

**Task ID:** PMS-1.2-BE
**Domain:** 03. Service Management
**Feature:** Service Master
**Workstream:** Backend
**Task Title:** Service Master — Backend
**Description:** CRUD for pms_services.
**Owner:** Sharif
**Lane:** C
**Priority:** P0
**Estimate:** 6.00h
**Dependency:** PMS-0.1 HARD; PMS-API-1.2 SOFT
**Dependency Type:** HARD / SOFT
**Specification Reference:** SRS §9; card PMS-1.2-BE
**Business Rule Reference:** Service master referenced by project links and service teams
**API Contract Reference:** PMS-API-1.2
**Acceptance Criteria**
- Given duplicate name When store Then 422
- Given in-use service When destroy Then blocked
**Definition of Done:** Global BE DoD
**Git Ownership / File Ownership:** `pms_services` + Services* classes
**Git Conflict Risk:** LOW
**Parallelization Notes:** Day-1 parallel with Project Types

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

---

### PMS-1.2-FE — Service Master — Frontend

**Task ID:** PMS-1.2-FE
**Domain:** 03. Service Management
**Feature:** Service Master
**Workstream:** Frontend
**Task Title:** Service Master — Frontend
**Description:** Admin UI for services.
**Owner:** Bablu
**Lane:** D
**Priority:** P1
**Estimate:** 4.00h
**Dependency:** PMS-0.1-FE; PMS-API-1.2; PMS-1.2-BE SOFT
**Dependency Type:** HARD nav; SOFT API/BE
**Specification Reference:** Card PMS-1.2-FE
**Business Rule Reference:** N/A
**API Contract Reference:** PMS-API-1.2
**Acceptance Criteria**
- CRUD UX; permission gated; in-use delete errors shown
**Definition of Done:** Global FE DoD
**Git Ownership / File Ownership:** frontend services pages
**Git Conflict Risk:** LOW
**Parallelization Notes:** Mock-first from API contract

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

---

### PMS-1.5-BE — Client Module Integration Point

**Task ID:** PMS-1.5-BE
**Domain:** 03. Service Management / 11. API
**Feature:** Client Integration
**Workstream:** Integration
**Task Title:** Client Module Integration Point
**Description:** Confirm Client reuse for Project/Contract; no duplicate clients table.
**Owner:** Sharif
**Lane:** C
**Priority:** P1
**Estimate:** 3.00h
**Dependency:** PMS-0.1
**Dependency Type:** HARD
**Specification Reference:** SRS §5; card PMS-1.5-BE
**Business Rule Reference:** Contract client must match project client
**API Contract Reference:** Existing Client API + note in 11-api.md
**Acceptance Criteria**
- Given invalid client_id When project/contract validate Then reject
- Given docs When read Then no pms_clients table proposed
**Definition of Done:** Integration note in PR; validation hooks agreed with Ashraful
**Git Ownership / File Ownership:** docs + shared validation helpers if needed (coordinate)
**Git Conflict Risk:** MEDIUM if touching Project FormRequest — coordinate Ashraful
**Parallelization Notes:** Can run parallel to masters CRUD

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

---
