<?php

namespace App\Controllers;
use App\Models\PatroliModel;

class Patroli extends BaseController
{
    public function index()
    {
        $data = ['title' => 'Input Patroli - KPH III'];
        return view('patroli', $data);
    }

    // Fungsi khusus untuk menerima kiriman data dari sistem Auto-Sync (AJAX)
    public function simpan_ajax()
    {
        $patroliModel = new PatroliModel();
        
        // Menerima data teks dan kode gambar dari HP
        $fotoBase64 = $this->request->getPost('foto_bukti');
        $namaFoto = null;

        // Jika staf melampirkan foto
        if (!empty($fotoBase64)) {
            // Memecah kode menjadi file gambar
            $pecah_foto = explode(";base64,", $fotoBase64);
            if (count($pecah_foto) == 2) {
                $gambar_asli = base64_decode($pecah_foto[1]);
                // Membuat nama foto acak berdasarkan waktu
                $namaFoto = time() . '_' . uniqid() . '.jpg';
                // Menyimpan file fisik ke folder
                file_put_contents('uploads/patroli/' . $namaFoto, $gambar_asli);
            }
        }
        
        $dataSimpan = [
            'nama_petugas' => $this->request->getPost('nama_petugas'),
            'lokasi_blok'  => $this->request->getPost('lokasi_blok'),
            'temuan'       => $this->request->getPost('temuan'),
            'foto_bukti'   => $namaFoto,
            'waktu_input'  => date('Y-m-d H:i:s')
        ];

        $patroliModel->save($dataSimpan);

        return $this->response->setJSON(['status' => 'sukses', 'pesan' => 'Laporan beserta foto berhasil disinkronisasi ke server!']);
    }
    // --- FUNGSI BARU: MELIHAT DATA LAPORAN (KHUSUS ADMIN/KEPALA) ---
    public function data_laporan()
    {
        // Kunci Pintu: Hanya Admin dan Kepala KPH yang boleh melihat ini
        if (session()->get('role') != 'Admin' && session()->get('role') != 'Kepala KPH') {
            echo "<script>alert('Akses Ditolak!'); window.location.href='".base_url('/')."';</script>";
            exit;
        }

        // Menggunakan fitur Query Builder untuk menggabungkan tabel Patroli dan Pegawai
        $db      = \Config\Database::connect();
        $builder = $db->table('tb_patroli');
        
        // Pilih semua data patroli, ditambah kolom no_hp dari tabel pegawai
        $builder->select('tb_patroli.*, tb_pegawai.no_hp');
        // Gabungkan berdasarkan nama petugas yang sama
        $builder->join('tb_pegawai', 'tb_pegawai.nama_pegawai = tb_patroli.nama_petugas', 'left');
        $builder->orderBy('tb_patroli.id_patroli', 'DESC');
        
        $data = [
            'title'   => 'Rekap Laporan Patroli - KPH III',
            'laporan' => $builder->get()->getResultArray()
        ];

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