<?php

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

// Расширяем page_sections под page-builder:
// - добавляем тип секции (block | content) и поле content для текстовых вставок
// - block_id теперь nullable (текстовая секция не привязана к блоку)
// - убираем unique(page_id, block_id) — страница может иметь несколько текстовых секций
// Пересоздаём таблицу т.к. данных ещё нет и нужно снять NOT NULL с block_id

return new class extends Migration
{
    public function up(): void
    {
        Schema::dropIfExists('page_sections');

        Schema::create('page_sections', function (Blueprint $table) {
            $table->id();
            $table->foreignId('page_id')->constrained()->cascadeOnDelete();

            // 'block' — ссылка на блок из библиотеки; 'content' — произвольный HTML
            $table->string('type')->default('block');

            // Для type=content: HTML-контент этой секции
            $table->longText('content')->nullable();

            // Для type=block: ID блока из таблицы blocks
            $table->foreignId('block_id')->nullable()->constrained()->nullOnDelete();

            $table->unsignedInteger('sort_order')->default(0);
            $table->timestamps();
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('page_sections');
    }
};
