<?php

namespace App\Controllers;

use App\Models\HalamanModel;
use App\Models\StrukturModel;

class Profil extends BaseController
{
    /**
     * Menampilkan Halaman di sisi User (Frontend)
     */
    public function index($slug)
    {
        $model = new HalamanModel();
        
        // Cari data berdasarkan slug
        $halaman = $model->where('slug', $slug)->first();

        // Jika data tidak ada di database, tampilkan 404
        if (!$halaman) {
            throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound("Halaman dengan link '$slug' tidak ditemukan di database.");
        }

        $data = [
            'title'   => $halaman['judul_halaman'] . ' - SMKN 1 Sukalarang',
            'halaman' => $halaman
        ];

        // LOGIKA PEMILIHAN VIEW (TAMPILAN)
        // Jika slug-nya 'sejarah', arahkan ke file sejarah_detail.php
        if ($slug == 'sejarah') {
            return view('sejarah_detail', $data);
        }

        // Untuk slug lain (visi-misi, struktur, dll), gunakan profil_detail.php
        return view('profil_detail', $data);
    }

    /**
     * Menampilkan Halaman Edit di sisi Admin (Backend)
     */
    public function edit($slug)
    {
        // Cek login dulu untuk keamanan tambahan
        if (!session()->get('isLoggedIn')) {
            return redirect()->to(base_url('login'));
        }

        $model = new HalamanModel();
        $halaman = $model->where('slug', $slug)->first();

        if (!$halaman) {
            throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound();
        }

        $data = [
            'title'   => 'Edit ' . $halaman['judul_halaman'],
            'halaman' => $halaman
        ];

        // LOGIKA PEMILIHAN VIEW EDIT
        // Jika edit sejarah, arahkan ke edit_sejarah.php
        if ($slug == 'sejarah') {
            return view('admin/edit_sejarah', $data);
        }

        // Selain itu, gunakan edit_profil.php (untuk visi-misi dan lainnya)
        return view('admin/edit_profil', $data);
    }

    /**
     * Proses Simpan Perubahan ke Database
     */
    public function update()
    {
        // Cek login
        if (!session()->get('isLoggedIn')) {
            return redirect()->to(base_url('login'));
        }

        $model = new HalamanModel();
        
        $id = $this->request->getPost('id_halaman');
        $slug = $this->request->getPost('slug');

        // Mengambil semua inputan yang mungkin ada (baik dari form sejarah maupun profil biasa)
        $dataUpdate = [
            'judul_halaman'        => $this->request->getPost('judul_halaman'),
            'visi'                 => $this->request->getPost('visi'),
            'misi'                 => $this->request->getPost('misi'),
            'tujuan'               => $this->request->getPost('tujuan'),
            'sejarah_awal'         => $this->request->getPost('sejarah_awal'),
            'sejarah_perkembangan' => $this->request->getPost('sejarah_perkembangan'),
            'sejarah_prestasi'     => $this->request->getPost('sejarah_prestasi'),
            'konten'               => $this->request->getPost('konten'),
        ];

        // Eksekusi update berdasarkan ID
        $model->update($id, $dataUpdate);

        // Redirect kembali ke halaman yang tadi diedit dengan pesan sukses
        return redirect()->to(base_url('profil/' . $slug))->with('success', 'Data ' . $slug . ' berhasil diperbarui!');
    }
    public function struktur()
{
    $model = new \App\Models\StrukturModel();
    $data = [
        'title'    => 'Struktur Organisasi - SMKN 1 Sukalarang',
        'pimpinan' => $model->orderBy('urutan', 'ASC')->findAll() // Ambil semua data
    ];
    return view('profil/struktur', $data);
}
public function lsp()
{
    $model = new \App\Models\LspModel();
    $data = [
        'title' => 'LSP P1 - SMKN 1 Sukalarang',
        'lsp'   => $model->first()
    ];

    // Jika data di database kosong, buatkan data default agar tidak error
    if (!$data['lsp']) {
        throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound("Data LSP belum diisi di database.");
    }

    return view('lsp_detail', $data);
}
}