<?php

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

return new class extends Migration
{
    /**
     * Agrega created_at y updated_at (nullable) a clubes, equipos y eventos
     * para habilitar el orden "recién creados/editados primero" en /admin/*.
     *
     * Backfill: NULL en registros existentes. El orderBy usa COALESCE para
     * que los registros viejos caigan al fallback (id_xxx DESC) hasta que
     * sean editados, momento en el cual reciben timestamps y saltan al tope.
     */
    public function up(): void
    {
        foreach (['clubes', 'equipos', 'eventos'] as $tabla) {
            Schema::table($tabla, function (Blueprint $table) {
                if (!Schema::hasColumn($table->getTable(), 'created_at')) {
                    $table->timestamp('created_at')->nullable();
                }
                if (!Schema::hasColumn($table->getTable(), 'updated_at')) {
                    $table->timestamp('updated_at')->nullable();
                }
            });
        }
    }

    public function down(): void
    {
        foreach (['clubes', 'equipos', 'eventos'] as $tabla) {
            Schema::table($tabla, function (Blueprint $table) {
                if (Schema::hasColumn($table->getTable(), 'updated_at')) {
                    $table->dropColumn('updated_at');
                }
                if (Schema::hasColumn($table->getTable(), 'created_at')) {
                    $table->dropColumn('created_at');
                }
            });
        }
    }
};
