using MealPlan.Api.DTOs.MealPlan;

namespace MealPlan.Api.Services;

public interface IMealPlanService
{
    Task<IReadOnlyList<MealPlanEntryDto>> GetEntriesAsync(Guid userId, DateOnly from, DateOnly to, CancellationToken ct = default);
    Task<MealPlanEntryDto?> UpsertEntryAsync(Guid userId, UpsertMealPlanEntryDto dto, CancellationToken ct = default);
    Task<bool> DeleteEntryAsync(Guid userId, int id, CancellationToken ct = default);
    Task<IReadOnlyList<ShoppingListItemDto>> GetShoppingListAsync(Guid userId, DateOnly from, DateOnly to, CancellationToken ct = default);
}
