import 'package:eatvio_app/features/diary/models/consultant_review_model.dart'; import 'package:eatvio_app/features/diary/models/diary_day_model.dart'; import 'package:eatvio_app/features/diary/models/nutrition_model.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; part 'diary_state.freezed.dart'; @freezed abstract class DiaryState with _$DiaryState { const factory DiaryState() = _DiaryState; const factory DiaryState.loading() = DiaryStateLoading; const factory DiaryState.error({ required String errorMessage, }) = DiaryStateError; const factory DiaryState.loaded({ required DiaryDayModel diary, required NutritionDataModel nutrition, required DateTime selectedDay, required int selectedMeal, int? chosenPlanCurrentDay, String? chosenPlanName, int? chosenPlanDuration, ConsultantReviewModel? consultantReview, @Default(false) bool isConsultantView, @Default(false) bool isDiaryFinished, @Default(false) bool isDiaryCommented, @Default(false) bool isWakeUpAndRetireEnabled, @Default(false) bool isMoodEnabled, }) = DiaryStateLoaded; const factory DiaryState.loadedTomorrowWithDiet({ required DiaryFutureDietDayModel diary, required DateTime selectedDay, required int selectedMeal, }) = DiaryStateLoadedTomorrowWithDiet; }