diff --git a/lib/example_data.dart b/lib/example_data.dart index 58958a9..2cd2af1 100644 --- a/lib/example_data.dart +++ b/lib/example_data.dart @@ -22,11 +22,23 @@ final List _fluid = constants.units.where((element) => element.type == UnitType.fluid).toList(); final List exampleIngredients = [ - Ingredient(title: 'Karotte', possibleUnits: _weightAndCount), - Ingredient(title: 'Kartoffel', possibleUnits: _weightAndCount), - Ingredient(title: 'Kaffeebohnen', possibleUnits: _weight), - Ingredient(title: 'Milch', possibleUnits: _fluid), - Ingredient(title: 'Limettenblätter', possibleUnits: _count), + Ingredient( + title: 'Karotte', + possibleUnits: _weightAndCount, + type: IngredientType.vegetable), + Ingredient( + title: 'Kartoffel', + possibleUnits: _weightAndCount, + type: IngredientType.vegetable), + Ingredient( + title: 'Kaffeebohnen', + possibleUnits: _weight, + type: IngredientType.other), + Ingredient(title: 'Milch', possibleUnits: _fluid, type: IngredientType.dairy), + Ingredient( + title: 'Limettenblätter', + possibleUnits: _count, + type: IngredientType.other), ]; final List exampleRecipes = [ diff --git a/lib/main.dart b/lib/main.dart index d625ea2..3cfd574 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:rezepte/pages/create_recipe_page.dart'; +import 'package:rezepte/pages/create_recipe/create_recipe_page.dart'; import 'package:rezepte/pages/dashboard_page.dart'; import 'package:rezepte/services/providers/recipe_list_provider.dart'; import 'package:rezepte/services/providers/recipe_provider.dart'; diff --git a/lib/models/ingredient.dart b/lib/models/ingredient.dart index 9efaae8..23a3007 100644 --- a/lib/models/ingredient.dart +++ b/lib/models/ingredient.dart @@ -9,21 +9,25 @@ class Ingredient { final String title; List possibleUnits; List preferredBrands; + IngredientType type; Ingredient({ required this.title, + required this.type, this.possibleUnits = const [], this.preferredBrands = const [], }); factory Ingredient.fromJson(Map json) => Ingredient( title: json['title'] as String, + type: json['ingredient_type'] as IngredientType, possibleUnits: _unitsFromJson(json['possibleUnits']), preferredBrands: json['preferredBrands'] as List, ); Map toJson() => { 'title': title, + 'ingredient_type': type, 'possibleUnits': possibleUnits.map((e) => e.toJson()).toList(), 'preferredBrands': preferredBrands, }; @@ -42,3 +46,15 @@ class Ingredient { static List _unitsFromJson(List> jsonList) => jsonList.map((e) => Unit.fromJson(e)).toList(); } + +enum IngredientType { + vegetable, + meat, + fish, + grain, + fruit, + dairy, + fatsAndOil, + spice, + other, +} diff --git a/lib/pages/create_recipe_page.dart b/lib/pages/create_recipe/create_recipe_page.dart similarity index 96% rename from lib/pages/create_recipe_page.dart rename to lib/pages/create_recipe/create_recipe_page.dart index 7f78ee9..9063e39 100644 --- a/lib/pages/create_recipe_page.dart +++ b/lib/pages/create_recipe/create_recipe_page.dart @@ -3,11 +3,11 @@ import 'package:provider/provider.dart'; import 'package:rezepte/services/providers/db/dbhelper.dart'; import 'package:rezepte/widgets/ingredients_bottomsheet.dart'; import 'package:rezepte/widgets/will_pop_scope.dart'; -import '../models/difficulty.dart'; -import '../models/ingredient_list_entry.dart'; -import '../models/recipe.dart'; -import '../services/providers/recipe_list_provider.dart'; -import '../services/providers/recipe_provider.dart'; +import '../../models/difficulty.dart'; +import '../../models/ingredient_list_entry.dart'; +import '../../models/recipe.dart'; +import '../../services/providers/recipe_list_provider.dart'; +import '../../services/providers/recipe_provider.dart'; class CreateRecipe extends StatefulWidget { const CreateRecipe({super.key}); diff --git a/lib/pages/dashboard_page.dart b/lib/pages/dashboard_page.dart index 5348354..febfe0c 100644 --- a/lib/pages/dashboard_page.dart +++ b/lib/pages/dashboard_page.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:rezepte/pages/create_recipe_page.dart'; +import 'package:rezepte/pages/create_recipe/create_recipe_page.dart'; import 'package:rezepte/widgets/recipe_list.dart'; class Dashboard extends StatelessWidget { diff --git a/lib/widgets/ingredients_bottomsheet.dart b/lib/widgets/ingredients_bottomsheet.dart index 674139b..f35430c 100644 --- a/lib/widgets/ingredients_bottomsheet.dart +++ b/lib/widgets/ingredients_bottomsheet.dart @@ -169,7 +169,8 @@ class _IngredientsBottomsheetState extends State { } bool _submit() { - final ingredient = Ingredient(title: _ingredientController.text); + final ingredient = Ingredient( + title: _ingredientController.text, type: IngredientType.other); final unit = selectedUnit; final amount = int.tryParse(_amountController.text); if (ingredient.title.isEmpty || unit == null || amount == null) {