using ROLAC.API.DTOs.Giving; using ROLAC.API.DTOs.Shared; namespace ROLAC.API.Services; public interface IOfferingSessionService { Task> GetPagedAsync( int page, int pageSize, DateOnly? from, DateOnly? to); Task GetByIdAsync(int id); Task DateExistsAsync(DateOnly date); Task CreateAsync(CreateOfferingSessionRequest request); Task ReopenAsync(int id); Task ReplaceAsync(int id, CreateOfferingSessionRequest request); // ── Mobile offering entry (anonymous, one line at a time) ──────────────── Task GetEntrySummaryAsync(DateOnly date); Task AppendLineAsync(DateOnly date, OfferingGivingLineRequest line); Task> SearchMembersForEntryAsync(string? search, int take); Task SaveProofAsync(int id, Stream content, string fileName); Task<(Stream stream, string contentType)?> OpenProofAsync(int id); Task DeleteProofAsync(int id); // Date-keyed variants for the anonymous mobile page (knows the date, not the id). Task SaveProofForDateAsync(DateOnly date, Stream content, string fileName); Task<(Stream stream, string contentType)?> OpenProofForDateAsync(DateOnly date); }