<?php

namespace App\Filament\Components\Widgets;

use App\Models\Credit;
use App\Services\CreditManager;
use App\Support\CreditHelper;
use Filament\Widgets\StatsOverviewWidget;
use Filament\Widgets\StatsOverviewWidget\Card;

class CreditKPICards extends StatsOverviewWidget
{
    public ?Credit $record = null;

    protected function getCards(): array
    {
        if (! $this->record) {
            return [];
        }

        $summary = app(CreditManager::class)->getSummary($this->record);

        return [
            Card::make('Estado', ucfirst($summary['state']))
                ->color($summary['state_badge'])
                ->icon('heroicon-o-clipboard-document-check'),

            Card::make('Saldo pendiente', CreditHelper::formatMoney($summary['remaining_balance']))
                ->description('Total por cobrar')
                ->descriptionIcon('heroicon-o-banknotes'),

            Card::make('Cuotas pagadas', "{$summary['installments_paid']} / {$summary['installments_total']}")
                ->description("Pendientes: {$summary['installments_pending']}"),

            Card::make('Días de atraso', $summary['days_late'])
                ->color($summary['days_late'] > 0 ? 'danger' : 'success'),
        ];
    }
}
