<?php

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

return new class extends Migration
{
    public function up(): void
    {
        // Índice para consultas de pagos por crédito y fecha
        Schema::table('payments', function (Blueprint $table) {
            $table->index(['credit_id', 'payment_date'], 'idx_payment_credit_date');
        });

        // Índice para pivote de pagos-cuotas
        Schema::table('payment_installment', function (Blueprint $table) {
            $table->index(['payment_id', 'installment_id'], 'idx_payment_installment_ids');
        });

        // Índice para consultas de cuotas por crédito y fecha de vencimiento
        Schema::table('installments', function (Blueprint $table) {
            $table->index(['credit_id', 'due_date'], 'idx_installment_credit_due');
        });

        // Índice para consultas de créditos por estado y compañía
        Schema::table('credits', function (Blueprint $table) {
            $table->index(['status', 'company_id'], 'idx_credit_status_company');
        });
    }

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

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

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

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