<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Log::info("Iniciando limpieza de stock en productos con variantes...");
        
        // Buscar productos que tengan stock directo Y variantes
        $productosConVariantes = DB::table('productos')
            ->where('stock', '>', 0)
            ->whereExists(function ($query) {
                $query->select(DB::raw(1))
                      ->from('product_variants')
                      ->whereColumn('product_variants.producto_id', 'productos.id');
            })
            ->get();
            
        Log::info("Encontrados " . $productosConVariantes->count() . " productos con stock directo y variantes");
        
        foreach ($productosConVariantes as $producto) {
            $stockAnterior = $producto->stock;
            
            // Limpiar el stock del producto principal
            DB::table('productos')
                ->where('id', $producto->id)
                ->update(['stock' => 0]);
                
            Log::info("Stock limpiado para producto ID {$producto->id}: {$stockAnterior} → 0");
        }
        
        Log::info("Limpieza de stock completada exitosamente");
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        // No se puede deshacer esta migración porque no sabemos cuál era el stock original
        Log::info("Esta migración no se puede deshacer - el stock anterior no se puede recuperar");
    }
};
