<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Setting;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class SettingController extends Controller
{
    public function index()
    {
        $settings = Setting::orderBy('group')->orderBy('key')->get()->groupBy('group');
        return view('admin.settings.index', compact('settings'));
    }

    public function update(Request $request)
    {
        $request->validate([
            'settings' => 'required|array',
        ]);

        foreach ($request->settings as $key => $value) {
            Setting::set($key, $value);
        }

        if ($request->hasFile('logo')) {
            $request->validate(['logo' => 'image|mimes:jpg,jpeg,png,webp,svg|max:2048']);
            $path = $request->file('logo')->store('branding', 'public');
            Setting::set('site_logo', $path);
        }

        if ($request->hasFile('header_banner')) {
            $request->validate(['header_banner' => 'image|mimes:jpg,jpeg,png,webp|max:5120']);
            $path = $request->file('header_banner')->store('branding', 'public');
            Setting::set('header_banner', $path);
        }

        return redirect()->route('admin.settings.index')
            ->with('success', 'Settings saved successfully.');
    }
}
