import 'package:aitrainer_app/util/string_extension.dart'; enum LoginType { email, fb, google, apple } extension LoginTypeExt on LoginType { bool equalsTo(LoginType type) => this.toString() == type.toString(); bool equalsStringTo(String type) => this.toString() == type; } enum TrackingEvent { enter, login, logout, registration, login_skip, home, sizes, sizes_save, my_development, my_exerciseplan, account, settings, sales_page, purchase_request, purchase_successful, exercise_new, exercise_new_no_registration, exercise_new_paralell, result, exercise_log, exercise_log_open, exercise_log_delete, exercise_log_result, my_body_development, my_muscle_development, my_size_development, my_custom_exercise_plan, my_custom_exercise_plan_save, my_exercise_plan_execute_open, my_exercise_plan_execute_save, my_special_plan, my_suggested_plan, prediction, search, exercise_device, customer_change, settings_lang, settings_server, test_set_edit, test_set_new, tutorial_step, tutorial_finished, tutorial_activate, terms_of_use, data_privacy, faq, training_plan_open, training_plan_start, training_plan_execute, training_plan_finished, training_plan_custom, trial, feedback_email } T enumFromString(Iterable values, String value) { return values.firstWhere((type) => type.toString().split(".").last == value); } extension TrackingEventExt on TrackingEvent { String enumToString() => this.toString().split(".").last; bool equalsTo(TrackingEvent event) => this.toString() == event.toString(); bool equalsStringTo(String event) => this.toString() == event; } enum PropertyEnum { Ectomorph, Mesomorph, Endomorph } extension PropertyExt on PropertyEnum { String toStr() => this.toString().split(".").last; bool equalsTo(PropertyEnum event) => this.toString() == event.toString(); bool equalsStringTo(String event) => this.toString() == event; } enum SizesEnum { Weight, Height, Shoulder, Neck, Biceps, Chest, Belly, Hip, ThighTop, ThighMiddle, Knee, Calf, Ankle, Underarm, Lowerarm } extension SizesExt on SizesEnum { String toStr() => this.toString().split(".").last; bool equalsTo(SizesEnum event) => this.toString() == event.toString(); bool equalsStringTo(String event) => this.toString() == event; } enum EvaluationText { very_poor, poor, fair, below_average, average, above_average, good, excellent, elite } extension EvaluationTextExt on EvaluationText { String toStr() => this.toString().split(".").last; bool equalsTo(EvaluationText eval) => this.toString() == eval.toString(); bool equalsStringTo(String eval) => this.toStr() == eval; } enum ExerciseTypeTrainingPlanState { none, added, executed } extension ExerciseTypeTrainingPlanStateExt on ExerciseTypeTrainingPlanState { String toStr() => this.toString().split(".").last; bool equalsTo(ExerciseTypeTrainingPlanState state) => this.toString() == state.toString(); bool equalsStringTo(String state) => this.toStr() == state; } enum ExerciseSaveType { test, training, test_set } extension ExerciseSaveTypeExt on ExerciseSaveType { String toStr() => this.toString().split(".").last; bool equalsTo(ExerciseSaveType type) => this.toString() == type.toString(); bool equalsStringTo(String type) => this.toStr() == type; } enum MuscleGroup { chest, biceps, triceps, back, shoulders, core, thigh, calf } extension MuscleGroupExt on MuscleGroup { String toStr() => this.toString().split(".").last; String toText() => this.toString().split(".").last.capitalize(); bool equalsTo(MuscleGroup type) => this.toString() == type.toString(); bool equalsStringTo(String type) => this.toStr() == type; String getStrByIndex(int index) => MuscleGroup.values.elementAt(index).toStr(); MuscleGroup getByIndex(int index) => MuscleGroup.values.elementAt(index); String getTextByIndex(int index) => MuscleGroup.values.elementAt(index).toText(); }