<?php

namespace App\Filament\Resources\Plans\Tables;

use App\Models\Plan;
use Filament\Actions\EditAction;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;

class PlansTable
{
    public static function configure(Table $table): Table
    {
        return $table
            ->columns([
                TextColumn::make('sort_order')
                    ->label('#')
                    ->sortable()
                    ->toggleable(isToggledHiddenByDefault: true),

                TextColumn::make('name')
                    ->label('Plan')
                    ->weight('bold')
                    ->description(fn (Plan $record): string => $record->slug)
                    ->searchable(),

                TextColumn::make('price')
                    ->label('Precio mensual')
                    ->money('COP')
                    ->sortable(),

                TextColumn::make('annual_price')
                    ->label('Precio anual')
                    ->money('COP')
                    ->placeholder('—')
                    ->sortable()
                    ->toggleable(),

                TextColumn::make('subscriptions_count')
                    ->label('Suscripciones')
                    ->counts('subscriptions')
                    ->badge()
                    ->color('gray'),

                IconColumn::make('is_public')
                    ->label('En el sitio')
                    ->boolean(),

                IconColumn::make('is_active')
                    ->label('Activo')
                    ->boolean(),
            ])
            ->defaultSort('sort_order')
            ->recordActions([
                EditAction::make(),
            ]);
    }
}
