toby/app/Domain/Validation/Rules/VacationRequestRule.php
Adrian Hopek eadf984f30 #36 - wip
2022-02-07 08:05:35 +01:00

22 lines
570 B
PHP

<?php
declare(strict_types=1);
namespace Toby\Domain\Validation\Rules;
use Illuminate\Validation\ValidationException;
use Toby\Eloquent\Models\VacationRequest;
abstract class VacationRequestRule
{
public function check(VacationRequest $vacationRequest): void
{
if (! $this->passes($vacationRequest)) {
throw ValidationException::withMessages(["vacationRequest" => $this->errorMessage()]);
}
}
public abstract function passes(VacationRequest $vacationRequest): bool;
public abstract function errorMessage(): string;
}