<?php
declare(strict_types=1);

use Celena\Core\Database\Blueprint;
use Celena\Core\Database\Connection;
use Celena\Core\Database\Schema;

/**
 * Конструктор форм: определения форм. Поля и настройки — в JSON (портируемо
 * JSONB/JSON). Это делает плагин самодостаточным: формы любого состава без
 * правки схемы и без зависимости от core CustomFields.
 */
return function (Schema $schema, Connection $conn): void {
    $schema->create('forms', function (Blueprint $t) {
        $t->id();
        $t->string('slug', 80)->default('');
        $t->string('title', 191)->default('');
        $t->json('fields')->nullable();    // [{key,label,type,required,placeholder,options,width,help,lang_key}]
        $t->json('settings')->nullable();  // {is_default,endpoint,track_event,conversion_send_to,lead_value,...,notify_emails,telegram_enabled}
        $t->string('status', 20)->default('active');
        $t->datetime('created_at')->nullable();
        $t->datetime('updated_at')->nullable();
        $t->unique('slug');
    });
};
