using ROLAC.API.DTOs.MealAttendance; namespace ROLAC.API.Services; public interface IMealAttendanceService { /// Today's date in the server's local time zone (the church's "current Sunday"). DateOnly Today { get; } /// Returns the counts for , creating a zeroed row if none exists. Task GetOrCreateAsync(DateOnly date); /// /// Atomically adds (may be negative) to one age-group column, /// clamped at zero, and returns the resulting authoritative counts. /// Task IncrementAsync(DateOnly date, string category, int delta); /// /// Sets one age-group column to an absolute (clamped at zero), /// overwriting the current count, and returns the resulting authoritative counts. /// Task SetAsync(DateOnly date, string category, int value); /// Returns the daily counts within the inclusive date range, ordered by date (for the dashboard). Task> GetRangeAsync(DateOnly from, DateOnly to); }