<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Seka\Portal\Modul\Vzdelavanie\Enums\ModelStatusEnum;
use Seka\Portal\Modul\Vzdelavanie\Models\Testovanie\DruhSpravnejOdpovedeEnum;
use Seka\Portal\Modul\Vzdelavanie\Models\Testovanie\Otazka;


/**
 * Class UpdateVzdelavanieTestovanieOtazkyTable
 */
return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up(): void
    {
        Schema::table('vzdelavanie_testovanie_otazky', function (Blueprint $table) {
            $table->string('druh_spravnej_odpovede')->default(DruhSpravnejOdpovedeEnum::JEDNA);
            $table->dropColumn('druh');

            $table
                ->string('stav')
                ->default(ModelStatusEnum::NEPUBLIKOVANE)
                ->after('druh_spravnej_odpovede');
        });

        Otazka::query()->take(10)->each(function (Otazka $otazka) {
            $otazka->setAttribute('druh_spravnej_odpovede', DruhSpravnejOdpovedeEnum::JEDNA);
            $otazka->save();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down(): void
    {
        Schema::table('vzdelavanie_testovanie_otazky', function (Blueprint $table) {
            $table->dropColumn('stav');
            $table->string('druh');
            $table->dropColumn('druh_spravnej_odpovede');
        });

        Otazka::query()->take(10)->each(function (Otazka $otazka) {
            $otazka->setAttribute('druh', 'JEDNA');
            $otazka->save();
        });
    }
};
