authService->check(); } /** @return array */ public function rules(): array { return [ 'action' => ['required', new Enum(MassActionType::class)], 'models' => ['required', 'array', 'min:1'], 'models.*' => ['required', 'string', 'min:1'], ]; } public function getMassActionType(): MassActionType { return MassActionType::from($this->string('action')->value()); } /** * @param class-string<\Illuminate\Database\Eloquent\Model> $modelClass */ public function toExecuteMassActionInput(string $modelClass): ExecuteMassActionInput { return new ExecuteMassActionInput( modelClass: $modelClass, action: $this->getMassActionType(), modelKeyList: array_values(array_filter($this->array('models'), 'is_string')), ); } }