fix(capacity): Fix three defects - caching, save, filters

1. Slow Team Member Dropdown - Fixed
   - Added cached team members store with 5-minute TTL
   - Dropdown now loads instantly on subsequent visits

2. Error Preventing Capacity Save - Fixed
   - Added saveAvailability API endpoint
   - Added backend service method to persist availability overrides
   - Added proper error handling and success feedback
   - Cache invalidation on save

3. Filters Not Working - Fixed
   - Fixed PTOManager to use shared selectedMemberId
   - Filters now react to team member selection

Test Results:
- Backend: 76 passed 
- Frontend Unit: 10 passed 
- E2E: 130 passed, 24 skipped 

Refs: openspec/changes/headroom-foundation
This commit is contained in:
2026-02-19 18:09:16 -05:00
parent c3ba83d101
commit d6b7215f93
9 changed files with 211 additions and 19 deletions

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Http\Resources;
use App\Models\TeamMemberAvailability;
class TeamMemberAvailabilityResource extends BaseResource
{
public function toArray($request): array
{
/** @var TeamMemberAvailability $availability */
$availability = $this->resource;
return [
'team_member_id' => $availability->team_member_id,
'date' => $availability->date?->toDateString(),
'availability' => (float) $availability->availability,
];
}
}