Robert Bond
9595ad86df
Merged PR 2374: addeding domain layer extrraction
# Summary
This PR introduces a **Case Lifecycle Domain Boundary** to centralize lifecycle decision logic and reduce coupling within the appeals application.
The work is **behaviour-preserving** and introduces no intentional changes to business rules, CRM integrations, translations, dashboards, API routes, or user-facing functionality.
## What was added
New lifecycle boundary:
```text
lib/domain/case-lifecycle/
```
Key responsibilities extracted:
- Specialist process normalization
- Appeal type mapping
- Specialist process stage override mapping
- Stage case-type resolution
- Stage catalogue lookup
- Closed-case status recognition
- Lifecycle stage index resolution
- Lifecycle stage status assignment
## Behaviour preserved
Characterization tests were added before each extraction to preserve:
- Appeal type mapping and aliases
- Specialist process handling
- Lifecycle stage progression
- Closed-case handling
- Status assignment (`complete`, `in-progress`, `not-started`)
- Existing ROW behaviour
- Existing `statuscode` lifecycle semantics
Closed-case recognition remains unchanged for:
```text
1000
5
6
846040013
846040059
846040060
```
## Documentation
Added:
```text
lib/domain/case-lifecycle/README.md
```
Documenting:
- Boundary ownership
- Non-goals
- Lifecycle invariants
- Known architectural constraints
- Future extraction roadmap
## Testing
Added lifecycle characterization coverage for:
- Stage wrapper behaviour
- Specialist process normalization
- Appeal type mapping
- Specialist process stage mapping
- Stage case-type resolution
- Stage catalogue lookup
- Progress behaviour
- Closed-case status handling
- Stage index resolution
- Stage status assignment
## Validation
- Lifecycle characterization tests passed
- `npm run lint` passed with no errors
## Out of Scope
No changes to:
- Stage catalogue ownership
- Representation eligibility
- Dashboard calculations
- CRM/OData queries
- API routes
- Redux state
- EN/CY translations
- Event visibility logic
## Risk
**Low risk**
The refactor was delivered through small, characterization-first slices with no functional changes intended.
Related work items: #23527
2026-06-08 09:34:30 +00:00
..
2026-03-25 11:49:19 +00:00
2026-03-25 14:06:18 +00:00
2026-03-13 11:38:14 +00:00
2026-03-13 12:17:51 +00:00
2026-03-13 12:26:06 +00:00
2026-03-13 12:32:37 +00:00
2026-03-13 12:49:54 +00:00
2026-03-13 13:02:49 +00:00
2026-03-13 16:40:51 +00:00
2026-03-13 16:04:31 +00:00
2026-03-13 16:23:34 +00:00
2026-03-13 18:43:42 +00:00
2026-03-14 06:52:17 +00:00
2026-03-14 07:06:57 +00:00
2026-03-16 10:46:05 +00:00
2026-03-24 18:07:04 +00:00
2026-06-08 09:34:30 +00:00
2026-03-25 14:13:53 +00:00