<?php

namespace App\Controllers;

use App\Models\Mahasiswa;

class MahasiswaController extends \Core\Controller
{

    public function profile()
    {
        if (!isset($_SESSION['user'])) {
            header('Location: /');
            exit;
        }
    
        $nim = $_SESSION['user']['nim'] ?? null;
        if (!$nim) {
            die('NIM tidak ditemukan di session.');
        }
    
        $mahasiswaModel = new Mahasiswa();
        $mahasiswa = $mahasiswaModel->findByNim($nim);
    
        if (!$mahasiswa) {
            die('Data mahasiswa tidak ditemukan.');
        }
    
        // tambahkan: tampilkan nama kecamatan - kabupaten
        if (!empty($mahasiswa['kecamatan'])) {
            $wil = $mahasiswaModel->findWilayahById($mahasiswa['kecamatan']);
            if ($wil) {
                $mahasiswa['kecamatan_display'] = $wil['kecamatan'] . ' - ' . $wil['kabupaten'];
            } else {
                $mahasiswa['kecamatan_display'] = '';
            }
        } else {
            $mahasiswa['kecamatan_display'] = '';
        }
    
        $this->view('mahasiswa/profile', [
            'mahasiswa' => $mahasiswa
        ]);
    }

    public function updatePribadi()
    {
        if (!isset($_SESSION['user'])) {
            header('Location: /');
            exit;
        }
    
        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            $nim = $_SESSION['user']['nim'] ?? null;
            if (!$nim) die('NIM tidak ditemukan di session.');
    
            $data = [
                'nama'          => strtoupper($_POST['nama'] ?? ''),
                'nik'           => $_POST['nik'] ?? null,
                'tmpt_lahir'    => $_POST['tmpt_lahir'] ?? null,
                'tgl_lahir'     => $_POST['tgl_lahir'] ?? null,
                'agama'         => $_POST['agama'] ?? null,
                'jenis_kelamin' => $_POST['jenis_kelamin'] ?? null,
                'npwp'          => $_POST['npwp'] ?? null,
            ];
    
            $mahasiswaModel = new Mahasiswa();
            $mahasiswaModel->updateByNim($nim, $data);
    
            header("Location: /dashboard/mahasiswa-profile");
            exit;
        }
    }
    
    public function updateAlamat()
    {
        if (!isset($_SESSION['user'])) {
            header('Location: /');
            exit;
        }
    
        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            $nim = $_SESSION['user']['nim'] ?? null;
            if (!$nim) die('NIM tidak ditemukan di session.');
    
            $data = [
                'jalan'             => $_POST['jalan'] ?? null,
                'rt'                => $_POST['rt'] ?? null,
                'rw'                => $_POST['rw'] ?? null,
                'nama_dusun'        => $_POST['nama_dusun'] ?? null,
                'kelurahan'         => $_POST['kelurahan'] ?? null,
                'kecamatan'         => $_POST['kecamatan'] ?? null,
                'kode_pos'          => $_POST['kode_pos'] ?? null,
                'jenis_tinggal'     => $_POST['jenis_tinggal'] ?? null,
                'alat_transportasi' => $_POST['alat_transportasi'] ?? null,
                'telp_rumah'        => $_POST['telp_rumah'] ?? null,
                'no_hp'             => $_POST['no_hp'] ?? null,
                'email'             => $_POST['email'] ?? null,
                'terima_kps'        => $_POST['terima_kps'] ?? null,
                'no_kps'            => $_POST['no_kps'] ?? null,
            ];
    
            $mahasiswaModel = new Mahasiswa();
            $mahasiswaModel->updateByNim($nim, $data);
    
            header("Location: /dashboard/mahasiswa-profile");
            exit;
        }
    }

    public function updateOrtu()
    {
        if (!isset($_SESSION['user'])) {
            header('Location: /');
            exit;
        }
    
        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            $nim = $_SESSION['user']['nim'] ?? null;
    
            if (!$nim) {
                die('NIM tidak ditemukan di session.');
            }
    
            $data = [
                // Ayah
                'nik_ayah'         => $_POST['nik_ayah'] ?? null,
                'nama_ayah'        => strtoupper($_POST['nama_ayah'] ?? ''),
                'tgl_lahir_ayah'   => !empty($_POST['tgl_lahir_ayah']) ? $_POST['tgl_lahir_ayah'] : null,
                'pendidikan_ayah'  => $_POST['pendidikan_ayah'] ?? null,
                'pekerjaan_ayah'   => $_POST['pekerjaan_ayah'] ?? null,
                'penghasilan_ayah' => $_POST['penghasilan_ayah'] ?? null,
    
                // Ibu
                'nik_ibu'          => $_POST['nik_ibu'] ?? null,
                'nama_ibu'         => strtoupper($_POST['nama_ibu'] ?? ''),
                'tgl_lahir_ibu'    => !empty($_POST['tgl_lahir_ibu']) ? $_POST['tgl_lahir_ibu'] : null,
                'pendidikan_ibu'   => $_POST['pendidikan_ibu'] ?? null,
                'pekerjaan_ibu'    => $_POST['pekerjaan_ibu'] ?? null,
                'penghasilan_ibu'  => $_POST['penghasilan_ibu'] ?? null,
    
                // Wali
                'nama_wali'        => strtoupper($_POST['nama_wali'] ?? ''),
                'tgl_lahir_wali'   => !empty($_POST['tgl_lahir_wali']) ? $_POST['tgl_lahir_wali'] : null,
                'pendidikan_wali'  => $_POST['pendidikan_wali'] ?? null,
                'pekerjaan_wali'   => $_POST['pekerjaan_wali'] ?? null,
                'penghasilan_wali' => $_POST['penghasilan_wali'] ?? null,
            ];
    
            $mahasiswaModel = new Mahasiswa();
            $mahasiswaModel->updateByNim($nim, $data);
    
            header("Location: /dashboard/mahasiswa-profile");
            exit;
        }
    }

    public function searchKecamatan()
    {
        if (!isset($_GET['q'])) {
            echo json_encode([]);
            exit;
        }
    
        $keyword = $_GET['q'] ?? '';
        $mahasiswaModel = new Mahasiswa();
        $result = $mahasiswaModel->searchWilayah($keyword, 3); // 3 = level kecamatan
    
        header('Content-Type: application/json');
        echo json_encode($result);
        exit;
    }

}