|string> */ public function rules(): array { $rules = [ 'title' => ['required'], 'publication_date' => ['required', 'date'], 'link' => ['required', 'url'], 'description' => ['nullable'], ]; if ($this->isMethod('post')) { $rules['proof'] = ['required', 'image', 'mimes:png,jpg,jpeg', 'max:2048']; } else { $rules['proof'] = ['nullable', 'image', 'mimes:png,jpg,jpeg', 'max:2048']; } return $rules; } public function messages(): array { return [ 'title.required' => 'Judul wajib diisi.', 'publication_date.required' => 'Tanggal publikasi wajib diisi.', 'publication_date.date' => 'Tanggal publikasi harus berupa format tanggal yang valid.', 'link.required' => 'Link wajib diisi.', 'link.url' => 'Format link tidak valid.', 'proof.required' => 'Bukti tayang wajib diunggah.', 'proof.image' => 'Bukti tayang harus berupa gambar.', 'proof.mimes' => 'Format gambar harus PNG, JPG, atau JPEG.', 'proof.max' => 'Ukuran gambar tidak boleh lebih dari 2MB.', ]; } }