WT 1.1.22 reengineering: Training Plan execution, registration
This commit is contained in:
@@ -168,7 +168,7 @@ class CustomerRepository with Logging {
|
||||
if (this.customer!.properties[propertyName] == null) {
|
||||
this.customer!.properties[propertyName] = CustomerProperty(
|
||||
propertyId: propertyRepository.getPropertyByName("Height")!.propertyId,
|
||||
customerId: this.customer!.customerId!,
|
||||
customerId: this.customer!.customerId == null ? 0 : this.customer!.customerId!,
|
||||
propertyValue: value,
|
||||
dateAdd: DateTime.now());
|
||||
} else {
|
||||
|
||||
@@ -4,9 +4,10 @@ import 'package:aitrainer_app/model/customer_training_plan_details.dart';
|
||||
import 'package:aitrainer_app/model/exercise.dart';
|
||||
import 'package:aitrainer_app/model/exercise_plan_detail.dart';
|
||||
import 'package:aitrainer_app/model/exercise_tree.dart';
|
||||
import 'package:aitrainer_app/model/fitness_state.dart';
|
||||
import 'package:aitrainer_app/model/training_plan.dart';
|
||||
import 'package:aitrainer_app/repository/training_plan_day_repository.dart';
|
||||
import 'package:aitrainer_app/service/training_plan_service.dart';
|
||||
import 'package:aitrainer_app/util/app_language.dart';
|
||||
import 'package:aitrainer_app/util/common.dart';
|
||||
|
||||
class TrainingPlanRepository {
|
||||
@@ -40,14 +41,14 @@ class TrainingPlanRepository {
|
||||
/// 2. calculate customer_training_plan_details weights / repleats
|
||||
/// 3. create new customer_training_plan
|
||||
|
||||
Future<CustomerTrainingPlan?> activateTrainingPlan(int trainingPlanId) async {
|
||||
CustomerTrainingPlan? activateTrainingPlan(int trainingPlanId) {
|
||||
print(" **** Activate Plan: $trainingPlanId");
|
||||
// 1. deactivate
|
||||
if (Cache().getCustomerTrainingPlans() != null) {
|
||||
Cache().getCustomerTrainingPlans()!.forEach((plan) {
|
||||
plan.active = false;
|
||||
if (plan.customerTrainingPlanId != null) {
|
||||
TrainingPlanApi().updateCustomerTrainingPlan(plan, plan.customerTrainingPlanId!);
|
||||
//TrainingPlanApi().updateCustomerTrainingPlan(plan, plan.customerTrainingPlanId!);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -58,7 +59,7 @@ class TrainingPlanRepository {
|
||||
plan.active = true;
|
||||
plan.status = "open";
|
||||
plan.dateAdd = DateTime.now();
|
||||
plan.name = getTrainingPlanById(trainingPlanId)!.nameTranslations["hu"];
|
||||
plan.name = getTrainingPlanById(trainingPlanId)!.nameTranslations[AppLanguage().appLocal.toString()];
|
||||
|
||||
TrainingPlan? trainingPlan = this.getTrainingPlanById(trainingPlanId);
|
||||
if (trainingPlan == null || trainingPlan.details == null) {
|
||||
@@ -138,6 +139,23 @@ class TrainingPlanRepository {
|
||||
return plan;
|
||||
}
|
||||
|
||||
int? getTrainingPlanByInternalName(String internalName) {
|
||||
int? id;
|
||||
if (Cache().getTrainingPlans() == null) {
|
||||
return id;
|
||||
}
|
||||
|
||||
for (var trainingPlan in Cache().getTrainingPlans()!) {
|
||||
print("internal ${trainingPlan.internalName}");
|
||||
if (trainingPlan.internalName == internalName) {
|
||||
id = trainingPlan.trainingPlanId;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
CustomerTrainingPlanDetails getCalculatedWeightRepeats(int exerciseTypeId, CustomerTrainingPlanDetails detail) {
|
||||
double weight = -1;
|
||||
if (Cache().getExercises() == null) {
|
||||
@@ -247,4 +265,32 @@ class TrainingPlanRepository {
|
||||
|
||||
return recalculatedDetail;
|
||||
}
|
||||
|
||||
void generateTrainingPlan() {
|
||||
int? trainingPlanId;
|
||||
if (Cache().userLoggedIn == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
bool isWoman = Cache().userLoggedIn!.sex == "w";
|
||||
|
||||
if (Cache().userLoggedIn!.fitnessLevel == FitnessState.beginner) {
|
||||
trainingPlanId = isWoman ? getTrainingPlanByInternalName("woman_beginner") : getTrainingPlanByInternalName("beginner_man");
|
||||
} else if (Cache().userLoggedIn!.fitnessLevel == FitnessState.intermediate) {
|
||||
trainingPlanId = isWoman ? getTrainingPlanByInternalName("woman_beginner_split") : getTrainingPlanByInternalName("beginner_split");
|
||||
} else if (Cache().userLoggedIn!.fitnessLevel == FitnessState.advanced) {
|
||||
trainingPlanId = isWoman ? getTrainingPlanByInternalName("woman_advanced") : getTrainingPlanByInternalName("man_routine4");
|
||||
} else {
|
||||
trainingPlanId = isWoman ? getTrainingPlanByInternalName("5day") : getTrainingPlanByInternalName("5day");
|
||||
}
|
||||
|
||||
print("Generated plan $trainingPlanId fitness ${Cache().userLoggedIn!.fitnessLevel} - ${FitnessState.beginner}");
|
||||
|
||||
if (trainingPlanId != null) {
|
||||
CustomerTrainingPlan? customerTrainingPlan = activateTrainingPlan(trainingPlanId);
|
||||
if (customerTrainingPlan != null) {
|
||||
Cache().myTrainingPlan = customerTrainingPlan;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user