<?php

namespace App\Controllers;

use App\Controllers\BaseController;
use App\Models\UsuarioModel;

class AdminAuth extends BaseController
{


    public function login()
    {
        if ($this->request->getMethod() === 'post') {
            $rules = [
                'nombreusuario'    => 'required',
                'password' => 'required',
            ];

            if (!$this->validate($rules)) {
                return redirect()->back()->with('msg', array(
                    'type' => 'danger',
                    'body' => 'Es necesario llenar todos los campos'
                ));
            }

            // obtener datos
            $data = $this->request->getPost();


            // Buscar usuario
            if (!$usuario = model(UsuarioModel::class)->findByUsername($data['nombreusuario'])) {
                return redirect()->back()->with('msg', array(
                    'type' => 'danger',
                    'body' => 'Revisa tus credenciales e inténtalo nuevamente'
                ));
            }

            // Verificar contraseña
            if (!password_verify($data['password'], $usuario['password'])) {
                return redirect()->back()->with('msg', array(
                    'type' => 'danger',
                    'body' => 'Revisa tus credenciales e inténtalo nuevamente'
                ));
            }

            // Inicializar sesión
            session()->set([
                'id' => $usuario['idusuario'],
                'usuario' => $usuario['nombreusuario'],
                'is_logged' => true,
            ]);

            return redirect()->route('admin_home')->with('msg', array(
                'type' => 'success',
                'body' => 'Inicio de sesión correcto'
            ));
        }
        return view('AdminAuth/login');
    }

    public function logout()
    {
        $session = session();
        $session->remove(['id', 'usuario', 'is_logged']);
        return redirect()->route('admin_login');
    }
}
