<?php

namespace App\Http\Controllers\Admin;

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

class SertifikatController extends Controller
{
    // Menampilkan Tabel Daftar Sertifikat
    public function index()
    {
        $sertifikats = Sertifikat::latest()->get();
        return view('admin.sertifikat.index', compact('sertifikats'));
    }

    public function tentangkami()
    {
        $sertifikats = Sertifikat::all();
        
        // Sesuaikan path-nya: folder 'tentangkami', file 'index'
        return view('tentangkami.index', compact('sertifikats'));
    }

    // Menampilkan Form Tambah
    public function create()
    {
        return view('admin.sertifikat.create');
    }

    // Proses Simpan Data Baru
    public function store(Request $request)
    {
        $request->validate([
            'nama_sertifikat' => 'required|string|max:255',
            'nomor_sertifikat' => 'required|string|max:255',
            'gambar' => 'required|image|mimes:png,jpg,jpeg|max:2048'
        ]);

        $path = $request->file('gambar')->store('sertifikat', 'public');

        Sertifikat::create([
            'nama_sertifikat' => $request->nama_sertifikat,
            'nomor_sertifikat' => $request->nomor_sertifikat,
            'gambar' => $path
        ]);

        return redirect()->route('admin.sertifikat.index')->with('success', 'Sertifikat berhasil ditambahkan!');
    }

    // Menampilkan Form Edit
    public function edit(Sertifikat $sertifikat)
    {
        return view('admin.sertifikat.edit', compact('sertifikat'));
    }

    // Proses Update Data
    public function update(Request $request, $id)
    {
        $sertifikat = Sertifikat::findOrFail($id);

        // 1. Validasi (opsional tapi disarankan)
        $request->validate([
            'nama_sertifikat' => 'required',
            'nomor_sertifikat' => 'required',
            'gambar' => 'nullable|image|mimes:jpg,jpeg,png|max:2048',
        ]);

        // 2. Update data teks
        $sertifikat->nama_sertifikat = $request->nama_sertifikat;
        $sertifikat->nomor_sertifikat = $request->nomor_sertifikat;

        // 3. Cek apakah ada file gambar baru yang diunggah
        if ($request->hasFile('gambar')) {
            // Hapus gambar lama dari storage agar tidak memenuhi server (Opsional)
            if ($sertifikat->gambar) {
                Storage::disk('public')->delete($sertifikat->gambar);
            }

            // Simpan gambar baru
            $file = $request->file('gambar');
            $path = $file->store('sertifikats', 'public'); // Simpan di folder storage/app/public/sertifikats
            
            // Simpan path baru ke database
            $sertifikat->gambar = $path;
        }

        $sertifikat->save();

        return redirect()->route('admin.sertifikat.index')->with('success', 'Sertifikat berhasil diperbarui!');
    }

    public function destroy($id)
    {
        $sertifikat = Sertifikat::findOrFail($id);
        if ($sertifikat->gambar) {
            Storage::disk('public')->delete($sertifikat->gambar);
        }
        $sertifikat->delete();
        return redirect()->route('admin.sertifikat.index')->with('success', 'Sertifikat berhasil dihapus!');
    }
}