- POST /v1/in/stats/history/export 엔드포인트 추가 - history/list와 동일 필터(keyword/status/date) 기준 엑셀 내보내기 - PushSendLogRepository에서 GroupBy 쿼리를 private helper로 리팩토링 - ClosedXML로 엑셀 생성 (메시지코드/제목/서비스명/발송일시/대상수/성공/실패/오픈율/상태) Closes #191
20 lines
1.2 KiB
C#
20 lines
1.2 KiB
C#
using SPMS.Application.DTOs.Stats;
|
|
|
|
namespace SPMS.Application.Interfaces;
|
|
|
|
public interface IStatsService
|
|
{
|
|
Task<DailyStatResponseDto> GetDailyAsync(long? serviceId, DailyStatRequestDto request);
|
|
Task<SummaryStatResponseDto> GetSummaryAsync(long? serviceId);
|
|
Task<MessageStatResponseDto> GetMessageStatAsync(long? serviceId, MessageStatRequestDto request);
|
|
Task<HourlyStatResponseDto> GetHourlyAsync(long? serviceId, HourlyStatRequestDto request);
|
|
Task<DeviceStatResponseDto> GetDeviceStatAsync(long? serviceId);
|
|
Task<SendLogDetailResponseDto> GetSendLogDetailAsync(long? serviceId, SendLogDetailRequestDto request);
|
|
Task<byte[]> ExportReportAsync(long? serviceId, StatsExportRequestDto request);
|
|
Task<FailureStatResponseDto> GetFailureStatAsync(long? serviceId, FailureStatRequestDto request);
|
|
Task<DashboardResponseDto> GetDashboardAsync(long? serviceId, DashboardRequestDto request);
|
|
Task<HistoryListResponseDto> GetHistoryListAsync(long? serviceId, HistoryListRequestDto request);
|
|
Task<HistoryDetailResponseDto> GetHistoryDetailAsync(long? serviceId, HistoryDetailRequestDto request);
|
|
Task<byte[]> ExportHistoryAsync(long? serviceId, HistoryExportRequestDto request);
|
|
}
|