<?php

namespace App\Filament\Resources\FinancialOperations\Tables;

use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;

class FinancialOperationsTable
{
    public static function configure(Table $table): Table
    {
        return $table
            ->columns([

                TextColumn::make('id')
                    ->label('#')
                    ->sortable(),

                TextColumn::make('created_at')
                    ->label('Fecha')
                    ->dateTime('d/m/Y H:i')
                    ->sortable(),

                TextColumn::make('operation_type')
                    ->label('Tipo')
                    ->badge()
                    ->formatStateUsing(fn ($state) => match ($state) {
                        'credit_disbursement' => 'Desembolso',
                        'credit_extension' => 'Extensión',
                        'credit_refinance' => 'Refinanciación',
                        'credit_restructure' => 'Reestructuración',
                        'credit_renewal' => 'Renovación',
                        'internal_adjustment' => 'Ajuste interno',
                        default => $state,
                    }),

                TextColumn::make('credit_amount')
                    ->label('Monto crédito')
                    ->money('COP', locale: 'es_CO')
                    ->alignEnd(),

                TextColumn::make('compensated_amount')
                    ->label('Compensado')
                    ->money('COP', locale: 'es_CO')
                    ->alignEnd(),

                TextColumn::make('cash_out')
                    ->label('Salida caja')
                    ->money('COP', locale: 'es_CO')
                    ->alignEnd()
                    ->color('danger'),

                TextColumn::make('cash_in')
                    ->label('Entrada caja')
                    ->money('COP', locale: 'es_CO')
                    ->alignEnd()
                    ->color('success'),

            ])
            ->filters([
                //
            ])
            ->recordActions([
                ViewAction::make(),
                EditAction::make(),
            ])
            ->toolbarActions([
                BulkActionGroup::make([
                    DeleteBulkAction::make(),
                ]),
            ]);
    }
}
