components([ TextInput::make('name') ->label('نام') ->required() ->maxLength(255), Select::make('driver') ->label('سرویس‌دهنده') ->options([ AiProviderDriver::OpenAi->value => AiProviderDriver::OpenAi->label(), AiProviderDriver::GapGpt->value => AiProviderDriver::GapGpt->label(), ]) ->default(AiProviderDriver::OpenAi->value) ->live() ->required(), TextInput::make('model') ->label('مدل') ->helperText('مثال: gpt-4o-mini') ->required() ->maxLength(255), TextInput::make('base_url') ->label('آدرس API (Base URL)') ->url() ->placeholder(fn (Get $get): string => AiProviderDriver::from($get('driver') ?? AiProviderDriver::OpenAi->value)->defaultBaseUrl()) ->helperText('در صورت خالی بودن، آدرس پیش‌فرض همان سرویس‌دهنده استفاده می‌شود.') ->maxLength(255), TextInput::make('api_key') ->label('API Key') ->password() ->revealable() ->autocomplete('new-password') ->required(fn (string $operation): bool => $operation === 'create') ->saved(fn (?string $state): bool => filled($state)) ->maxLength(1000), Toggle::make('is_active') ->label('فعال') ->default(true), Toggle::make('is_default') ->label('پیش‌فرض') ->helperText('هنگام تولید محتوا در صورت وجود چند سرویس فعال، این سرویس اولویت دارد.'), ]); } }