Create all Models

This commit is contained in:
Francesco D'Amico
2025-03-18 12:02:01 +01:00
parent 6affee7b8c
commit 449533cf0b
18 changed files with 1182 additions and 495 deletions
@@ -4,7 +4,7 @@
public class Category
{
public Guid Id { get; set; }
public string Name { get; set; }
public string? Name { get; set; }
public virtual ICollection<Recipe> Recipes { get; set; } = new List<Recipe>();
}
}
@@ -5,6 +5,6 @@
{
public Guid Id { get; set; }
public DateTime CreatedAt { get; set; }
public virtual Recipe Recipe { get; set; } = new();
public virtual ICollection<Recipe> Recipe { get; set; } = new List<Recipe>();
}
}
@@ -1,11 +0,0 @@
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; }
}
@@ -1,9 +0,0 @@
namespace Francesco.Recipes.World.Models.BackendModels.File
{
using Francesco.Recipes.World.Models.BackendModels.Instruction;
public class MediaFileImageInstruction : MediaFile
{
public virtual Instruction Instruction { get; set; }
}
}
@@ -1,9 +0,0 @@
namespace Francesco.Recipes.World.Models.BackendModels.File
{
using Francesco.Recipes.World.Models.BackendModels.Recipe;
public class MediaFileImageRecipe : MediaFile
{
public virtual Recipe Recipe { get; set; }
}
}
@@ -1,8 +0,0 @@
namespace Francesco.Recipes.World.Models.BackendModels.File
{
using Francesco.Recipes.World.Models.BackendModels.Recipe;
public class MediaFileVideoRecipe : MediaFile
{
public virtual Recipe Recipe { get; set; }
}
}
@@ -0,0 +1,9 @@
namespace Francesco.Recipes.World.Models.BackendModels
{
public interface ITimeStampedEntity
{
DateTime CreatedAt { get; set; }
DateTime? ModifiedAt { get; set; }
}
}
@@ -7,10 +7,8 @@
public class Ingredient
{
public Guid Id { get; set; }
public string Name { get; set; }
public int Quantity { get; set; }
public string? Name { get; set; }
public virtual ICollection<RecipeIngredient> RecipeIngredients { get; set; } = new List<RecipeIngredient>();
public virtual ICollection<IngredientsShoppingList> IngredientShoppingLists { get; set; } = new List<IngredientsShoppingList>();
public virtual Unit Unit { get; set; } = new();
}
}
@@ -1,13 +1,13 @@
namespace Francesco.Recipes.World.Models.BackendModels.Instruction
{
using Francesco.Recipes.World.Models.BackendModels.File;
using Francesco.Recipes.World.Models.BackendModels.MediaFile;
using Francesco.Recipes.World.Models.BackendModels.Recipe;
public class Instruction
{
public Guid Id { get; set; }
public string Description { get; set; }
public string Number { get; set; }
public string? Description { get; set; }
public string? Number { get; set; }
public virtual Recipe Recipe { get; set; } = new();
public ICollection<MediaFileImageInstruction> MediaFileImageInstructions { get; set; } = new List<MediaFileImageInstruction>();
public virtual ICollection<MediaFile> MediaFiles { get; set; } = new List<MediaFile>();
}
}
@@ -0,0 +1,17 @@
namespace Francesco.Recipes.World.Models.BackendModels.MediaFile
{
using Francesco.Recipes.World.Models.BackendModels.Instruction;
using Francesco.Recipes.World.Models.BackendModels.Recipe;
public class MediaFile
{
public Guid Id { get; set; } = Guid.NewGuid();
public string? FileName { get; set; }
public string? MimeType { get; set; }
public byte[]? Data { get; set; }
public virtual Recipe? Recipe { get; set; } = new();
public virtual Instruction Instruction { get; set; } = new();
}
}
@@ -2,25 +2,24 @@
{
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.MediaFile;
using Francesco.Recipes.World.Models.BackendModels.RecipeIngredient;
public class Recipe
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string? Name { get; set; }
public string? Description { get; set; }
public Difficulty Difficulty { get; set; }
public int Servings { get; set; }
public TimeSpan PreparationTime { get; set; }
public TimeSpan CookingTime { get; set; }
public bool IsFavorite { get; set; }
public DateTime CreatedAt { get; set; }
public virtual ICollection<RecipeIngredient> RecipeIngredients { get; set; } = new List<RecipeIngredient>();
public virtual ICollection<Instruction> Instructions { get; set; } = new List<Instruction>();
public virtual ICollection<MediaFileImageRecipe> Images { get; set; } = new List<MediaFileImageRecipe>();
public virtual ICollection<MediaFileVideoRecipe> Videos { get; set; } = new List<MediaFileVideoRecipe>();
public virtual Category Category { get; set; } = new();
public virtual ICollection<MediaFile> MediaFiles { get; set; } = new List<MediaFile>();
public virtual Favorit Favorit { get; set; } = new();
}
}
@@ -2,11 +2,13 @@
{
using Francesco.Recipes.World.Models.BackendModels.Ingredient;
using Francesco.Recipes.World.Models.BackendModels.Recipe;
using Francesco.Recipes.World.Models.BackendModels.Unit;
public class RecipeIngredient
{
public Guid Id { get; set; }
public Guid RecipeId { get; set; }
public virtual Recipe Recipe { get; set; } = new();
public virtual Ingredient Ingredient { get; set; } = new();
public virtual Unit Unit { get; set; } = new();
public int Quantity { get; set; }
}
}
@@ -3,11 +3,12 @@
namespace Francesco.Recipes.World.Models.BackendModels.Unit
{
using Francesco.Recipes.World.Models.BackendModels.Ingredient;
using Francesco.Recipes.World.Models.BackendModels.RecipeIngredient;
public class Unit
{
public Guid Id{ get; set; }
public string Name{ get; set; }
public string Symbol { get; set; }
public virtual ICollection<Ingredient> Ingredients { get; set; } = new List<Ingredient>();
public string? Name { get; set; }
public string? Symbol { get; set; }
public virtual ICollection<RecipeIngredient> RecipeIngredient { get; set; } = new List<RecipeIngredient>();
}
}