<?php session_start();

require_once 'conexao.php';
require_once '../gerador/avarias/avaria.php';

$avaria = new Avaria;

if($_POST['avaria']){
$idavaria = $_POST['avaria'];
}
// Função para remover acentos do nome do arquivo
function removerAcentos($string) {
    // Converte a string para UTF-8 (garantir que a string seja tratada corretamente)
    $string = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
    // Substitui caracteres especiais
    $string = strtr($string, 
        'ÀÁÂÃÄÅàáâãäåÇçÈÉÊËèéêëÌÍÎÏìíîïÑñÒÓÔÕÖØòóôõöøÙÚÛÜùúûüÝýÿ', 
        'AAAAAAaaaaaaCcEEEEeeeeIIIIiiiiNnOOOOOOooooooUUUUuuuuYyy');
    
    // Remove outros caracteres especiais, exceto letras, números, underscores e hífens
    return preg_replace('/[^A-Za-z0-9\-_\.]/', '', $string);
}

// Verifica se o arquivo foi enviado
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    $visao = $_POST['visao'];
    $usuario = $_SESSION['usuario'];
    $descricao = $_POST['descricao'];
    
    // Diretório onde os arquivos serão armazenados
    $diretorio = "../../../uploads/";

    // Cria o diretório caso não exista
    if (!is_dir($diretorio)) {
        mkdir($diretorio, 0755, true);
    }

    // Informações sobre o arquivo enviado
    $arquivo = $_FILES['file'];
    $nomeArquivoCompleto = basename($arquivo['name']);  // Nome completo do arquivo (com extensão)

    // Remove acentos do nome do arquivo
    $nomeArquivoSemAcentos = removerAcentos($nomeArquivoCompleto);

    // Extrai o nome do arquivo e a extensão separadamente
    $infoArquivo = pathinfo($nomeArquivoSemAcentos);
    $nomeArquivo = $infoArquivo['filename'];  // Nome sem a extensão
    $extensaoArquivo = $infoArquivo['extension'];  // Extensão do arquivo

    // Adiciona a data e hora ao nome do arquivo para evitar duplicatas
    $dataHoraAtual = date('Ymd_His');  // Exemplo: 20230905_123456
    $nomeArquivoComData = $nomeArquivo . '_' . $dataHoraAtual . '_'. $usuario . '.' . $extensaoArquivo;
    $caminhoArquivo = $diretorio . $nomeArquivoComData;

    // Verifica se houve erro no upload
    if ($arquivo['error'] !== UPLOAD_ERR_OK) {
        die("Erro no upload do arquivo.");
    }

    // Verifica o tamanho do arquivo (exemplo: max. 2MB)
    $tamanhoMaximo = 1 * 1024 * 1024 * 1024; // 1 GB
    if ($arquivo['size'] > $tamanhoMaximo) {
        die("Arquivo muito grande. Tamanho máximo permitido: 2MB.");
    }

    // Verifica o tipo de arquivo permitido (exemplo: apenas imagens)
    $extensoesProibidas = ['bat', 'exe'];


    if (in_array($arquivo['type'], $extensoesProibidas)) {
        die("Tipo de arquivo não permitido. Apenas JPG, PNG e GIF são aceitos.");
    }

    // Move o arquivo para o diretório de uploads
    if (move_uploaded_file($arquivo['tmp_name'], $caminhoArquivo)) {
                
    $cadastrar = "INSERT INTO `arquivos` (`nomearquivo`, `usuario`, `visibilidade`,`descricao`) VALUES ('$nomeArquivoComData', '$usuario', '$visao','$descricao');";
    mysqli_query($conexao, $cadastrar);
    $idImportacao = mysqli_insert_id($conexao);
    
  
    
    if($idavaria){

    $avaria->adicionarArquivo($conexao, $idavaria, $idImportacao);
    $avaria->atualizarStatusArquivo($conexao, $idavaria);

    header("Location: ../arquivosAvaria.php?codAvaria=$idavaria");  
    }else{

        header("Location: ../downloads.php");
    }
    
    
    } else {
        echo "Erro ao mover o arquivo.";
    }
} else {
    echo "Nenhum arquivo enviado.";
}
