35 lines
1.6 KiB
Markdown
35 lines
1.6 KiB
Markdown
## Why
|
|
|
|
Currently, the frontend displays raw UUIDs for user references (assignee, creator, members) which creates a poor user experience. Users should see meaningful names like "Alice Smith" instead of "a1b2c3d4-e5f6-7890-abcd-ef1234567890". The backend already stores display names in the Member entity, but the API DTOs don't expose them.
|
|
|
|
## What Changes
|
|
|
|
- **Backend DTOs**: Add name fields to task and shift DTOs
|
|
- `TaskListItemDto`: Add `string? AssigneeName`
|
|
- `TaskDetailDto`: Add `string? AssigneeName` and `string CreatedByName`
|
|
- `ShiftSignupDto`: Add `string MemberName`
|
|
- **Backend Services**: Update TaskService and ShiftService to query and populate member names
|
|
- Join with Members table to fetch display names
|
|
- Include names in DTO construction
|
|
- **Frontend Types**: Update TypeScript interfaces to include new name fields
|
|
- `TaskListItemDto`, `TaskDetailDto`, `ShiftSignupDto` interfaces
|
|
- **Frontend UI**: Replace UUID displays with names
|
|
- Task list: show assignee name instead of ID
|
|
- Task detail: show assignee and creator names
|
|
- Shift detail: show member names in signup list
|
|
|
|
## Capabilities
|
|
|
|
### New Capabilities
|
|
- `member-name-enrichment`: API DTOs include human-readable member names alongside IDs
|
|
|
|
### Modified Capabilities
|
|
- None (this is purely an enhancement to existing capabilities)
|
|
|
|
## Impact
|
|
|
|
- **Backend**: TaskService.cs, ShiftService.cs, and DTOs in WorkClub.Application
|
|
- **Frontend**: Tasks pages, Shifts pages, and React hooks (useTasks.ts, useShifts.ts)
|
|
- **Database**: Additional JOIN queries on Members table (no schema changes)
|
|
- **API Response**: New optional fields in existing endpoints (backward compatible)
|