components([ Section::make() ->schema([ Select::make('user_id') ->relationship('user', 'username') ->required() ->searchable() ->label('DJ'), FileUpload::make('image_path') ->label('Banner Afbeelding') ->image() ->required() ->directory('radio-banners') ->maxSize(5120) ->helperText('Max 5MB. Aanbevolen formaat: 1200x400px'), TextInput::make('title') ->label('Titel') ->placeholder('Bijv. DJ Remco - Weekend Vibes') ->maxLength(255), Textarea::make('description') ->label('Beschrijving') ->placeholder('Beschrijving van de show/DJ') ->rows(2), TextInput::make('sort_order') ->label('Volgorde') ->numeric() ->default(0) ->helperText('Lager nummer = eerder getoond'), Toggle::make('is_active') ->label('Actief') ->default(true), ]), ]); } #[\Override] public static function table(Table $table): Table { return $table ->defaultSort('sort_order') ->columns([ ImageColumn::make('image_path') ->label('Banner') ->height(60), TextColumn::make('user.username') ->label('DJ') ->searchable(), TextColumn::make('title') ->label('Titel') ->searchable(), TextColumn::make('sort_order') ->label('Volgorde'), IconColumn::make('is_active') ->label('Actief') ->boolean(), ]) ->recordActions([ EditAction::make(), DeleteAction::make(), ]) ->toolbarActions([ DeleteBulkAction::make(), ]); } #[\Override] public static function getPages(): array { return [ 'index' => ManageRadioBanners::route('/'), ]; } }