<?php

namespace App\Filament\Components\Columns;

use App\Models\Credit;
use App\Services\CreditManager;
use App\Support\CreditHelper;
use Filament\Tables\Columns\TextColumn;

class NextInstallmentColumn
{
    public static function make(): TextColumn
    {
        return TextColumn::make('next_installment')
            ->label('Próxima cuota')
            ->formatStateUsing(function (Credit $record) {
                $manager = app(CreditManager::class);

                $next = $manager->getNextInstallment($record);

                if (! $next) {
                    return 'Pagado';
                }

                return CreditHelper::formatDate($next->due_date)
                    .' — '.
                    CreditHelper::formatMoney($next->total_amount);
            });
    }
}
