<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;

return new class extends Migration
{
    public function up(): void
    {
        // Aynı (source_product_id, target_product_id) için birden fazla kayıt
        // varsa en küçük id'yi tut, diğerlerini sil. Bu, direction kolonu drop
        // edildiğinde unique constraint çakışmasını engeller.
        $duplicates = DB::table('product_upgrade_paths')
            ->select('source_product_id', 'target_product_id', DB::raw('MIN(id) as keep_id'))
            ->groupBy('source_product_id', 'target_product_id')
            ->havingRaw('COUNT(*) > 1')
            ->get();

        foreach ($duplicates as $dup) {
            DB::table('product_upgrade_paths')
                ->where('source_product_id', $dup->source_product_id)
                ->where('target_product_id', $dup->target_product_id)
                ->where('id', '!=', $dup->keep_id)
                ->delete();
        }
    }

    public function down(): void
    {
        // Veri temizliği geri alınamaz; down boş bırakılır
    }
};
