isMethod('get')) { return []; } return [ 'name' => 'required|string', 'content' => 'required|string', 'image' => 'required|image', 'language' => 'required|string', 'topped' => 'nullable|boolean', 'type' => 'required|string|in:news,article,sales,media', 'position' => 'nullable|integer' ]; } public function getName():string { return (string) $this->get('name'); } public function getBody():string { return (string) $this->get('content'); } public function getLanguage():string { return (string) $this->get('language'); } public function getTopped(): bool { return (bool) $this->get('topped'); } public function getType(): string { return (string) $this->get('type'); } public function getPosition(): int|null { if ($this->position) { return $this->get('position'); } else { if (Post::count() === 0) { return 0; } return Post::max('position') + 1; } } }