<?php
require_once("../functions.php");
if (comprobar_override(str_replace($_SERVER['DOCUMENT_ROOT'], '', __FILE__))) exit;
$pag = basename($_SERVER['PHP_SELF']);
gen_plantilla(true, $pag, false, false, '', false, false);


/*******************************************************************************
 *                                [Parámetros]                                 *
 *******************************************************************************/

$uploadDir = $_SERVER['DOCUMENT_ROOT'] . SITIO_CARPETA . '/assets/img/';

if (isset($_FILES['medio_fichador']) && $_FILES['medio_fichador']['error'] == UPLOAD_ERR_OK) {
    $tmpName = $_FILES['medio_fichador']['tmp_name'];

    // Nombre original (sin ruta)
    $originalName = basename($_FILES['medio_fichador']['name']);

    // Separa base y extensión
    $ext = strtolower(pathinfo($originalName, PATHINFO_EXTENSION));

    // Validar extensión permitida
    $extensiones_permitidas = ['png', 'webp', 'svg'];
    if (!in_array($ext, $extensiones_permitidas)) {
        header("Location:" . SITIO_CARPETA . "/views/ajustes?tipo=error&mensaje=Formato no permitido. Use PNG, WebP o SVG");
        exit;
    }

    $fileName = 'customlogo';
    $tipo = $ext ? ('.' . $ext) : '';

    // Eliminar cualquier customlogo.* previo (para evitar duplicados con extensión diferente)
    foreach ($extensiones_permitidas as $e) {
        $archivoAnterior = $uploadDir . $fileName . '.' . $e;
        if (file_exists($archivoAnterior)) {
            unlink($archivoAnterior);
        }
    }
} else {
    crear_log(
        'error',
        'Error subir archivo',
        $pag,
        'Error al subir el archivo del logo del fichador'
    );
    header("Location:" . SITIO_CARPETA . "/views/ajustes?tipo=error&mensaje=No se ha seleccionado ningún archivo");
    exit;
}

if (!file_exists($uploadDir)) {
    mkdir($uploadDir, 0755, true);
}

if (!move_uploaded_file($tmpName, $uploadDir . $fileName . $tipo)) {
    crear_log(
        'error',
        'Error subir archivo',
        $pag,
        'Error al subir el archivo a la siguiente ruta: ' . $uploadDir . $fileName . $tipo
    );
    header("Location:" . SITIO_CARPETA . "/views/ajustes?tipo=error&mensaje=No se ha podido subir el archivo");
} else {
    // Guardar la extensión en configuraciones para saber qué archivo cargar
    if (empty(consulta('SELECT * FROM configuraciones WHERE meta=?;', ['fichador_logo_ext'], true))) {
        consulta('INSERT INTO `configuraciones`(`meta`, `valor`) VALUES (?, ?);', ['fichador_logo_ext', $ext], false);
    } else {
        set_config('fichador_logo_ext', $ext);
    }
    crear_log(
        'info',
        'Logo fichador actualizado',
        $pag,
        'Logo fichador actualizado con la siguiente ruta: ' . $uploadDir . $fileName . $tipo
    );
    header("Location:" . SITIO_CARPETA . "/views/ajustes?tipo=correcto&mensaje=Logo del fichador subido correctamente");
}
