<?php

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

/**
 * `callerplugin`: qué plugin ORIGINÓ la llamada.
 *
 * El cliente ya lo envía —`local_tresipunt` lo añade al payload cuando el plugin que
 * pide algo no es el mismo que da la versión (`tip::add_callerplugin_context()`)— y
 * el Manager lo tiraba. Con solo `plugin` no se puede responder "¿quién ha hecho
 * estas 400 peticiones?" cuando varias piezas de un mismo Moodle usan la API.
 *
 * Ver known-issues MGR-036.
 */
return new class extends Migration
{
    public function up(): void
    {
        Schema::table('api_request_logs', function (Blueprint $table) {
            // Índice porque es un filtro de diagnóstico, igual que `plugin`.
            $table->string('callerplugin')->nullable()->index()->after('plugin');
        });
    }

    public function down(): void
    {
        Schema::table('api_request_logs', function (Blueprint $table) {
            $table->dropIndex(['callerplugin']);
            $table->dropColumn('callerplugin');
        });
    }
};
