class DeleteClinician implements Runnable {

    @Override
    public void run() {
        Optional<Clinician> clinician = manager.getClinicianByStaffId(id);

        if (!clinician.isPresent()) {
            outputStream.println("No clinician exists with that user ID");
        } else if (clinician.get().getStaffId() == manager.getDefaultClinician().getStaffId()) {
            outputStream.println("Default clinician cannot be deleted");
        } else if (!yes) {
            outputStream.println(
                    String.format("Removing clinician: %s, with staff id: %s,\nto proceed please rerun the command "
                                    + "with the -y flag",
                            clinician.get().getFullName(),
                            clinician.get().getStaffId()));
        } else {
            // Successful deletion
            Action action = new DeleteClinicianAction(clinician.get(), manager);

            outputStream.println(invoker.execute(action));
            outputStream.println("This removal will only be permanent once the 'save' command is used");
        }
    }

    public  DeleteClinician(PrintStream outputStream, ActionInvoker invoker);
    public  DeleteClinician(ClinicianManager manager, ActionInvoker invoker);

}