|string> */ public function rules(): array { return [ 'headline' => ['required'], 'media_ids' => ['required', 'array'], 'media_ids.*' => ['required', 'exists:media,id'], 'content' => ['required'], ]; } public function messages(): array { return [ 'headline.required' => 'Judul pengumuman harus diisi.', 'media_ids.required' => 'Pilih setidaknya satu media untuk pengumuman.', 'media_ids.array' => 'Media harus dalam format array.', 'media_ids.*.required' => 'Media yang dipilih tidak boleh kosong.', 'media_ids.*.exists' => 'Salah satu media yang dipilih tidak ditemukan.', 'content.required' => 'Konten pengumuman harus diisi.', ]; } }