components([ Section::make() ->schema([ Select::make('user_id') ->relationship('user', 'username') ->required() ->searchable() ->label('DJ'), Select::make('day') ->required() ->label('Dag') ->options([ 'monday' => 'Maandag', 'tuesday' => 'Dinsdag', 'wednesday' => 'Woensdag', 'thursday' => 'Donderdag', 'friday' => 'Vrijdag', 'saturday' => 'Zaterdag', 'sunday' => 'Zondag', ]), TimePicker::make('start_time') ->required() ->label('Start Tijd'), TimePicker::make('end_time') ->required() ->label('Eind Tijd'), TextInput::make('show_name') ->label('Show Naam') ->placeholder('Bijv. Friday Night Fever') ->maxLength(255), Textarea::make('description') ->label('Beschrijving') ->placeholder('Beschrijving van de show') ->rows(2), Toggle::make('is_active') ->label('Actief') ->default(true), ]), ]); } #[\Override] public static function table(Table $table): Table { return $table ->defaultSort('start_time') ->columns([ TextColumn::make('day_name') ->label('Dag'), TextColumn::make('time_range') ->label('Tijd'), TextColumn::make('user.username') ->label('DJ') ->searchable(), TextColumn::make('show_name') ->label('Show') ->searchable(), IconColumn::make('is_active') ->label('Actief') ->boolean(), ]) ->filters([ SelectFilter::make('day') ->options([ 'monday' => 'Maandag', 'tuesday' => 'Dinsdag', 'wednesday' => 'Woensdag', 'thursday' => 'Donderdag', 'friday' => 'Vrijdag', 'saturday' => 'Zaterdag', 'sunday' => 'Zondag', ]) ->label('Dag'), ]) ->recordActions([ EditAction::make(), DeleteAction::make(), ]) ->toolbarActions([ DeleteBulkAction::make(), ]); } #[\Override] public static function getPages(): array { return [ 'index' => ManageRadioSchedules::route('/'), ]; } }