using Health.Domain.Entities;

namespace Health.Application.Calendars;

public sealed record CalendarDataSnapshot(
    IReadOnlyList<Medication> Medications,
    IReadOnlyList<ExercisePlan> ExercisePlans,
    IReadOnlyList<FollowUp> FollowUps);

public interface ICalendarService
{
    Task<IReadOnlyList<object>> GetMonthAsync(Guid userId, int year, int month, CancellationToken ct);
    Task<object> GetDayAsync(Guid userId, DateOnly date, CancellationToken ct);
}

public interface ICalendarRepository
{
    Task<CalendarDataSnapshot> GetSnapshotAsync(Guid userId, DateOnly start, DateOnly end, CancellationToken ct);
}
