<?php

declare(strict_types=1);

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

return new class extends Migration
{
    public function up(): void
    {
        // Guard: schema.sql v8.20+ already contains this column; skip if present
        // (prevents "duplicate column" error after `migrate:fresh` which loads schema.sql first).
        if (Schema::hasColumn('projects', 'archived_at')) {
            return;
        }

        Schema::table('projects', function (Blueprint $table) {
            $table->timestampTz('archived_at')->nullable();
        });
    }

    public function down(): void
    {
        // Внимание: down() не симметричен up()'у. Если schema.sql v8.20 уже добавил
        // archived_at (через migrate:fresh → load_initial_schema), rollback этой
        // миграции удалит колонку, что создаст drift с schema.sql. На проекте rollback
        // применяется только после migrate:fresh, поэтому это приемлемо — но не
        // используйте миграцию как способ отката v8.19 (нужна отдельная schema-bump).
        Schema::table('projects', function (Blueprint $table) {
            $table->dropColumn('archived_at');
        });
    }
};
