<?php

use Winter\Storm\Database\Schema\Blueprint;
use Winter\Storm\Database\Updates\Migration;
use Winter\Storm\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('{{ table }}', function (Blueprint $table) {
{% for field,config in fields %}
            $table->{{ config.type }}('{{ field }}'){{ config.required == false ? '->nullable()' }}{{ config.index ? '->index()' }};
{% endfor %}
{% for field in jsonable %}
            $table->mediumText('{{ field }}')->nullable();
{% endfor %}
{% for field in morphable %}
            $table->nullableMorphs('{{ field }}', 'morphable_index');
{% endfor %}
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('{{ table }}', function (Blueprint $table) {
{% for field,config in fields %}
            $table->dropColumn('{{ field }}');
{% endfor %}
{% for field in jsonable %}
            $table->dropColumn('{{ field }}');
{% endfor %}
{% for field in morphable %}
            $table->dropColumn('{{ field }}');
{% endfor %}
        });
    }
};
