SPMS_API/SPMS.Application/DTOs/Stats/DailyStatResponseDto.cs
seonkyu.kim 0911fc763a feat: 통계 API 구현 (8.1~8.5) (#132)
- POST /v1/in/stats/daily: 기간별 일별 통계
- POST /v1/in/stats/summary: 대시보드 요약 통계
- POST /v1/in/stats/message: 메시지별 발송 통계
- POST /v1/in/stats/hourly: 시간대별 발송 추이
- POST /v1/in/stats/device: 디바이스 분포 통계
- IDailyStatRepository, DailyStatRepository 신규
- IPushSendLogRepository 통계 메서드 확장

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 23:08:04 +09:00

52 lines
1.2 KiB
C#

using System.Text.Json.Serialization;
namespace SPMS.Application.DTOs.Stats;
public class DailyStatResponseDto
{
[JsonPropertyName("items")]
public List<DailyStatItemDto> Items { get; set; } = [];
[JsonPropertyName("summary")]
public DailyStatSummaryDto Summary { get; set; } = new();
}
public class DailyStatItemDto
{
[JsonPropertyName("stat_date")]
public string StatDate { get; set; } = string.Empty;
[JsonPropertyName("send_count")]
public int SendCount { get; set; }
[JsonPropertyName("success_count")]
public int SuccessCount { get; set; }
[JsonPropertyName("fail_count")]
public int FailCount { get; set; }
[JsonPropertyName("open_count")]
public int OpenCount { get; set; }
[JsonPropertyName("ctr")]
public double Ctr { get; set; }
}
public class DailyStatSummaryDto
{
[JsonPropertyName("total_send")]
public int TotalSend { get; set; }
[JsonPropertyName("total_success")]
public int TotalSuccess { get; set; }
[JsonPropertyName("total_fail")]
public int TotalFail { get; set; }
[JsonPropertyName("total_open")]
public int TotalOpen { get; set; }
[JsonPropertyName("avg_ctr")]
public double AvgCtr { get; set; }
}