From 6affee7b8c5c8e3f194faadad657b9abc192c086 Mon Sep 17 00:00:00 2001 From: Francesco D'Amico Date: Wed, 5 Mar 2025 17:29:37 +0100 Subject: [PATCH] Initial Migration --- .gitignore | 1 + .../Models/BackendModels/Favorit/Favorit.cs | 10 ++++++++++ .../Models/BackendModels/File/MediaFile.cs | 11 +++++++++++ .../File/MediaFileImageInstruction.cs | 9 +++++++++ .../BackendModels/File/MediaFileImageRecipe.cs | 9 +++++++++ .../BackendModels/File/MediaFileVideoRecipe.cs | 8 ++++++++ .../Models/BackendModels/Ingredient/Ingredient.cs | 7 ++++++- .../IngredientsShoppingList.cs | 12 ++++++++++++ .../BackendModels/Instruction/Instruction.cs | 2 ++ .../Models/BackendModels/Recipe/Difficulty.cs | 12 ++++++++++++ .../Models/BackendModels/Recipe/Recipe.cs | 14 +++++++++++--- .../RecipeIngredient/RecipeIngredient.cs | 5 +++-- .../BackendModels/Shoppinglist/ShoppingList.cs | 11 +++++++++++ .../Models/BackendModels/Unit/Unit.cs | 14 ++++++++------ 14 files changed, 113 insertions(+), 12 deletions(-) create mode 100644 Francesco.Recipes.World/Models/BackendModels/Favorit/Favorit.cs create mode 100644 Francesco.Recipes.World/Models/BackendModels/File/MediaFile.cs create mode 100644 Francesco.Recipes.World/Models/BackendModels/File/MediaFileImageInstruction.cs create mode 100644 Francesco.Recipes.World/Models/BackendModels/File/MediaFileImageRecipe.cs create mode 100644 Francesco.Recipes.World/Models/BackendModels/File/MediaFileVideoRecipe.cs create mode 100644 Francesco.Recipes.World/Models/BackendModels/IngredientShoppingList/IngredientsShoppingList.cs create mode 100644 Francesco.Recipes.World/Models/BackendModels/Recipe/Difficulty.cs create mode 100644 Francesco.Recipes.World/Models/BackendModels/Shoppinglist/ShoppingList.cs diff --git a/.gitignore b/.gitignore index 61101b4..ad9a362 100644 --- a/.gitignore +++ b/.gitignore @@ -397,3 +397,4 @@ FodyWeavers.xsd # JetBrains Rider *.sln.iml src/Recruitment.Tool.xml +/Francesco.Recipes.World/Migrations/20250304095839_AddFewNewBackendModels.Designer.cs diff --git a/Francesco.Recipes.World/Models/BackendModels/Favorit/Favorit.cs b/Francesco.Recipes.World/Models/BackendModels/Favorit/Favorit.cs new file mode 100644 index 0000000..0e91d0e --- /dev/null +++ b/Francesco.Recipes.World/Models/BackendModels/Favorit/Favorit.cs @@ -0,0 +1,10 @@ +namespace Francesco.Recipes.World.Models.BackendModels.Favorit +{ + using Francesco.Recipes.World.Models.BackendModels.Recipe; + public class Favorit + { + public Guid Id { get; set; } + public DateTime CreatedAt { get; set; } + public virtual Recipe Recipe { get; set; } = new(); + } +} diff --git a/Francesco.Recipes.World/Models/BackendModels/File/MediaFile.cs b/Francesco.Recipes.World/Models/BackendModels/File/MediaFile.cs new file mode 100644 index 0000000..888a735 --- /dev/null +++ b/Francesco.Recipes.World/Models/BackendModels/File/MediaFile.cs @@ -0,0 +1,11 @@ +using Francesco.Recipes.World.Models.BackendModels.File; +using Francesco.Recipes.World.Models.BackendModels.Instruction; +using Francesco.Recipes.World.Models.BackendModels.Recipe; + +public abstract class MediaFile +{ + public Guid Id { get; set; } = Guid.NewGuid(); + public string? FileName { get; set; } + public string? MimeType { get; set; } + public byte[]? Data { get; set; } +} diff --git a/Francesco.Recipes.World/Models/BackendModels/File/MediaFileImageInstruction.cs b/Francesco.Recipes.World/Models/BackendModels/File/MediaFileImageInstruction.cs new file mode 100644 index 0000000..70ac229 --- /dev/null +++ b/Francesco.Recipes.World/Models/BackendModels/File/MediaFileImageInstruction.cs @@ -0,0 +1,9 @@ +namespace Francesco.Recipes.World.Models.BackendModels.File +{ + using Francesco.Recipes.World.Models.BackendModels.Instruction; + + public class MediaFileImageInstruction : MediaFile + { + public virtual Instruction Instruction { get; set; } + } +} diff --git a/Francesco.Recipes.World/Models/BackendModels/File/MediaFileImageRecipe.cs b/Francesco.Recipes.World/Models/BackendModels/File/MediaFileImageRecipe.cs new file mode 100644 index 0000000..fdac8c4 --- /dev/null +++ b/Francesco.Recipes.World/Models/BackendModels/File/MediaFileImageRecipe.cs @@ -0,0 +1,9 @@ +namespace Francesco.Recipes.World.Models.BackendModels.File +{ + using Francesco.Recipes.World.Models.BackendModels.Recipe; + + public class MediaFileImageRecipe : MediaFile + { + public virtual Recipe Recipe { get; set; } + } +} diff --git a/Francesco.Recipes.World/Models/BackendModels/File/MediaFileVideoRecipe.cs b/Francesco.Recipes.World/Models/BackendModels/File/MediaFileVideoRecipe.cs new file mode 100644 index 0000000..14dd710 --- /dev/null +++ b/Francesco.Recipes.World/Models/BackendModels/File/MediaFileVideoRecipe.cs @@ -0,0 +1,8 @@ +namespace Francesco.Recipes.World.Models.BackendModels.File +{ + using Francesco.Recipes.World.Models.BackendModels.Recipe; + public class MediaFileVideoRecipe : MediaFile + { + public virtual Recipe Recipe { get; set; } + } +} diff --git a/Francesco.Recipes.World/Models/BackendModels/Ingredient/Ingredient.cs b/Francesco.Recipes.World/Models/BackendModels/Ingredient/Ingredient.cs index 96f377f..a657e98 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Ingredient/Ingredient.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Ingredient/Ingredient.cs @@ -1,11 +1,16 @@ namespace Francesco.Recipes.World.Models.BackendModels.Ingredient { + using Francesco.Recipes.World.Models.BackendModels.IngredientShoppingList; + using Francesco.Recipes.World.Models.BackendModels.RecipeIngredient; using Francesco.Recipes.World.Models.BackendModels.Unit; + public class Ingredient { public Guid Id { get; set; } public string Name { get; set; } - public virtual Unit Unit { get; set; } = new(); public int Quantity { get; set; } + public virtual ICollection RecipeIngredients { get; set; } = new List(); + public virtual ICollection IngredientShoppingLists { get; set; } = new List(); + public virtual Unit Unit { get; set; } = new(); } } diff --git a/Francesco.Recipes.World/Models/BackendModels/IngredientShoppingList/IngredientsShoppingList.cs b/Francesco.Recipes.World/Models/BackendModels/IngredientShoppingList/IngredientsShoppingList.cs new file mode 100644 index 0000000..c527693 --- /dev/null +++ b/Francesco.Recipes.World/Models/BackendModels/IngredientShoppingList/IngredientsShoppingList.cs @@ -0,0 +1,12 @@ +namespace Francesco.Recipes.World.Models.BackendModels.IngredientShoppingList +{ + using Francesco.Recipes.World.Models.BackendModels.Ingredient; + using Francesco.Recipes.World.Models.BackendModels.Shoppinglist; + + public class IngredientsShoppingList + { + public Guid Id { get; set; } + public ShoppingList Shoppinglist { get; set; } = new(); + public Ingredient Ingredient { get; set; } = new(); + } +} diff --git a/Francesco.Recipes.World/Models/BackendModels/Instruction/Instruction.cs b/Francesco.Recipes.World/Models/BackendModels/Instruction/Instruction.cs index 36a2bd1..ee67e89 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Instruction/Instruction.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Instruction/Instruction.cs @@ -1,5 +1,6 @@ namespace Francesco.Recipes.World.Models.BackendModels.Instruction { + using Francesco.Recipes.World.Models.BackendModels.File; using Francesco.Recipes.World.Models.BackendModels.Recipe; public class Instruction { @@ -7,5 +8,6 @@ public string Description { get; set; } public string Number { get; set; } public virtual Recipe Recipe { get; set; } = new(); + public ICollection MediaFileImageInstructions { get; set; } = new List(); } } diff --git a/Francesco.Recipes.World/Models/BackendModels/Recipe/Difficulty.cs b/Francesco.Recipes.World/Models/BackendModels/Recipe/Difficulty.cs new file mode 100644 index 0000000..3c3036e --- /dev/null +++ b/Francesco.Recipes.World/Models/BackendModels/Recipe/Difficulty.cs @@ -0,0 +1,12 @@ +namespace Francesco.Recipes.World.Models.BackendModels.Recipe +{ + public enum Difficulty + { + VeryEasy = 1, + Easy = 2, + Medium = 3, + Hard = 4, + Expert = 5 + } + +} diff --git a/Francesco.Recipes.World/Models/BackendModels/Recipe/Recipe.cs b/Francesco.Recipes.World/Models/BackendModels/Recipe/Recipe.cs index 1712072..2ce3413 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Recipe/Recipe.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Recipe/Recipe.cs @@ -1,5 +1,8 @@ namespace Francesco.Recipes.World.Models.BackendModels.Recipe { + using Francesco.Recipes.World.Models.BackendModels.Category; + using Francesco.Recipes.World.Models.BackendModels.Favorit; + using Francesco.Recipes.World.Models.BackendModels.File; using Francesco.Recipes.World.Models.BackendModels.Instruction; using Francesco.Recipes.World.Models.BackendModels.RecipeIngredient; @@ -8,11 +11,16 @@ public Guid Id { get; set; } public string Name { get; set; } public string Description { get; set; } - public string Difficulty { get; set; } + public Difficulty Difficulty { get; set; } public int Servings { get; set; } public TimeSpan PreparationTime { get; set; } public TimeSpan CookingTime { get; set; } - public virtual ICollection RecipeIngredients { get; set; } = new List(); - public virtual ICollection Instructions { get; set; } = new List(); + public bool IsFavorite { get; set; } + public virtual ICollection RecipeIngredients { get; set; } = new List(); + public virtual ICollection Instructions { get; set; } = new List(); + public virtual ICollection Images { get; set; } = new List(); + public virtual ICollection Videos { get; set; } = new List(); + public virtual Category Category { get; set; } = new(); + public virtual Favorit Favorit { get; set; } = new(); } } diff --git a/Francesco.Recipes.World/Models/BackendModels/RecipeIngredient/RecipeIngredient.cs b/Francesco.Recipes.World/Models/BackendModels/RecipeIngredient/RecipeIngredient.cs index 79dea52..84ddb82 100644 --- a/Francesco.Recipes.World/Models/BackendModels/RecipeIngredient/RecipeIngredient.cs +++ b/Francesco.Recipes.World/Models/BackendModels/RecipeIngredient/RecipeIngredient.cs @@ -5,7 +5,8 @@ public class RecipeIngredient { public Guid Id { get; set; } - public virtual Recipe Recipe { get; set; } = new (); - public virtual Ingredient Ingredient { get; set; } = new (); + public Guid RecipeId { get; set; } + public virtual Recipe Recipe { get; set; } = new(); + public virtual Ingredient Ingredient { get; set; } = new(); } } diff --git a/Francesco.Recipes.World/Models/BackendModels/Shoppinglist/ShoppingList.cs b/Francesco.Recipes.World/Models/BackendModels/Shoppinglist/ShoppingList.cs new file mode 100644 index 0000000..bcb1629 --- /dev/null +++ b/Francesco.Recipes.World/Models/BackendModels/Shoppinglist/ShoppingList.cs @@ -0,0 +1,11 @@ +using Francesco.Recipes.World.Models.BackendModels.IngredientShoppingList; + +namespace Francesco.Recipes.World.Models.BackendModels.Shoppinglist +{ + public class ShoppingList + { + public Guid Id { get; set; } + public DateTime CreatedAt { get; set; } + public virtual ICollection IngredientsShoppingLists { get; set; } = new List(); + } +} diff --git a/Francesco.Recipes.World/Models/BackendModels/Unit/Unit.cs b/Francesco.Recipes.World/Models/BackendModels/Unit/Unit.cs index 19ba712..3806b7c 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Unit/Unit.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Unit/Unit.cs @@ -1,11 +1,13 @@ -namespace Francesco.Recipes.World.Models.BackendModels.Unit + + +namespace Francesco.Recipes.World.Models.BackendModels.Unit { using Francesco.Recipes.World.Models.BackendModels.Ingredient; - public class Unit { - public Guid Id { get; set; } - public string Name { get; set; } - public virtual ICollection Recipes { get; set; } = new List(); - } + public Guid Id{ get; set; } + public string Name{ get; set; } + public string Symbol { get; set; } + public virtual ICollection Ingredients { get; set; } = new List(); + } }