using Models;
using System.Collections.Immutable;
namespace Services
{
///
/// The services that is in charge of handling the application's recipes.
///
public interface IRecipesService
{
///
///
///
/// A list containg the popular recipes of the week
public ImmutableList PopularRecipes();
///
/// performs a search over all the recipes
///
/// A list containg the recipes that matches the prompt
public ImmutableList SearchRecipes(string prompt);
///
/// Retrieves a recipe from given RecipeInfo
///
/// the informations about the recipe that we want to retrieve
/// some recipe if the recipe was found, null else
public Recipe? GetRecipe(RecipeInfo info);
///
/// Gets the service that is in charge of handling the account's owned recipes.
/// The account's owned recipes are the recipes that the account created.
///
/// The account logged in
/// The service that handles the given account's recipes
public IAccountOwnedRecipesService GetRecipesOf(Account account);
///
/// Gets the service that handles all the preferences of the given account
///
/// The account logged in
///
/// The service that handles the given account's preferences
///
public IAccountRecipesPreferencesService GetPreferencesOf(Account account);
}
}