<?php

namespace App\Http\Controllers;

use App\Models\UsulanDiklat;
use App\Models\Direktori;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class DirektoriController extends Controller
{
    // Display paginated usulan diklat data
    public function index(Request $request)
    {
        // Fetch usulan diklat data with pagination
        $search = $request->input('search');
        $usulan_laporan_diklat = Direktori::when($search, function ($query, $search) {
            return $query->where('nama_penulis', 'like', "%{$search}%");
        })->paginate(10);
        return view('umum3.direktori', compact('usulan_laporan_diklat'));
    }

    // Show form to create new usulan diklat
    public function create()
    {
        return view('umum3.createdirektori');
    }

    // Store new usulan diklat data
    public function store(Request $request)
    {
        // Validate input and files
        $request->validate([
            'nip' => 'required',
            'nama_penulis' => 'required',
            'jabatan' => 'required',
            'golongan' => 'required',
            'unit_kerja' => 'required',
            'jenis_pelatihan' => 'required',
            'nama_pelatihan' => 'required',
            'tahun_pelatihan' => 'required|numeric',
            'pelaksanaan' => 'required',
            'mode_pelatihan' => 'required',
            'waktu_pelaksanaan' => 'required',
            'tempat_pelaksanaan'=> 'required',
            //'biaya_per_orang' => 'nullable|numeric',
            'judul_laporan' => 'required',
            'latar_belakang' => 'required',
            //'link_katalog' => 'nullable|url',
            'unggah_laporan' => 'nullable|mimes:pdf,doc,docx|max:2048',
        ]);

        // Create a new instance of UsulanDiklat model
        $usulan_laporan_diklat = new Direktori();
        $usulan_laporan_diklat->nip = $request->nip;
        $usulan_laporan_diklat->nama_penulis = $request->nama_penulis;
        $usulan_laporan_diklat->jabatan = $request->jabatan;
        $usulan_laporan_diklat->golongan = $request->golongan;
        $usulan_laporan_diklat->unit_kerja = $request->unit_kerja;
        $usulan_laporan_diklat->jenis_pelatihan = $request->jenis_pelatihan;
        $usulan_laporan_diklat->nama_pelatihan = $request->nama_pelatihan;
        $usulan_laporan_diklat->tahun_pelatihan = $request->tahun_pelatihan;
        $usulan_laporan_diklat->pelaksanaan = $request->pelaksanaan;
        $usulan_laporan_diklat->mode_pelatihan = $request->mode_pelatihan;
        $usulan_laporan_diklat->waktu_pelaksanaan = $request->waktu_pelaksanaan;
        $usulan_laporan_diklat->tempat_pelaksanaan = $request->tempat_pelaksanaan;
        //$usulan_laporan_diklat->biaya_per_orang = $request->biaya_per_orang;
        $usulan_laporan_diklat->judul_laporan = $request->judul_laporan;
        $usulan_laporan_diklat->latar_belakang = $request->latar_belakang;
        //$usulan_laporan_diklat->link_katalog = $request->link_katalog;

        

        // Process file upload for report (PDF, DOC, DOCX)
        if ($request->hasFile('unggah_laporan')) {
            $file = $request->file('unggah_laporan');
            $fileName = time() . '_' . $file->getClientOriginalName();
            $file->move(public_path('uploads/reports'), $fileName);
            $usulan_laporan_diklat->unggah_laporan = 'uploads/reports/' . $fileName;
        }

        // Save data to the database
        $usulan_laporan_diklat->save();

        // Redirect with success message
        return redirect()->route('umum3.direktori')->with('success', 'Usulan laporan berhasil ditambahkan.');
    }


    public function view($id)
    {
        // Retrieve the Diklat entry by its ID
        $usulan_laporan_diklat = Direktori::findOrFail($id);

        // Pass the Diklat data to the viewdiklat view
        return view('umum3.viewdirektori', compact('usulan_laporan_diklat'));
    }   
    
}