paginate(10); return view('admin.subjects.index', compact('subjects')); } public function create() { return view('admin.subjects.create'); } public function store(Request $request) { $request->validate([ 'name' => 'required|string|max:255|unique:contact_subjects', ]); ContactSubject::create($request->all()); return redirect()->route('admin.subjects.index')->with('success', 'Assunto criado com sucesso.'); } public function edit(ContactSubject $subject) { return view('admin.subjects.edit', compact('subject')); } public function update(Request $request, ContactSubject $subject) { $request->validate([ 'name' => 'required|string|max:255|unique:contact_subjects,name,' . $subject->id, 'active' => 'required|boolean', ]); $subject->update($request->all()); return redirect()->route('admin.subjects.index')->with('success', 'Assunto atualizado com sucesso.'); } public function destroy(ContactSubject $subject) { if ($subject->messages()->count() > 0) { return redirect()->route('admin.subjects.index')->with('error', 'Não é possível excluir um assunto que possui mensagens vinculadas.'); } $subject->delete(); return redirect()->route('admin.subjects.index')->with('success', 'Assunto excluído com sucesso.'); } }