35 lines
726 B
PHP
35 lines
726 B
PHP
<?php
|
|
|
|
namespace App\Schedule;
|
|
|
|
use App\User\User;
|
|
use DateTimeImmutable;
|
|
|
|
interface ScheduleRepository
|
|
{
|
|
public function create(CreateScheduleDto $dto): Schedule;
|
|
|
|
public function findForUser(int $id, User $user): ?Schedule;
|
|
|
|
/**
|
|
* @return list<Schedule>
|
|
*/
|
|
public function findAllForUser(User $user): array;
|
|
|
|
/**
|
|
* @return list<AssignmentForDate>
|
|
*/
|
|
public function findAssignmentsForUserOnDate(
|
|
User $user,
|
|
DateTimeImmutable $date,
|
|
): array;
|
|
|
|
public function findAssignmentForUser(
|
|
int $id,
|
|
User $user,
|
|
): ?ScheduleAssignment;
|
|
|
|
public function updateAssignment(
|
|
ScheduleAssignment $assignment,
|
|
): ScheduleAssignment;
|
|
}
|