<?php

namespace App\Controllers\Admin;

use App\Controllers\BaseController;
use App\Models\SliderModel;

class Slider extends BaseController
{
    protected $sliderModel;

    public function __construct()
    {
        $this->sliderModel = new SliderModel();
    }

    public function index()
    {
        $data = [
            'title'  => 'Manajemen Slider Beranda',
            'slider' => $this->sliderModel->findAll()
        ];
        return view('admin/slider/index', $data);
    }

    public function tambah()
    {
        $data = ['title' => 'Tambah Slider Baru'];
        return view('admin/slider/tambah', $data);
    }

    public function simpan()
{
    // 1. Ambil file dari request
    $fileFoto = $this->request->getFile('foto');

    // 2. Validasi file (Pastikan file ada dan tidak error)
    if ($fileFoto && $fileFoto->isValid() && !$fileFoto->hasMoved()) {
        
        // 3. Tentukan folder (Gunakan path relatif yang lebih disukai CI4)
        $folderTujuan = 'assets/img/slider/';
        
        // 4. Buat nama file unik
        $namaFoto = $fileFoto->getRandomName();

        // 5. Coba pindahkan file
        // Jika gagal di sini, biasanya karena folder tidak ada atau tidak punya izin tulis (777)
        if ($fileFoto->move($folderTujuan, $namaFoto)) {
            
            // 6. JIKA BERHASIL PINDAH, BARU SIMPAN KE DATABASE
            // Kita panggil model secara langsung di sini agar pasti terbaca
            $model = new \App\Models\SliderModel();
            
            $dataSimpan = [
                'foto'      => $namaFoto,
                'judul'     => $this->request->getPost('judul'),
                'deskripsi' => $this->request->getPost('deskripsi'),
            ];

            $model->save($dataSimpan);

            return redirect()->to(base_url('admin/slider'))->with('success', 'Berhasil! Foto tersimpan.');
        } else {
            // Ini akan muncul jika folder 'assets/img/slider' tidak bisa ditulisi
            return "Gagal memindahkan file. Cek izin akses folder (chmod 777).";
        }
    } else {
        // Ini akan muncul jika file tidak dipilih atau ukuran terlalu besar
        return "File tidak valid. Pastikan Anda sudah memilih file foto.";
    }
}
    public function hapus($id)
    {
        $data = $this->sliderModel->find($id);
        
        // Hapus file fisik di folder assets agar penyimpanan tidak penuh
        if (file_exists('assets/img/slider/' . $data['foto'])) {
            unlink('assets/img/slider/' . $data['foto']);
        }

        $this->sliderModel->delete($id);
        return redirect()->to(base_url('admin/slider'))->with('success', 'Slider berhasil dihapus!');
    }
}