23 lines
583 B
PHP
23 lines
583 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
namespace App\Actions\Common;
|
||
|
|
|
||
|
|
use App\Contracts\ActionInput;
|
||
|
|
use App\Interfaces\ModelWithOrder;
|
||
|
|
use Illuminate\Database\Eloquent\Model;
|
||
|
|
use Webmozart\Assert\Assert;
|
||
|
|
|
||
|
|
final readonly class ChangeModelOrderPositionInput implements ActionInput
|
||
|
|
{
|
||
|
|
public function __construct(
|
||
|
|
public Model & ModelWithOrder $model,
|
||
|
|
public int $targetOrder,
|
||
|
|
) {
|
||
|
|
Assert::isInstanceOf($this->model, Model::class);
|
||
|
|
Assert::isInstanceOf($this->model, ModelWithOrder::class);
|
||
|
|
Assert::greaterThanEq($this->targetOrder, 1);
|
||
|
|
}
|
||
|
|
}
|