added provider for recipe wizard

This commit is contained in:
2025-02-10 19:55:18 +01:00
parent f72e9dae2b
commit d2e3b158cb
6 changed files with 226 additions and 12 deletions

View File

@@ -6,26 +6,67 @@ class Recipe {
final String title;
final String description;
final Difficulty difficulty;
final List<IngredientListEntry> ingredients = [];
final List<String> steps = [];
final List<IngredientListEntry> ingredients;
final List<String> steps;
final DateTime datePublished;
final Duration prepTime;
final Duration cookTime;
final Duration totalTime;
final List<String> keywords = [];
final List<String> keywords;
final MealCategory mealCategory;
final Cuisine cuisine;
Recipe({
required this.id,
required this.title,
required this.description,
required this.difficulty,
this.id = -1,
this.title = '',
this.description = '',
this.difficulty = Difficulty.notSelected,
required this.datePublished,
required this.prepTime,
required this.cookTime,
required this.totalTime,
required this.mealCategory,
required this.cuisine,
this.prepTime = const Duration(),
this.cookTime = const Duration(),
this.totalTime = const Duration(),
this.mealCategory = MealCategory.notSelected,
this.cuisine = Cuisine.notSelected,
this.ingredients = const [],
this.keywords = const [],
this.steps = const [],
});
Recipe copyWith({
int? id,
String? title,
String? description,
Difficulty? difficulty,
List<IngredientListEntry>? ingredients,
List<String>? steps,
DateTime? datePublished,
Duration? prepTime,
Duration? cookTime,
Duration? totalTime,
List<String>? keywords,
MealCategory? mealCategory,
Cuisine? cuisine,
}) {
return Recipe(
id: id ?? this.id,
title: title ?? this.title,
description: description ?? this.description,
difficulty: difficulty ?? this.difficulty,
ingredients: ingredients != null
? List<IngredientListEntry>.from(ingredients)
: List<IngredientListEntry>.from(this.ingredients),
steps: steps != null
? List<String>.from(steps)
: List<String>.from(this.steps),
datePublished: datePublished ?? this.datePublished,
prepTime: prepTime ?? this.prepTime,
cookTime: cookTime ?? this.cookTime,
totalTime: totalTime ?? this.totalTime,
keywords: keywords != null
? List<String>.from(keywords)
: List<String>.from(this.keywords),
mealCategory: mealCategory ?? this.mealCategory,
cuisine: cuisine ?? this.cuisine,
);
}
}