Files
eatvio_app/lib/features/recipes/presentation/bloc/recipe_create_state.dart
2024-10-24 16:59:51 +03:00

45 lines
1.7 KiB
Dart

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<TextEditingController> stepControllers,
XFile? recipeImage,
required List<XFile?> stepImages,
required List<Ingredient> ingredients,
required List<Product> autocompleteList,
required int numberOfSteps,
required bool ingredientAsItems,
required List<SelectionPopupModel> types,
required List<SelectionPopupModel> cookingTimes,
required List<SelectionPopupModel> statuses,
required SelectionPopupModel selectedType,
required SelectionPopupModel selectedCookingTime,
required SelectionPopupModel selectedStatus,
}) = RecipeCreateStateLoaded;
const factory RecipeCreateState.error({
required String errorMessage,
}) = RecipeCreateStateError;
}