29 lines
1.3 KiB
C#
29 lines
1.3 KiB
C#
using ROLAC.API.DTOs.Giving;
|
|
using ROLAC.API.DTOs.Shared;
|
|
|
|
namespace ROLAC.API.Services;
|
|
|
|
public interface IOfferingSessionService
|
|
{
|
|
Task<PagedResult<OfferingSessionListItemDto>> GetPagedAsync(
|
|
int page, int pageSize, DateOnly? from, DateOnly? to);
|
|
Task<OfferingSessionDto?> GetByIdAsync(int id);
|
|
Task<bool> DateExistsAsync(DateOnly date);
|
|
Task<int> CreateAsync(CreateOfferingSessionRequest request);
|
|
Task ReopenAsync(int id);
|
|
Task ReplaceAsync(int id, CreateOfferingSessionRequest request);
|
|
|
|
// ── Mobile offering entry (anonymous, one line at a time) ────────────────
|
|
Task<OfferingEntrySummaryDto> GetEntrySummaryAsync(DateOnly date);
|
|
Task<OfferingEntryLineAddedDto> AppendLineAsync(DateOnly date, OfferingGivingLineRequest line);
|
|
Task<List<MemberTypeaheadDto>> 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);
|
|
}
|