Attainly/backend/app/Schedule/ScheduleRepository.php

35 lines
743 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 findIncompleteAssignmentsForUserDueOnOrBefore(
User $user,
DateTimeImmutable $date,
): array;
public function findAssignmentForUser(
int $id,
User $user,
): ?ScheduleAssignment;
public function updateAssignment(
ScheduleAssignment $assignment,
): ScheduleAssignment;
}