namespace Francesco.Recipes.World.Repositories.Recipe { using Francesco.Recipes.World.Models; using Francesco.Recipes.World.Models.BackendModels.Category; using Francesco.Recipes.World.Models.BackendModels.Recipe; public interface IRecipeRepository { Task GetRecipeAsync(Guid recipeId); Task GetRecipeByIdAsync(Guid id); Task CreateRecipeIngredientAsync(Guid recipeId, string ingredientName, int quantity, Guid unitId); Task RemoveIngredientFromRecipeAsync(Guid recipeId, Guid ingredientId); Task> GetRecipesByDifficultyAsync(Difficulty? difficulty); Task CreateRecipeForCategoryAsync(Category category, string name, string description, Difficulty difficulty, int servings, TimeSpan preparationTime, TimeSpan cookingTime); Task DeleteRecipeAsync(Guid recipeId); Task> SearchInRecipesAndIngredients(string searchTerm); } }