<?php

declare(strict_types=1);

namespace App\Enums;

use Filament\Support\Contracts\HasLabel;

/**
 * Método de cálculo de intereses.
 *
 * Implementa HasLabel para compatibilidad con Filament 4.1.
 */
enum InterestMethod: string implements HasLabel
{
    case FLAT_RATE = 'flat_rate';
    case FLAT_RATE_PROJECTED = 'flat_rate_projected';
    case DIMINISHING_BALANCE = 'diminishing_balance';

    /**
     * Etiqueta legible para UI (requerido por Filament HasLabel).
     */
    public function getLabel(): string
    {
        return match ($this) {
            self::FLAT_RATE => 'Tasa Fija',
            self::FLAT_RATE_PROJECTED => 'Tasa Fija Proyectada',
            self::DIMINISHING_BALANCE => 'Saldo Decreciente',
        };
    }

    /**
     * Descripción del método de cálculo.
     */
    public function getDescription(): string
    {
        return match ($this) {
            self::FLAT_RATE => 'Interés calculado sobre el capital inicial durante todo el plazo.',
            self::FLAT_RATE_PROJECTED => 'Interés fijo con proyección de pagos uniformes.',
            self::DIMINISHING_BALANCE => 'Interés calculado sobre el saldo pendiente en cada período.',
        };
    }
}
