import 'package:eatvio_app/features/recipes/models/recipe_model.dart'; import 'package:eatvio_app/features/recipes/models/ingredient.dart'; import 'package:eatvio_app/features/recipes/models/product.dart'; import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:image_picker/image_picker.dart'; import '../../../../data/models/selectionPopupModel/selection_popup_model.dart'; part 'recipe_create_state.freezed.dart'; @freezed abstract class RecipeCreateState with _$RecipeCreateState { const factory RecipeCreateState() = _RecipeCreateState; const factory RecipeCreateState.loading() = RecipeCreateStateLoading; const factory RecipeCreateState.loaded({ RecipeModel? recipe, required ImagePicker picker, required TextEditingController titleController, required TextEditingController productNameController, required TextEditingController ingredientController, required TextEditingController stepDescriptionController, required TextEditingController youtubeLinkController, required List stepControllers, XFile? recipeImage, required List stepImages, required List ingredients, required List autocompleteList, required int numberOfSteps, required bool ingredientAsItems, required List types, required List cookingTimes, required List statuses, required SelectionPopupModel selectedType, required SelectionPopupModel selectedCookingTime, required SelectionPopupModel selectedStatus, }) = RecipeCreateStateLoaded; const factory RecipeCreateState.error({ required String errorMessage, }) = RecipeCreateStateError; }