From cac83e38a8f2e3350714205cd4a67f2b55a8020b Mon Sep 17 00:00:00 2001 From: Francesco Lorenzo D'Amico Date: Mon, 2 Mar 2026 15:59:48 +0100 Subject: [PATCH] Introduce IFavoritable and adopt across Recipe and view models --- .../Models/BackendModels/Recipe/Recipe.cs | 2 +- .../Models/FavoritButtonViewModel.cs | 9 +++++++++ Francesco.Recipes.World/Models/IsFavoritable.cs | 9 +++++++++ .../Models/RecipeCardViewModel.cs | 17 +++++++++++++++++ 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 Francesco.Recipes.World/Models/FavoritButtonViewModel.cs create mode 100644 Francesco.Recipes.World/Models/IsFavoritable.cs create mode 100644 Francesco.Recipes.World/Models/RecipeCardViewModel.cs diff --git a/Francesco.Recipes.World/Models/BackendModels/Recipe/Recipe.cs b/Francesco.Recipes.World/Models/BackendModels/Recipe/Recipe.cs index 9e688a8..5597089 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Recipe/Recipe.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Recipe/Recipe.cs @@ -6,7 +6,7 @@ using Francesco.Recipes.World.Models.BackendModels.Instruction; using Francesco.Recipes.World.Models.BackendModels.MediaFile; using Francesco.Recipes.World.Models.BackendModels.RecipeIngredient; -public class Recipe : ITimeStampedEntity +public class Recipe : ITimeStampedEntity, IFavoritable { public Guid Id { get; set; } diff --git a/Francesco.Recipes.World/Models/FavoritButtonViewModel.cs b/Francesco.Recipes.World/Models/FavoritButtonViewModel.cs new file mode 100644 index 0000000..02e63a2 --- /dev/null +++ b/Francesco.Recipes.World/Models/FavoritButtonViewModel.cs @@ -0,0 +1,9 @@ +namespace Francesco.Recipes.World.Models +{ + public class FavoritButtonViewModel : IFavoritable + { + public Guid Id { get; set; } + + public bool IsFavorite { get; set; } + } +} diff --git a/Francesco.Recipes.World/Models/IsFavoritable.cs b/Francesco.Recipes.World/Models/IsFavoritable.cs new file mode 100644 index 0000000..3db1699 --- /dev/null +++ b/Francesco.Recipes.World/Models/IsFavoritable.cs @@ -0,0 +1,9 @@ +namespace Francesco.Recipes.World.Models +{ + public interface IFavoritable + { + Guid Id { get; set; } + + bool IsFavorite { get; set; } + } +} diff --git a/Francesco.Recipes.World/Models/RecipeCardViewModel.cs b/Francesco.Recipes.World/Models/RecipeCardViewModel.cs new file mode 100644 index 0000000..cc6eaa9 --- /dev/null +++ b/Francesco.Recipes.World/Models/RecipeCardViewModel.cs @@ -0,0 +1,17 @@ +namespace Francesco.Recipes.World.Models +{ + public class RecipeCardViewModel : IFavoritable + { + public Guid Id { get; set; } + + public string Name { get; set; } = string.Empty; + + public TimeSpan CookingTime { get; set; } + + public bool IsFavorite { get; set; } + + public byte[]? ImageData { get; set; } + + public string? MimeType { get; set; } + } +}