schema([ Forms\Components\Select::make('class_student_id') ->relationship('classStudent', 'id') // atau gunakan relasi yang lebih deskriptif jika ada ->getOptionLabelFromRecordUsing(fn (ClassStudent $record) => $record->class->class_name . ' - ' . $record->student->full_name . ' - ' . $record->academicYear->name) ->searchable() ->preload() ->required(), Forms\Components\Select::make('extracurricular_id') ->relationship('extracurricular', 'name') ->label('Extracurricular') ->options(Extracurricular::all()->pluck('name', 'id')) ->searchable() ->required(), Forms\Components\Select::make('semester') ->options([ 'first' => 'Ganjil', 'second' => 'Genap', ]) ->required(), Forms\Components\TextInput::make('score') ->numeric() ->required(), ]); } public static function table(Table $table): Table { return $table ->columns([ Tables\Columns\TextColumn::make('classStudent.student.full_name') ->label('Student') ->searchable(), Tables\Columns\TextColumn::make('classStudent.class.class_name') ->label('Class') ->searchable(), Tables\Columns\TextColumn::make('classStudent.academicYear.name') ->label('Academic Year'), Tables\Columns\TextColumn::make('extracurricular.name') ->label('Extracurricular'), Tables\Columns\TextColumn::make('semester'), Tables\Columns\TextColumn::make('score') ->sortable(), ]) ->filters([ // ]) ->actions([ Tables\Actions\EditAction::make(), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ Tables\Actions\DeleteBulkAction::make(), ]), ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListExtracurricularAssessments::route('/'), 'create' => Pages\CreateExtracurricularAssessment::route('/create'), 'edit' => Pages\EditExtracurricularAssessment::route('/{record}/edit'), ]; } }