<?php

declare(strict_types=1);

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

/**
 * deals.subject_code — субъект РФ из тега поставщика (raw_payload['tag']) — v8.26.
 *
 * Источник истины региона сделки = тег проекта у поставщика (надёжнее phone-prefix
 * для мобильных). Отдельно от deals.region_code (ISO-3166, phone-derived).
 * deals партиционирована — ADD COLUMN наследуется партициями.
 */
return new class extends Migration
{
    public function up(): void
    {
        if (! Schema::hasColumn('deals', 'subject_code')) {
            DB::statement('ALTER TABLE deals ADD COLUMN subject_code SMALLINT');
        }

        DB::statement(
            'COMMENT ON COLUMN deals.subject_code IS '
            ."'Субъект РФ 1..89 из тега поставщика (raw_payload[tag]). NULL = «Вся РФ»/неизвестно. v8.26.'"
        );
    }

    public function down(): void
    {
        if (Schema::hasColumn('deals', 'subject_code')) {
            Schema::table('deals', fn ($t) => $t->dropColumn('subject_code'));
        }
    }
};
