import 'package:eatvio_app/features/diary/models/diary_model.dart'; import 'package:eatvio_app/features/diary/models/meal.dart'; import 'package:eatvio_app/features/diary/models/portion.dart'; import 'package:eatvio_app/features/diary/models/product.dart'; import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; import '../../../../data/models/selectionPopupModel/selection_popup_model.dart'; part 'diary_state.freezed.dart'; @freezed abstract class DiaryState with _$DiaryState { const factory DiaryState() = _DiaryState; const factory DiaryState.loading({ int? id, }) = DiaryStateLoading; const factory DiaryState.loaded({ required DiaryModel diary, String? diaryDate, required List recommendedChartValues, required List consumedChartValues, required List portions, required List mealList, required List portionList, required List autocompleteList, required Map chartData, required Meal currentMeal, required SelectionPopupModel portionController, required TimeOfDay wakeupController, required TimeOfDay retireController, TimeOfDay? mealTimeController, required TextEditingController commentController, required TextEditingController product_nameController, required TextEditingController productQuantityController, required TextEditingController caloriesController, required TextEditingController fatsController, required TextEditingController proteinsController, required TextEditingController carbsController, required int selectedMood, required int selectedSatiety, required bool wakeupExpanded, required bool moderationExpanded, required bool moodExpanded, required bool isLoading, required bool isAdded, List? chartDataCounted, }) = DiaryStateLoaded; const factory DiaryState.error({ required String errorMessage, }) = DiaryStateError; } class NutritionData { NutritionData(this.category, this.nutrition, this.color); final String category; final double nutrition; final Color color; }