producto; Log::info("Variante creada para producto", [ 'variante_id' => $variant->id, 'producto_id' => $producto->id, 'producto_nombre' => $producto->nombre, 'stock_producto_anterior' => $producto->stock ]); // Si este producto ahora tiene variantes y tenía stock directo, limpiar el stock principal if ($producto->stock > 0) { // Obtener el stock anterior para potencial transferencia $stockAnterior = $producto->stock; // Limpiar el stock del producto principal $producto->update(['stock' => 0]); Log::info("Stock del producto principal limpiado debido a creación de variantes", [ 'producto_id' => $producto->id, 'stock_anterior' => $stockAnterior, 'stock_nuevo' => 0 ]); // Opcionalmente, podrías transferir el stock anterior a la nueva variante // o a una bodega específica, pero por ahora solo lo eliminamos } } /** * Handle the ProductVariant "deleting" event. */ public function deleting(ProductVariant $variant): void { $producto = $variant->producto; // Verificar si esta es la última variante $variantesRestantes = $producto->variants()->where('id', '!=', $variant->id)->count(); Log::info("Eliminando variante", [ 'variante_id' => $variant->id, 'producto_id' => $producto->id, 'variantes_restantes' => $variantesRestantes ]); // Si esta era la última variante, el producto vuelve a poder tener stock directo if ($variantesRestantes === 0) { Log::info("Última variante eliminada - producto puede volver a tener stock directo", [ 'producto_id' => $producto->id ]); } } }