- Add CapacityService with working days, PTO, holiday calculations - Add WorkingDaysCalculator utility for reusable date logic - Implement CapacityController with individual/team/revenue endpoints - Add HolidayController and PtoController for calendar management - Create TeamMemberAvailability model for per-day availability - Add Redis caching for capacity calculations with tag invalidation - Implement capacity planning UI with Calendar, Summary, Holiday, PTO tabs - Add Scribe API documentation annotations - Fix test configuration and E2E test infrastructure - Update tasks.md with completion status Backend Tests: 63 passed Frontend Unit: 32 passed E2E Tests: 134 passed, 20 fixme (capacity UI rendering) API Docs: Generated successfully
42 lines
1.0 KiB
PHP
42 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace Database\Factories;
|
|
|
|
use App\Models\TeamMember;
|
|
use App\Models\TeamMemberAvailability;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
use Illuminate\Support\Str;
|
|
|
|
/**
|
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\TeamMemberAvailability>
|
|
*/
|
|
class TeamMemberAvailabilityFactory extends Factory
|
|
{
|
|
protected $model = TeamMemberAvailability::class;
|
|
|
|
/**
|
|
* Define the model's default state.
|
|
*
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function definition(): array
|
|
{
|
|
return [
|
|
'id' => (string) Str::uuid(),
|
|
'team_member_id' => TeamMember::factory(),
|
|
'date' => now()->toDateString(),
|
|
'availability' => 1.0,
|
|
];
|
|
}
|
|
|
|
public function forDate(string $date): static
|
|
{
|
|
return $this->state(fn (array $attributes) => ['date' => $date]);
|
|
}
|
|
|
|
public function availability(float $value): static
|
|
{
|
|
return $this->state(fn (array $attributes) => ['availability' => $value]);
|
|
}
|
|
}
|