components([ TextInput::make('name') ->columnSpan(1) ->helperText('Domain name: example.com') ->required(), TextInput::make('daily_mailbox_limit') ->integer() ->minValue(1) ->default(100) ->helperText('How many mailboxes can be created with this domain daily') ->columnSpan(1) ->required(), ToggleButtons::make('is_active') ->options([ true => 'Active', false => 'Disabled', ]) ->inline() ->default(true) ->columnSpanFull() ->required(), Select::make('domain_type') ->options(DomainType::class) ->enum(DomainType::class) ->required(), Select::make('provider_type') ->options(ProviderType::class) ->enum(ProviderType::class) ->required(), DateTimePicker::make('starts_at'), DateTimePicker::make('ends_at'), TextEntry::make('last_used_at') ->label('Last Used At') ->formatStateUsing(fn ($state) => $state ? $state->diffForHumans() : 'Never') ->visible(fn ($context) => $context === 'edit'), TextEntry::make('checked_at') ->label('Last Checked At') ->formatStateUsing(fn ($state) => $state ? $state->diffForHumans() : 'Never') ->visible(fn ($context) => $context === 'edit'), TextEntry::make('deleted_at') ->label('Deleted At') ->formatStateUsing(fn ($state) => $state ? $state->diffForHumans() : null) ->color('danger') ->icon('heroicon-o-trash') ->visible(fn ($record) => $record?->deleted_at !== null), ])->columns(2); } }