<?php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up()
    {
        Schema::table('daily_metrics', function (Blueprint $table) {
            $table->foreignId('tenant_id')->nullable()->after('id')->constrained()->cascadeOnDelete();
        });

        // SCRIPT DE CORREÇÃO: Preenche o tenant_id baseado na fila a que a métrica pertence
        // Isso evita que dados antigos fiquem "órfãos"
        DB::statement("
            UPDATE daily_metrics dm
            JOIN queues q ON dm.queue_id = q.id
            SET dm.tenant_id = q.tenant_id
        ");

        // Depois de preencher, podemos (opcionalmente) tornar obrigatório, 
        // mas vamos deixar nullable por segurança agora.
    }

    public function down()
    {
        Schema::table('daily_metrics', function (Blueprint $table) {
            $table->dropForeign(['tenant_id']);
            $table->dropColumn('tenant_id');
        });
    }
};
