<?php

declare(strict_types=1);

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

return new class extends Migration
{
    public function up(): void
    {
        // Guard: после migrate:fresh schema.sql загружается первой (load_initial_schema).
        // Если schema.sql уже отдаёт vid как nullable — миграция no-op (idempotent).
        $isNullable = DB::selectOne(
            "SELECT is_nullable FROM information_schema.columns
             WHERE table_name = 'supplier_leads' AND column_name = 'vid'"
        );
        if ($isNullable !== null && $isNullable->is_nullable === 'YES') {
            return;
        }

        DB::statement('ALTER TABLE supplier_leads ALTER COLUMN vid DROP NOT NULL');
    }

    public function down(): void
    {
        // Внимание: down() не симметричен после migrate:fresh со свежей schema.sql.
        // Не использовать как откат schema-bump — нужна отдельная schema-правка.
        DB::statement('ALTER TABLE supplier_leads ALTER COLUMN vid SET NOT NULL');
    }
};
