<?php

// Incluir el archivo que contiene la función de redimensionar imagen
include 'funcionredimension.php';

// Datos de conexión a la base de datos
$servername = "localhost";
$username = "ndconsulta";
$password = "Nitro2021";
$dbname = "db_compranet";

// Ruta de guardado de las imágenes
$rutaGuardado = "E:/www/sistema.compranet.com.co/public/images/201/ST/";
$rutaGuardadoDB = "J:/images/201/ST/";

// Conexión a la base de datos
$conn = new mysqli($servername, $username, $password, $dbname);

// Verificar la conexión
if ($conn->connect_error) {
    die("Conexión fallida: " . $conn->connect_error);
}

// Función para limpiar y ajustar el nombre de la imagen
function limpiarNombreImagen($nombreImagen) {
    // Limpiar caracteres especiales en el nombre de la imagen
    $nombreImagen = preg_replace('/[^A-Za-z0-9.\-_]/', '_', $nombreImagen);
    // Reemplazar _.jpg o _jpg por .jpg
    $nombreImagen = str_replace(['_.jpg', '_jpg'], '.jpg', $nombreImagen);
    return $nombreImagen;
}

// Consulta para obtener los datos
$sql = "SELECT
            vw_sin_imagen_variacion.idVariacion,
            vw_sin_imagen_variacion.idProducto,
            db_inventarios_compranet.stocksur_variantes.detail_picture_original
        FROM
            vw_sin_imagen_variacion
        INNER JOIN db_inventarios_compranet.stocksur_variantes ON
            vw_sin_imagen_variacion.referenciaProveedor = CONCAT(db_inventarios_compranet.stocksur_variantes.code, '-', db_inventarios_compranet.stocksur_variantes.color) WHERE vw_sin_imagen_variacion.idProveedor=3";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // Procesar cada fila de resultado
    while ($row = $result->fetch_assoc()) {
        $idVariacion = $row["idVariacion"];
        $idProducto = $row["idProducto"];
        $imageURL = $row["detail_picture_original"];

        // Obtener el nombre de la imagen desde la URL
        $nombreImagen = basename(parse_url($imageURL, PHP_URL_PATH));

        // Eliminar caracteres especiales y el texto después de "?"
        $nombreImagen = limpiarNombreImagen($nombreImagen);
        $nombreImagen = strtok($nombreImagen, '?');

        // Ruta completa para guardar la imagen
        $rutaCompleta = $rutaGuardado . $nombreImagen;

        // Descargar y redimensionar la imagen
        $imagenRedimensionada = redimensionarImagen($imageURL, 1200, 1200);
        if ($imagenRedimensionada !== false) {
            file_put_contents($rutaCompleta, $imagenRedimensionada);

            // Verificar que la imagen no sea de 0 KB
            if (filesize($rutaCompleta) > 0) {
                // Insertar en tb_imagenes_principal
                $sqlPrincipal = $conn->prepare("INSERT INTO tb_imagenes_principal (idProducto, linkImagen, esPrincipal, idEstado) VALUES (?, ?, 0, 1)");
                $linkImagenPrincipal = $rutaGuardadoDB . $nombreImagen;
                $sqlPrincipal->bind_param("is", $idProducto, $linkImagenPrincipal);
                $sqlPrincipal->execute();
                $sqlPrincipal->close();

                // Insertar en tb_imagenes_variantes
                $sqlVariantes = $conn->prepare("INSERT INTO tb_imagenes_variantes (idVariante, idEstado, linkImagen, esPrincipal, pos) VALUES (?, 1, ?, 1, 1)");
                $linkImagenVariantes = $rutaGuardadoDB . $nombreImagen;
                $sqlVariantes->bind_param("is", $idVariacion, $linkImagenVariantes);
                $sqlVariantes->execute();
                $sqlVariantes->close();
            } else {
                // Eliminar el archivo de 0 KB
                unlink($rutaCompleta);
            }
        }
    }
} else {
    echo "No se encontraron registros.";
}

$conn->close();
?>
