<?php
include("db.php");

$nombre_archivo = "productos.csv";
$archivo = fopen($nombre_archivo, "r");

if ($archivo !== FALSE) {
    
    fgetcsv($archivo, 1000, ";");

    $importados = 0;
    $errores = 0;
    $fila = 1; 

    while (($datos = fgetcsv($archivo, 1000, ";")) !== FALSE) {
        $fila++;
        
        //CAPTURA DE DATOS
        $id        = trim($datos[0]);
        $nombre    = trim($datos[1]);
        $precio    = trim($datos[2]);
        $categoria = trim($datos[3]);
        $imagen    = trim($datos[4]);
        $activo    = isset($datos[5]) ? trim($datos[5]) : 1;
        $stock     = (isset($datos[6]) && trim($datos[6]) !== '') ? trim($datos[6]) : 0;

        // --- VALIDACIONES DE DATOS ---
        
        if (empty($nombre) || empty($categoria)) {
            echo "Error en fila $fila: El nombre o la categoría están vacíos.<br>";
            $errores++;
            continue; 
        }

        if (!is_numeric($precio) || (float)$precio <= 0) {
            echo "Error en fila $fila: El precio '$precio' no es un número válido.<br>";
            $errores++;
            continue;
        }

        if (!is_numeric($stock) || (int)$stock < 0) {
            echo "Error en fila $fila: El stock '$stock' debe ser un número entero mayor o igual a cero.<br>";
            $errores++;
            continue;
        }
        $stock = (int)$stock;

        $stmt = $conexion->prepare("
            INSERT INTO productos (id, nombre, precio, categoria, imagen, activo, stock) 
            VALUES (?, ?, ?, ?, ?, ?, ?)
            ON DUPLICATE KEY UPDATE 
                nombre = VALUES(nombre), 
                precio = VALUES(precio), 
                categoria = VALUES(categoria), 
                imagen = VALUES(imagen),
                activo = VALUES(activo),
                stock = VALUES(stock)
        ");

        $stmt->bind_param("isdssii", $id, $nombre, $precio, $categoria, $imagen, $activo, $stock);
        
        if ($stmt->execute()) {
            $importados++;
        } else {
            echo "Error de BD en fila $fila: " . $conexion->error . "<br>";
            $errores++;
        }
    }

    fclose($archivo);
    
    echo "<hr>";
    echo "<h3>Resumen del proceso:</h3>";
    echo "Productos procesados (Nuevos o Actualizados): $importados <br>";
    if ($errores > 0) {
        echo "Filas con errores: $errores <br>";
    }
    echo "<br><a href='productos.php'>Ver catálogo en la web</a>";

} else {
    echo "No se pudo encontrar el archivo $nombre_archivo";
}
?>