<?php

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

/**
 * Add missing performance indexes identified in architecture audit (April 2026).
 *
 * supervisor_collector: composite (company_id, supervisor_id) for multi-tenant
 *   "get collectors for supervisor" queries (CollectorVisibilityResolver).
 *
 * expenses: standalone company_id index for listing/pagination queries.
 *   The existing unique(company_id, idempotency_key) covers idempotency lookups
 *   but MariaDB may not use it for plain company_id filters due to key selectivity.
 */
return new class extends Migration
{
    public function up(): void
    {
        Schema::table('supervisor_collector', function (Blueprint $table) {
            $table->index(['company_id', 'supervisor_id'], 'sc_company_supervisor_idx');
        });

        Schema::table('expenses', function (Blueprint $table) {
            $table->index('company_id', 'expenses_company_id_idx');
        });
    }

    public function down(): void
    {
        Schema::table('supervisor_collector', function (Blueprint $table) {
            $table->dropIndex('sc_company_supervisor_idx');
        });

        Schema::table('expenses', function (Blueprint $table) {
            $table->dropIndex('expenses_company_id_idx');
        });
    }
};
