/home2/mshostin/carnival.ms-hostingladz.com/app/Http/Controllers/InvestorController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Investor;

class InvestorController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $investors = Investor::all();
        return view('dashboard.admin.investors.index', compact('investors'));
    }

    public function create()
    {
        return view('dashboard.admin.investors.create');
    }

    public function store(Request $request)
    {
        $request->validate([
            'icons.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
            'status' => 'required|integer|in:0,1',
        ]);

        if($request->hasfile('icons')) {
            foreach($request->file('icons') as $icon) {
                $iconName = time().rand(1,100).'.'.$icon->extension();
                $icon->move(public_path('images'), $iconName);

                Investor::create([
                    'icon' => $iconName,
                    'status' => $request->status,
                ]);
            }
        }

        return redirect()->route('investors.index')
                         ->with('success', 'Icons added successfully.');
    }

    public function show(Investor $investor)
    {
        return view('dashboard.admin.investors.show', compact('investor'));
    }

    public function edit(Investor $investor)
    {
        return view('dashboard.admin.investors.edit', compact('investor'));
    }

    public function update(Request $request, Investor $investor)
    {
        $request->validate([
            'icon' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
            'status' => 'required|integer|in:0,1',
        ]);

        if ($request->hasFile('icon')) {
            $iconName = time().'.'.$request->icon->extension();
            $request->icon->move(public_path('images'), $iconName);
            $investor->update([
                'icon' => $iconName,
                'status' => $request->status,
            ]);
        } else {
            $investor->update($request->only(['status']));
        }

        return redirect()->route('investors.index')
                         ->with('success', 'Icon updated successfully.');
    }

    public function destroy(Investor $investor)
    {
        if ($investor->icon) {
            unlink(public_path('images/'.$investor->icon));
        }
        
        $investor->delete();

        return redirect()->route('investors.index')
                         ->with('success', 'Icon deleted successfully.');
    }
}