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/photo.dart'; import 'package:eatvio_app/features/diary/models/portion.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() = DiaryStateLoading; const factory DiaryState.loaded({ required DiaryModel diary, String? diaryDate, required List autocompleteList, required List recommendedChartValues, required List consumedChartValues, required List portions, required List photos, required Meal currentMeal, SelectionPopupModel? portionController, TimeOfDay? wakeupController, TimeOfDay? retireController, TimeOfDay? mealTimeController, required TextEditingController commentController, required TextEditingController productNameController, required TextEditingController productQuantityController, required TextEditingController caloriesController, required TextEditingController fatsController, required TextEditingController proteinsController, required TextEditingController carbsController, int? selectedMood, int? selectedSatiety, required bool wakeupExpanded, required bool moderationExpanded, required bool moodExpanded, required bool isLoading, required bool isAdded, }) = DiaryStateLoaded; const factory DiaryState.error({ required String errorMessage, }) = DiaryStateError; }