using FnbEngine.Domain.SeedWork;

namespace FnbEngine.Domain.AggregatesModel.RecipeAggregate;

public interface IRecipeRepository : IRepository<Recipe>
{
    Recipe Add(Recipe recipe);
    void Update(Recipe recipe);
    void Delete(Recipe recipe);
    Task<Recipe?> GetByIdAsync(Guid id, CancellationToken ct = default);
    Task<IEnumerable<Recipe>> GetByShopIdAsync(Guid shopId, CancellationToken ct = default);
    Task<Recipe?> GetByProductIdAndShopAsync(Guid productId, Guid shopId, CancellationToken ct = default);
}
