orderBy('name') ->get(); return view('pages.feeds.index', compact('feeds')); } public function create(): View { return view('pages.feeds.create'); } public function store(Request $request): RedirectResponse { $validated = $request->validate([ 'name' => 'required|string|max:255', 'url' => 'required|url|unique:feeds,url', 'type' => 'required|in:website,rss', 'language_id' => 'required|exists:languages,id', 'description' => 'nullable|string', 'is_active' => 'boolean' ]); // Default is_active to true if not provided $validated['is_active'] = $validated['is_active'] ?? true; Feed::create($validated); // Check if there's a redirect_to parameter for onboarding flow $redirectTo = $request->input('redirect_to'); if ($redirectTo) { return redirect($redirectTo) ->with('success', 'Feed created successfully!'); } return redirect()->route('feeds.index') ->with('success', 'Feed created successfully!'); } public function show(Feed $feed): View { return view('pages.feeds.show', compact('feed')); } public function edit(Feed $feed): View { return view('pages.feeds.edit', compact('feed')); } public function update(Request $request, Feed $feed): RedirectResponse { $validated = $request->validate([ 'name' => 'required|string|max:255', 'url' => 'required|url|unique:feeds,url,' . $feed->id, 'type' => 'required|in:website,rss', 'language_id' => 'required|exists:languages,id', 'description' => 'nullable|string', 'is_active' => 'boolean' ]); // Default is_active to current value if not provided $validated['is_active'] = $validated['is_active'] ?? $feed->is_active; $feed->update($validated); return redirect()->route('feeds.index') ->with('success', 'Feed updated successfully!'); } public function destroy(Feed $feed): RedirectResponse { $feed->delete(); return redirect()->route('feeds.index') ->with('success', 'Feed deleted successfully!'); } }