<?php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        // credits — composite for multi-tenant collector queries
        Schema::table('credits', function (Blueprint $table) {
            $table->index(['company_id', 'collector_user_id'], 'idx_credits_company_collector');
        });

        // installments — composite for status queries per credit
        Schema::table('installments', function (Blueprint $table) {
            $table->index(['credit_id', 'status'], 'idx_installments_credit_status');
        });

        // payments — composite for "today's payments by company" dashboard query
        Schema::table('payments', function (Blueprint $table) {
            $table->index(['company_id', 'payment_date'], 'idx_payments_company_date');
        });

        // expenses — for date range queries on expense reports
        Schema::table('expenses', function (Blueprint $table) {
            $table->index('operation_date', 'idx_expenses_operation_date');
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::table('credits', function (Blueprint $table) {
            $table->dropIndex('idx_credits_company_collector');
        });

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

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

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