<?php

class EscolaridadesController extends Controller
{
    private $escolaridadeModel;

    public function __construct()
    {
        if (!Sessao::estaLogado()) {
            URL::redirecionar('usuarios/login');
        }
        $this->escolaridadeModel = $this->model('Escolaridade');
    }

    public function index()
    {
        $dados = [
            'escolaridades' => $this->escolaridadeModel->lerEscolaridades()
        ];

        $this->view('layout', [
            'conteudo' => __DIR__ . '/../Views/escolaridades/index.php',
            'dados' => $dados
        ]);
    }

    public function cadastrar()
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            $formulario = filter_input_array(INPUT_POST, FILTER_SANITIZE_SPECIAL_CHARS);

            $dados = [
                'descricao'  => $formulario['descricao'] ?? '',
                'id_usuario' => $_SESSION['usuario_id'] ?? 1
            ];

            if ($this->escolaridadeModel->armazenar($dados)) {
                Sessao::mensagem('escolaridade', 'Escolaridade cadastrada com sucesso!');
                URL::redirecionar('escolaridades');
            } else {
                Sessao::mensagem('escolaridade', 'Erro ao cadastrar escolaridade', 'alert alert-danger');
            }
        }

        $this->view('layout', [
            'conteudo' => __DIR__ . '/../Views/escolaridades/cadastrar.php',
            'dados' => []
        ]);
    }

    public function editar($id)
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            $formulario = filter_input_array(INPUT_POST, FILTER_SANITIZE_SPECIAL_CHARS);

            $dados = [
                'id_escolaridade' => $id,
                'descricao'       => $formulario['descricao'] ?? ''
            ];

            if ($this->escolaridadeModel->atualizar($dados)) {
                Sessao::mensagem('escolaridade', 'Escolaridade atualizada com sucesso!');
                URL::redirecionar('escolaridades');
            } else {
                Sessao::mensagem('escolaridade', 'Erro ao atualizar escolaridade', 'alert alert-danger');
            }
        }

        $escolaridade = $this->escolaridadeModel->lerEscolaridadePorId($id);

        $this->view('layout', [
            'conteudo' => __DIR__ . '/../Views/escolaridades/editar.php',
            'dados' => ['escolaridade' => $escolaridade]
        ]);
    }

    public function excluir($id)
    {
        if ($this->escolaridadeModel->remover($id)) {
            Sessao::mensagem('escolaridade', 'Escolaridade removida com sucesso!');
        } else {
            Sessao::mensagem('escolaridade', 'Erro ao remover escolaridade', 'alert alert-danger');
        }
        URL::redirecionar('escolaridades');
    }
}
