# GetContactPerson

## Overview

GetContactPerson retrieves a single contact person record by id. This serves as the lookup for update, deactivate, reactivate, delete, and setPrimary contact person commands.

## Business Rules

- Accepts `{ id }` as input — retrieves by unique identifier
- Returns the full ContactPerson record or null if no matching contact person is found
- Used by update, deactivate, reactivate, delete, and setPrimary commands to verify the contact person exists before operating on it

## Process Flow

```mermaid
flowchart TD
    A[Receive input] --> B[SELECT from ContactPerson where id = input.id]
    B --> C{Contact person found?}
    C -->|Yes| D[Return contact person record]
    C -->|No| E[Return null]
```

## External Dependencies

- None

## Error Scenarios

- **CONTACT_PERSON_NOT_FOUND**: Specified contact person ID does not exist

## Test Cases

- returns contact person when found
- returns null when not found
