- 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>
52 lines
1.3 KiB
C#
52 lines
1.3 KiB
C#
using System.Text.Json.Serialization;
|
|
|
|
namespace SPMS.Application.DTOs.Stats;
|
|
|
|
public class MessageStatResponseDto
|
|
{
|
|
[JsonPropertyName("message_code")]
|
|
public string MessageCode { get; set; } = string.Empty;
|
|
|
|
[JsonPropertyName("title")]
|
|
public string Title { get; set; } = string.Empty;
|
|
|
|
[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("ctr")]
|
|
public double Ctr { get; set; }
|
|
|
|
[JsonPropertyName("first_sent_at")]
|
|
public DateTime? FirstSentAt { get; set; }
|
|
|
|
[JsonPropertyName("last_sent_at")]
|
|
public DateTime? LastSentAt { get; set; }
|
|
|
|
[JsonPropertyName("daily")]
|
|
public List<MessageDailyItemDto> Daily { get; set; } = [];
|
|
}
|
|
|
|
public class MessageDailyItemDto
|
|
{
|
|
[JsonPropertyName("stat_date")]
|
|
public string StatDate { get; set; } = string.Empty;
|
|
|
|
[JsonPropertyName("send_count")]
|
|
public int SendCount { get; set; }
|
|
|
|
[JsonPropertyName("open_count")]
|
|
public int OpenCount { get; set; }
|
|
|
|
[JsonPropertyName("ctr")]
|
|
public double Ctr { get; set; }
|
|
}
|