## ADDED Requirements ### Requirement: Task list items include assignee name The API SHALL return the assignee's display name in TaskListItemDto. #### Scenario: Task with assignee - **WHEN** a task is assigned to a member - **THEN** the TaskListItemDto SHALL include the assignee's DisplayName as `assigneeName` #### Scenario: Task without assignee - **WHEN** a task has no assignee - **THEN** the TaskListItemDto SHALL have `assigneeName` set to null ### Requirement: Task details include creator and assignee names The API SHALL return the display names of both the creator and assignee in TaskDetailDto. #### Scenario: Viewing task details - **WHEN** a user requests task details - **THEN** the TaskDetailDto SHALL include `createdByName` (the creator's DisplayName) - **AND** the TaskDetailDto SHALL include `assigneeName` (the assignee's DisplayName, or null if unassigned) ### Requirement: Shift signup includes member name The API SHALL return the member's display name in ShiftSignupDto. #### Scenario: Viewing shift signups - **WHEN** a user views shift details with signups - **THEN** each ShiftSignupDto SHALL include `memberName` (the member's DisplayName) ### Requirement: Frontend displays names instead of UUIDs The frontend SHALL render member names instead of UUIDs wherever user references appear. #### Scenario: Task list view - **WHEN** viewing the task list - **THEN** the Assignee column SHALL display the assignee's name (or "Unassigned") #### Scenario: Task detail view - **WHEN** viewing a task detail page - **THEN** the Assignee field SHALL display the assignee's name (or "Unassigned") - **AND** the Created By field SHALL display the creator's name #### Scenario: Shift detail view - **WHEN** viewing a shift detail page with signups - **THEN** the member list SHALL display each member's name instead of their ID