<?php

use App\Enums\PricelistFileStatusEnum;
use App\Enums\PricelistFileLineStatusEnum;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        // 1. PricelistFileStatusEnum frissítése a pricelist_files táblában
        $fileStatuses = array_map(fn($case) => "'{$case->value}'", PricelistFileStatusEnum::cases());
        $fileStatusesStr = implode(', ', $fileStatuses);
        DB::statement("ALTER TABLE pricelist_files MODIFY COLUMN status ENUM({$fileStatusesStr}) DEFAULT 'todo' NOT NULL");

        // 2. PricelistFileLineStatusEnum frissítése a pricelist_file_lines táblában
        $lineStatuses = array_map(fn($case) => "'{$case->value}'", PricelistFileLineStatusEnum::cases());
        $lineStatusesStr = implode(', ', $lineStatuses);
        DB::statement("ALTER TABLE pricelist_file_lines MODIFY COLUMN status ENUM({$lineStatusesStr}) NOT NULL");
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        // A visszagörgetésnél nem csinálunk semmit, mert az enumok csökkentése adatvesztéssel járhatna
    }
};
