components([ Section::make() ->schema([ Select::make('user_id') ->relationship('user', 'username') ->required() ->searchable() ->label('DJ'), TextInput::make('show_name') ->label('Show Naam') ->maxLength(255), DateTimePicker::make('started_at') ->required() ->label('Start Tijd'), DateTimePicker::make('ended_at') ->label('Eind Tijd'), TextInput::make('listeners_count') ->label('Aantal Luisteraars') ->numeric() ->default(0), Textarea::make('notes') ->label('Notities') ->rows(3), ]), ]); } #[\Override] public static function table(Table $table): Table { return $table ->defaultSort('started_at', 'desc') ->columns([ TextColumn::make('user.username') ->label('DJ') ->searchable(), TextColumn::make('show_name') ->label('Show') ->searchable(), TextColumn::make('started_at') ->label('Gestart') ->dateTime('d-m-Y H:i'), TextColumn::make('ended_at') ->label('Gestopt') ->dateTime('d-m-Y H:i'), TextColumn::make('duration') ->label('Duur'), TextColumn::make('listeners_count') ->label('Luisteraars'), ]) ->recordActions([ EditAction::make(), DeleteAction::make(), ]) ->toolbarActions([ DeleteBulkAction::make(), ]); } #[\Override] public static function getPages(): array { return [ 'index' => ManageRadioHistory::route('/'), ]; } }