<?php

namespace App\Filament\Resources\Deals\Schemas;

use App\Models\DealStage;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Textarea;
use Filament\Schemas\Schema;

class DealForm
{
    public static function configure(Schema $schema): Schema
    {
        return $schema
            ->components([
                TextInput::make('title')
                    ->label('Título')
                    ->required()
                    ->columnSpanFull(),
                Select::make('client_id')
                    ->label('Cliente')
                    ->relationship('client', 'company_name')
                    ->searchable()
                    ->preload(),
                Select::make('lead_id')
                    ->label('Lead')
                    ->relationship('lead', 'company')
                    ->searchable()
                    ->preload(),
                TextInput::make('amount')
                    ->label('Importe')
                    ->required()
                    ->numeric()
                    ->default(0)
                    ->prefix('$'),
                // Catálogo editable desde Ajustes → Etapas de negocio.
                Select::make('status')
                    ->label('Etapa')
                    ->options(fn (): array => DealStage::options())
                    ->default('new')
                    ->required()
                    ->native(false),
                TextInput::make('position')
                    ->label('Posición')
                    ->required()
                    ->numeric()
                    ->default(0),
                Textarea::make('description')
                    ->label('Descripción')
                    ->rows(4)
                    ->columnSpanFull(),
            ]);
    }
}
