<?php

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

return new class extends Migration {
    public function up(): void
    {
        // SQLite doesn't support modifying enum columns, so we skip for SQLite
        if (config('database.default') !== 'sqlite') {
            // Migrate any existing 'banned' rows before changing the enum
            DB::table('items')->where('status', 'banned')->update(['status' => 'removed']);

            DB::statement("ALTER TABLE items MODIFY COLUMN status ENUM('draft','active','sold','trade_pending','sale_pending','archived','flagged','removed') NOT NULL DEFAULT 'draft'");

            Schema::table('items', function (Blueprint $table) {
                $table->text('admin_note')->nullable()->after('status');
            });
        }
    }

    public function down(): void
    {
        // SQLite doesn't support modifying enum columns, so we skip for SQLite
        if (config('database.default') !== 'sqlite') {
            DB::table('items')->where('status', 'removed')->update(['status' => 'archived']);

            DB::statement("ALTER TABLE items MODIFY COLUMN status ENUM('draft','active','sold','trade_pending','sale_pending','archived','flagged','banned') NOT NULL DEFAULT 'draft'");

            Schema::table('items', function (Blueprint $table) {
                $table->dropColumn('admin_note');
            });
        }
    }
};
