<?php
// app/Controllers/AuthController.php
// Controller pro přihlášení a odhlášení uživatelů.

namespace App\Controllers;

use App\Core\Controller;
use App\Core\Database;
use App\Core\Auth;
use App\Models\UserRepository;

class AuthController extends Controller
{
    private UserRepository $users;

    public function __construct(Database $db)
    {
        parent::__construct($db);
        $this->users = new UserRepository($db);
    }

    /**
     * GET: zobrazí přihlašovací formulář.
     * POST: ověří heslo pomocí password_verify(), uloží uživatele do session a přesměruje.
     */
public function login()
{
    $error = null;
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $user = $this->users->findByUsername($_POST['username']);

        if ($user && password_verify($_POST['password'], $user->heslo)) {

            Auth::login($user->toArray());


            $redirect = $_SESSION['redirect_after_login'] ?? BASE_URL . '/dashboard/index';
            unset($_SESSION['redirect_after_login']);

            header("Location: $redirect");
            exit;
        }

        $error = 'Neplatné přihlašovací údaje';
    }

    $this->view->render('auth/login', compact('error'));
}


    // zruší session a přesměruje na přihlášení
    public function logout()
    {
        session_destroy();
        $this->redirect(BASE_URL . '/auth/login');
    }

    // akce pro atentizaci - přesměruje na přihlášení.
    public function index()
    {
        $this->login();
    }
}
?>