diff --git a/lib/models/nutrition/log.dart b/lib/models/nutrition/log.dart index fec9c6079..97892b537 100644 --- a/lib/models/nutrition/log.dart +++ b/lib/models/nutrition/log.dart @@ -31,6 +31,9 @@ class Log { @JsonKey(required: true) int? id; + @JsonKey(required: false, name: 'meal') + int mealId; + @JsonKey(required: true, name: 'plan') int planId; @@ -56,6 +59,7 @@ class Log { Log({ this.id, + required this.mealId, required this.ingredientId, required this.weightUnitId, required this.amount, @@ -64,7 +68,7 @@ class Log { this.comment, }); - Log.fromMealItem(MealItem mealItem, this.planId, [DateTime? dateTime]) { + Log.fromMealItem(MealItem mealItem, this.planId, this.mealId, [DateTime? dateTime]) { ingredientId = mealItem.ingredientId; ingredientObj = mealItem.ingredientObj; weightUnitId = mealItem.weightUnitId; diff --git a/lib/models/nutrition/log.g.dart b/lib/models/nutrition/log.g.dart index 7e64e3843..430e924a2 100644 --- a/lib/models/nutrition/log.g.dart +++ b/lib/models/nutrition/log.g.dart @@ -8,13 +8,14 @@ part of 'log.dart'; Log _$LogFromJson(Map json) { $checkKeys(json, - requiredKeys: const ['id', 'plan', 'datetime', 'ingredient', 'weight_unit', 'amount']); + requiredKeys: const ['id', 'meal', 'plan', 'datetime', 'ingredient', 'weight_unit', 'amount']); return Log( id: json['id'] as int?, ingredientId: json['ingredient'] as int, weightUnitId: json['weight_unit'] as int?, amount: stringToNum(json['amount'] as String?), planId: json['plan'] as int, + mealId: json['meal'] as int, datetime: DateTime.parse(json['datetime'] as String), comment: json['comment'] as String?, ); @@ -22,6 +23,7 @@ Log _$LogFromJson(Map json) { Map _$LogToJson(Log instance) => { 'id': instance.id, + 'meal': instance.mealId, 'plan': instance.planId, 'datetime': instance.datetime.toIso8601String(), 'comment': instance.comment, diff --git a/lib/providers/nutrition.dart b/lib/providers/nutrition.dart index d82f5df2d..32bc1be36 100644 --- a/lib/providers/nutrition.dart +++ b/lib/providers/nutrition.dart @@ -330,7 +330,7 @@ class NutritionPlansProvider extends WgerBaseProvider with ChangeNotifier { Future logMealToDiary(Meal meal) async { for (final item in meal.mealItems) { final plan = findById(meal.planId); - final Log log = Log.fromMealItem(item, plan.id!); + final Log log = Log.fromMealItem(item, plan.id!, meal.id!); final data = await post(log.toJson(), makeUrl(_nutritionDiaryPath)); log.id = data['id']; diff --git a/test_data/nutritional_plans.dart b/test_data/nutritional_plans.dart index 3983b92b1..fae75c854 100644 --- a/test_data/nutritional_plans.dart +++ b/test_data/nutritional_plans.dart @@ -106,9 +106,9 @@ NutritionalPlan getNutritionalPlan() { plan.meals = [meal1, meal2]; // Add logs - plan.logs.add(Log.fromMealItem(mealItem1, 1, DateTime(2021, 6, 1))); - plan.logs.add(Log.fromMealItem(mealItem2, 1, DateTime(2021, 6, 1))); - plan.logs.add(Log.fromMealItem(mealItem3, 1, DateTime(2021, 6, 10))); + plan.logs.add(Log.fromMealItem(mealItem1, 1,1, DateTime(2021, 6, 1))); + plan.logs.add(Log.fromMealItem(mealItem2, 1,1, DateTime(2021, 6, 1))); + plan.logs.add(Log.fromMealItem(mealItem3, 1,1, DateTime(2021, 6, 10))); return plan; }