add dated assignment endpoint

This commit is contained in:
Yisroel Baum 2026-08-15 21:50:37 +03:00
parent 6afe7864be
commit 483ca6fc1d
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
9 changed files with 252 additions and 8 deletions

View file

@ -3,10 +3,12 @@
namespace Tests\Fakes;
use App\Schedule\CreateScheduleDto;
use App\Schedule\AssignmentForDate;
use App\Schedule\Schedule;
use App\Schedule\ScheduleAssignment;
use App\Schedule\ScheduleRepository;
use App\User\User;
use DateTimeImmutable;
class FakeScheduleRepository implements ScheduleRepository
{
@ -72,6 +74,31 @@ class FakeScheduleRepository implements ScheduleRepository
}, array_values($schedules));
}
public function findAssignmentsForUserOnDate(
User $user,
DateTimeImmutable $date,
): array {
$assignments = [];
foreach ($this->findAllForUser($user) as $schedule) {
foreach ($schedule->getAssignments() as $assignment) {
if ($assignment->getScheduledDate()->format('Y-m-d')
!== $date->format('Y-m-d')
) {
continue;
}
$assignments[] = new AssignmentForDate(
scheduleId: $schedule->getId(),
setName: $schedule->getSetName(),
assignment: $assignment,
);
}
}
return $assignments;
}
private function copy(Schedule $schedule): Schedule
{
$assignments = array_map(