<?php

namespace App\Controllers\admin;

use App\Models\LoginModel;
use App\Controllers\BaseController;

class LoginController extends BaseController
{
    public function index()
    {
        // Cek apakah pengguna sudah login
        if (session()->get('isLoggedIn')) {
            // Jika sudah login, arahkan ke halaman dashboard
            return redirect()->to(base_url('dashboard'));
        }
        return view('admin/login/index');
    }

    public function authenticate()
    {
        helper(['form']);

        $session = session();
        $model = new LoginModel();

        $email = $this->request->getVar('email');
        $password = $this->request->getVar('password');
        $user = $model->getUserByEmail($email);

        if ($user) {
            if (password_verify($password, $user['password_admin'])) {
                // Jika kredensial valid, set session untuk menyimpan data pengguna
                $session->set([
                    'id_admin' => $user['id_admin'],
                    'nama_admin' => $user['nama_admin'],
                    'email_admin' => $user['email_admin'],
                    'isLoggedIn' => true
                ]);
                return redirect()->to(base_url('dashboard')); // Arahkan ke dashboard
            } else {
                // Jika kredensial tidak valid, set flashdata untuk pesan kesalahan
                $session->setFlashdata('error', 'Email atau password salah');
                return redirect()->to(base_url('login'))->withInput(); // Arahkan kembali ke halaman login dengan input yang dikembalikan
            }
        } else {
            // Jika pengguna tidak ditemukan, set flashdata untuk pesan kesalahan
            $session->setFlashdata('error', 'User tidak di temukan');
            return redirect()->to(base_url('login'))->withInput(); // Arahkan kembali ke halaman login dengan input yang dikembalikan
        }
    }

    public function logout()
    {
        $session = session();
        $session->destroy(); // Hapus session
        return redirect()->to(base_url('login')); // Arahkan kembali ke halaman login
    }
}