<?php
use Intervention\Image\ImageManagerStatic as Image;

try {
    // Criar uma instância da classe Sobre
    $sobreDao = new \Dao\Sobre();

    // Definir as propriedades do objeto Sobre com base nos dados do formulário
    $sobreDao->id = filter_input(INPUT_POST, 'id');
    $sobreDao->titulo = $conecta->real_escape_string(filter_input(INPUT_POST, 'titulo'));
    $sobreDao->texto = addslashes(filter_input(INPUT_POST, 'texto'));
    $sobreDao->ordem = \Dao\Funcoes::getUltimoId($conecta, 'sobre', 'ordem');
    $sobreDao->slug = \Dao\Funcoes::removeCharacters($sobreDao->titulo, '-');
    $sobreDao->data_cadastro = date('Y-m-d H:i:s');
    $sobreDao->usuario_cadastrou = $_SESSION['id_usuario'];
    $sobreDao->data_alteracao = date('Y-m-d H:i:s');
    $sobreDao->usuario_alterou = $_SESSION['id_usuario'];

    // Manipulação de imagem
    if (!empty($_FILES['image']['name'])) {
        // Excluir imagem existente, se houver
        if ($sobreDao->image != '' && file_exists($pasta . $sobreDao->image)) {
            unlink($pasta . $sobreDao->image);
        }

        // Gerar um nome de arquivo aleatório
        $sobreDao->image = \Dao\Funcoes::randFileName($_FILES['image']['name']);

        // Redimensionar e salvar a nova imagem
        $image = Image::make($_FILES['image']['tmp_name'])->resize(800, null, function ($constraint) {
            $constraint->aspectRatio();
        });

        $image->save($pasta . $sobreDao->image, 85);
    }

    // Obter o texto com base no ID fornecido
    $sobreDao->getTextoPorId($conecta, $sobreDao->id);

    // Tentar salvar os dados e obter o resultado
    $res = json_decode($sobreDao->salvar($conecta));

    // Exibir mensagem com base no resultado
    if ($res->data == 'Success') {
        \Dao\Funcoes::displayMessage('Confirmação', $res->message, 'sobre.php');
    } else {
        \Dao\Funcoes::displayMessage('Erro', $res->message, 'sobre.php', 'red');
    }
} catch (\Exception $e) {
    // Exibir detalhes da exceção (mensagem de erro)
    echo 'Erro: ' . $e->getMessage();
}
