using MealPlan.Api.DTOs.IngredientCatalog;

namespace MealPlan.Api.Services;

public interface IIngredientCatalogService
{
    Task<IReadOnlyList<IngredientCategoryDto>> GetCategoriesAsync(CancellationToken ct = default);
    Task<IReadOnlyList<IngredientNutritionItemDto>> GetItemsAsync(
        string? categoryCode,
        string? search,
        CancellationToken ct = default);
    Task<IngredientNutritionItemDto?> GetItemByIdAsync(int id, CancellationToken ct = default);
    Task<IngredientNutritionItemDto?> CreateItemAsync(UpsertIngredientNutritionItemDto dto, CancellationToken ct = default);
    Task<IngredientNutritionItemDto?> UpdateItemAsync(int id, UpsertIngredientNutritionItemDto dto, CancellationToken ct = default);
    Task<bool> DeleteItemAsync(int id, CancellationToken ct = default);
}
