latest()->get(); return Inertia::render('campaigns/index', [ 'campaigns' => $campaigns, ]); } public function create() { return Inertia::render('campaigns/create', [ 'clients' => Client::all(), 'consultants' => User::all(), 'campaignManagers' => User::all() ]); } public function store(Request $request) { // $request->validate([ // 'client_id' => 'required|exists:clients,id', // 'consultant_id' => 'required|exists:users,id', // 'campaign_manager_id' => 'required|exists:campaign_managers,id', // 'industry_id' => 'required|exists:industries,id', // 'campaign_name' => 'required|string|max:255', // 'landing_page' => 'nullable|url|max:255', // 'status' => 'required|in:active,paused,ended,draft', // ]); Campaign::create($request->all()); return redirect()->route('campaigns.index')->with('success', 'Campaign created successfully.'); } public function edit(Campaign $campaign) { return Inertia::render('campaigns/edit', [ 'campaign' => $campaign->load(['client', 'consultant', 'campaignManager', 'industry']), 'clients' => Client::all(), 'consultants' => User::all(), 'campaignManagers' => User::all(), ]); } public function update(Request $request, Campaign $campaign) { // $request->validate([ // 'client_id' => 'required|exists:clients,id', // 'consultant_id' => 'required|exists:users,id', // 'campaign_manager_id' => 'required|exists:campaign_managers,id', // 'industry_id' => 'required|exists:industries,id', // 'campaign_name' => 'required|string|max:255', // 'landing_page' => 'nullable|url|max:255', // 'status' => 'required|in:active,paused,ended,draft', // ]); $campaign->update($request->all()); return redirect()->route('campaigns.index')->with('success', 'Campaign updated successfully.'); } public function destroy(Campaign $campaign) { $campaign->delete(); return redirect()->route('campaigns.index')->with('success', 'Campaign deleted successfully.'); } public function show(Campaign $campaign) { return Inertia::render('campaigns/show', [ 'campaign' => $campaign->load(['client', 'consultant', 'campaignManager', 'industry', 'finances', 'reports', 'remarks']), ]); } }