<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Auth extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->model('User_model');
        $this->load->library('session');
        $this->load->helper('url');
    }

    // =====================
    // HALAMAN LOGIN
    // =====================
    public function index()
    {
        // Jika sudah login → redirect ke dashboard
        if ($this->session->userdata('logged_in')) {
            redirect('dashboard');
        }

        $this->load->view('login');
    }

    // =====================
    // PROSES LOGIN
    // =====================
    public function login_process()
    {
        $nik_user = $this->input->post('nik_user', TRUE);
        $password = $this->input->post('password', TRUE);

        // ambil user lengkap + join unit
        $user = $this->User_model->get_user_with_unit($nik_user);

        // cek password manual
        $check = $this->User_model->login($nik_user, $password);
        if (!$check || !$user) {
            $this->session->set_flashdata('error', 'NIK atau Password salah.');
            redirect('auth');
        }

        // ===========================
        // SIMPAN SESSION TERMASUK AREA
        // ===========================
        $session_data = [
            'nik_user'  => $user->nik_user,
            'id_unit'   => $user->id_unit,
            'nama'      => $user->nama,
            'role'      => $user->role,
            'nama_unit' => $user->nama_unit ?: '-',
            'area'      => $user->area,
            'logged_in' => TRUE
        ];
        $this->session->set_userdata($session_data);

        // update last_active
        $this->User_model->set_last_active($user->nik_user);

        redirect('dashboard');
    }

    // =====================
    // LOGOUT
    // =====================
    public function logout()
    {
        $this->session->sess_destroy();
        redirect('auth');
    }
}
