<?php

namespace App\Contracts;

use App\DTO\ShiftDTO;
use App\Models\Shift;
use Illuminate\Database\Eloquent\Collection;

interface ShiftRepositoryInterface
{
    public function getAll(): Collection;
    public function findById(int $id): ?Shift;
    public function create(ShiftDTO $shiftDTO): Shift;
    public function update(int $id, ShiftDTO $shiftDTO): Shift;
    public function delete(int $id): bool;
    public function applyShiftToRole(int $shiftId, int $roleId): int;
}
