26 lines
777 B
PHP
26 lines
777 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
namespace App\Actions\PickupExceptions;
|
||
|
|
|
||
|
|
use App\Contracts\ActionInput;
|
||
|
|
use App\Models\PickupException;
|
||
|
|
use Domain\Enums\RepeatFrequency;
|
||
|
|
use Webmozart\Assert\Assert;
|
||
|
|
|
||
|
|
final readonly class UpdatePickupExceptionInput implements ActionInput
|
||
|
|
{
|
||
|
|
public function __construct(
|
||
|
|
public PickupException $pickupException,
|
||
|
|
public string $date,
|
||
|
|
public string $label,
|
||
|
|
public bool $repeatable,
|
||
|
|
public RepeatFrequency $repeat_frequency,
|
||
|
|
) {
|
||
|
|
Assert::regex($this->date, '/^\d{4}-\d{2}-\d{2}$/', 'Date must be in Y-m-d format.');
|
||
|
|
Assert::stringNotEmpty(trim($this->label), 'Label cannot be empty.');
|
||
|
|
Assert::maxLength(trim($this->label), 255, 'Label cannot exceed 255 characters.');
|
||
|
|
}
|
||
|
|
}
|