schema([ Toggle::make('is_active') ->required(), Select::make('organization_id') ->label('Organization') ->relationship('organization', 'name') ->required(), Select::make('department_id') ->label('Department') ->relationship('department', 'name'), Select::make('user_id') ->label('Radiologist') ->relationship('radiologist', 'display_name') ->options(Radiologists::activeRads()), Select::make('assignment_panel_id') ->label('Panel') ->relationship('panel', 'name'), TextInput::make('name') ->maxLength(255), Textarea::make('condition') ->columnSpanFull() ->required(), TextInput::make('priority') ->required() ->numeric() ->default(0), ]); } public static function table(Table $table): Table { return $table ->columns([ IconColumn::make('is_active') ->label('') ->boolean(), TextColumn::make('name') ->searchable(), TextColumn::make('condition') ->label('Rule') ->limit(20) ->searchable(), TextColumn::make('priority') ->numeric() ->sortable(), TextColumn::make('organization.name') ->label('Org') ->numeric() ->sortable(), TextColumn::make('department.name') ->label('Dept') ->numeric() ->sortable(), TextColumn::make('user_id') ->label('Rad') ->numeric() ->sortable(), TextColumn::make('assignment_panel_id') ->label('Panel') ->numeric() ->sortable(), TextColumn::make('created_at') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), TextColumn::make('updated_at') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), ]) ->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\ListDicomRoutingRules::route('/'), 'create' => Pages\CreateDicomRoutingRule::route('/create'), 'edit' => Pages\EditDicomRoutingRule::route('/{record}/edit'), ]; } }