# GetCorrectionLogEntry

## Overview

Retrieves a single `TimeCorrectionLog` entry by its id. Used to inspect the full detail of one historical correction — what field changed, its previous and new value, who made it, and why — as part of an audit or dispute review.

## Business Rules

- Returns the entry exactly as recorded; entries are append-only and never modified or deleted
- Always includes `previousValue`, `newValue`, a non-empty `reason`, `correctedBy`, and `correctedAt`
- `targetReportedBlockId` is present only when the correction targeted a specific reported block, and absent for period-level corrections

## Process Flow

```mermaid
flowchart TD
    A[Caller supplies correctionLogEntryId] --> B{Entry exists?}
    B -- No --> C[Return CORRECTION_LOG_ENTRY_NOT_FOUND]
    B -- Yes --> D[Return TimeCorrectionLog entry with timecardId, field, previousValue, newValue, reason, correctedBy, correctedAt]
```

## External Dependencies

- [time-tracking::TimeCorrectionLog](../model/TimeCorrectionLog.md) model — entity being queried

## Error Scenarios

- **CORRECTION_LOG_ENTRY_NOT_FOUND**: no TimeCorrectionLog entry exists with the supplied id

## Test Cases

- returns the correction entry when found by id, including field, previousValue, and newValue
- returns CORRECTION_LOG_ENTRY_NOT_FOUND when the id does not exist
- returns targetReportedBlockId when the correction targeted a specific reported block
- returns correctedBy and correctedAt for the entry
