<?php

namespace App\Filament\Resources\Companies\Schemas;

use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
use Illuminate\Support\Facades\Auth;

class CompanyForm
{
    public static function configure(Schema $schema): Schema
    {
        $user = Auth::user();
        $isSuperAdmin = $user?->isSuperAdmin() ?? false; // Verifica si es Super Admin

        return $schema
            ->components([
                // 1. CAMPO NOMBRE
                TextInput::make('name')
                    ->label('Nombre de la Compañía')
                    ->required()
                    ->maxLength(255),
                // ESTADO de la empresa (suspender/reactivar desde aquí)
                Select::make('status')
                    ->label('Estado')
                    ->options([
                        'active' => 'Activa',
                        'suspended' => 'Suspendida',
                        'inactive' => 'Inactiva',
                    ])
                    ->default('active')
                    ->required()
                    ->helperText('Una empresa suspendida o inactiva no puede operar.'),
                // 2. CAMPO EMAIL
                TextInput::make('email')
                    ->label('Correo Electrónico')
                    ->email()
                    ->required()
                    ->unique(ignoreRecord: true)
                    ->maxLength(255),
                // 3. CAMPO PHONE
                TextInput::make('phone')
                    ->label('Teléfono')
                    ->tel()
                    ->default(null),
                // 4. CAMPO ADDRESS
                TextInput::make('address')
                    ->label('Dirección')
                    ->maxLength(255)
                    ->default(null),
                // 5. CAMPO DE SELECCIÓN DEL MÉTODO DE INTERÉS
                Select::make('interest_method')
                    ->label('Método de Cálculo de Interés')
                    ->options([
                        'flat_rate' => 'Interés Fijo Simple (Tasa Total Plazo)', // El método que acabas de implementar
                        'flat_rate_projected' => 'Interés Fijo por Tasa Mensual Proyectada', // El método anterior
                        'diminishing_balance' => 'Interés sobre Saldo Deudor',
                    ])
                    ->default('flat_rate')
                    ->required()
                    ->helperText('Define cómo se calcularán los intereses y la tabla de amortización para los créditos de esta compañía.'),
            ]);
    }
}
