<?php

namespace App\Filament\Resources\Projects\Schemas;

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

class ProjectForm
{
    public static function configure(Schema $schema): Schema
    {
        return $schema
            ->components([
                TextInput::make('name')
                    ->label('Nombre')
                    ->required()
                    ->columnSpanFull(),
                Select::make('client_id')
                    ->label('Cliente')
                    ->relationship('client', 'company_name')
                    ->searchable()
                    ->preload()
                    ->required(),
                Select::make('quote_id')
                    ->label('Cotización')
                    ->relationship('quote', 'quote_number')
                    ->searchable()
                    ->preload(),
                // Catálogo editable desde Ajustes → Etapas de proyecto.
                Select::make('stage_id')
                    ->label('Etapa')
                    ->options(fn (): array => ProjectStage::options())
                    ->native(false),
                Select::make('status')
                    ->label('Estado')
                    ->options([
                        'active' => 'Activo',
                        'on_hold' => 'En pausa',
                        'completed' => 'Completado',
                        'cancelled' => 'Cancelado',
                    ])
                    ->default('active')
                    ->native(false),
                DatePicker::make('start_date')
                    ->label('Inicio'),
                DatePicker::make('deadline')
                    ->label('Fecha límite'),
                Textarea::make('description')
                    ->label('Descripción')
                    ->rows(4)
                    ->columnSpanFull(),
            ]);
    }
}
