<?php

use App\Models\DictSection;
use App\Models\DictValue;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

/*
 * Миграция: добавляет поле platform в таблицу cars
 * и создаёт раздел справочника «Площадки» с тремя начальными значениями.
 * platform nullable — для совместимости с уже существующими авто.
 * В форме поле будет обязательным (required в validation).
 */
return new class extends Migration
{
    public function up(): void
    {
        Schema::table('cars', function (Blueprint $table) {
            // После поля city, перед title — логически рядом с местоположением
            $table->string('platform', 64)->nullable()->after('city');
        });

        // Создаём раздел «Площадки» только если его ещё нет
        if (! DictSection::where('code', 'platforms')->exists()) {
            $section = DictSection::create([
                'code' => 'platforms',
                'label' => 'Площадки',
                'is_system' => false,
                'is_hierarchical' => false,
                'sort_order' => 90,
            ]);

            $platforms = ['Площадка 1', 'Площадка 2', 'Мои машины'];
            foreach ($platforms as $i => $value) {
                DictValue::create([
                    'section_id' => $section->id,
                    'parent_id' => null,
                    'value' => $value,
                    'sort_order' => ($i + 1) * 10,
                ]);
            }
        }
    }

    public function down(): void
    {
        Schema::table('cars', function (Blueprint $table) {
            $table->dropColumn('platform');
        });

        DictSection::where('code', 'platforms')->delete();
    }
};
