You just create a Model with your input features as a model parameter. When you run the tool with some features selected, it will process only the selected features. If no feature is selected then it will process all features. You don't need to prompt the user to select. All model tools works the above way.