<?php
namespace App\Controllers;

class JamKerja extends BaseController {
    protected $db;

    public function __construct() {
        $this->db = \Config\Database::connect();
    }

    public function index() {
        $data['jadwal'] = $this->db->table('jam_kerja')->get()->getResultArray();
        return view('jam_kerja/index', $data);
    }

    public function simpan_grup() {
        $nama = $this->request->getPost('nama_jadwal');
        $tipe = $this->request->getPost('tipe_jadwal');
        
        $this->db->table('jam_kerja')->insert([
            'nama_jadwal' => $nama,
            'tipe_jadwal' => $tipe
        ]);

        return redirect()->to('jamkerja')->with('success', 'Grup jadwal berhasil dibuat.');
    }

    public function detail($id) {
        $data['grup'] = $this->db->table('jam_kerja')->where('id_jam_kerja', $id)->get()->getRowArray();
        $details = $this->db->table('jam_kerja_detail')->where('id_jam_kerja', $id)->get()->getResultArray();
        
        // Mapping agar mudah di view
        $mapped = [];
        foreach($details as $d) { $mapped[$d['hari']] = $d; }
        $data['details'] = $mapped;
        $data['hari_list'] = ['Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu', 'Minggu'];

        return view('jam_kerja/detail', $data);
    }

    public function simpan_detail() {
    $id_grup = $this->request->getPost('id_jam_kerja');
    $hari = $this->request->getPost('hari'); // Berisi array hari yang DICENTANG saja
    $jam_masuk = $this->request->getPost('jam_masuk');
    $jam_pulang = $this->request->getPost('jam_pulang');

    // 1. HAPUS SEMUA DATA LAMA untuk grup ini
    // Ini kunci agar hari yang tidak dicentang otomatis hilang dari DB
    $this->db->table('jam_kerja_detail')->where('id_jam_kerja', $id_grup)->delete();

    // 2. Jika ada hari yang dicentang, masukkan kembali yang baru
    if ($hari) {
        foreach($hari as $h) {
            $data_jam = [
                'id_jam_kerja' => $id_grup,
                'hari' => $h,
                'jam_masuk' => $jam_masuk[$h],
                'jam_pulang' => $jam_pulang[$h],
                'toleransi_menit' => 0
            ];
            
            // Langsung insert karena data lama sudah dibersihkan di atas
            $this->db->table('jam_kerja_detail')->insert($data_jam);
        }
    }

    return redirect()->to('jamkerja/detail/'.$id_grup)->with('success', 'Aturan hari kerja berhasil diperbarui.');
}
}