# GetWorkerEmployment

## Overview

Retrieves a single WorkerEmployment generation by its id, returning the effective-dated employment relationship — Company, employment type, work regime, hire date, and termination date — as of that generation.

## Business Rules

- Returns the WorkerEmployment generation exactly as stored, including `effectiveStart`, `effectiveEnd` (nullable), and `versionOf`
- Does not resolve "as of" a date — this query returns one specific generation by id
- `employmentTypeId` and `workRegimeId` are returned as the stored EmploymentType / WorkRegime catalog ids

## Process Flow

```mermaid
flowchart TD
    A[Caller requests WorkerEmployment by id] --> B{Generation exists?}
    B -- No --> C[Reject: WORKER_EMPLOYMENT_NOT_FOUND]
    B -- Yes --> D[Return WorkerEmployment: Company, employmentTypeId, workRegimeId, hireDate, terminationDate, effectiveStart/End]
```

## External Dependencies

- [workforce::WorkerEmployment](../model/WorkerEmployment.md) model — entity being queried
- organization::Company model (cross-module) — referenced by the employment's `companyId`

## Error Scenarios

- **WORKER_EMPLOYMENT_NOT_FOUND**: the specified WorkerEmployment does not exist

## Test Cases

- returns the WorkerEmployment generation when found by id
- returns NOT_FOUND when the id does not exist
- a returned WorkerEmployment includes its Company, employmentTypeId, and workRegimeId
- a returned WorkerEmployment references its work regime by catalog id
