- POST /v1/in/stats/history/list: 메시지별 발송 이력 목록 조회 (keyword/status/date 필터, 페이지네이션) - POST /v1/in/stats/history/detail: 특정 메시지 상세 이력 조회 (기본정보+집계+실패사유 Top 5+본문) - SendStatus.Determine() 규칙 재사용 Closes #233
44 lines
1.1 KiB
C#
44 lines
1.1 KiB
C#
using System.Text.Json.Serialization;
|
|
using SPMS.Application.DTOs.Notice;
|
|
|
|
namespace SPMS.Application.DTOs.Stats;
|
|
|
|
public class HistoryListResponseDto
|
|
{
|
|
[JsonPropertyName("items")]
|
|
public List<HistoryListItemDto> Items { get; set; } = [];
|
|
|
|
[JsonPropertyName("pagination")]
|
|
public PaginationDto Pagination { get; set; } = new();
|
|
}
|
|
|
|
public class HistoryListItemDto
|
|
{
|
|
[JsonPropertyName("message_code")]
|
|
public string MessageCode { get; set; } = string.Empty;
|
|
|
|
[JsonPropertyName("title")]
|
|
public string Title { get; set; } = string.Empty;
|
|
|
|
[JsonPropertyName("service_name")]
|
|
public string ServiceName { get; set; } = string.Empty;
|
|
|
|
[JsonPropertyName("sent_at")]
|
|
public DateTime? SentAt { get; set; }
|
|
|
|
[JsonPropertyName("target_count")]
|
|
public int TargetCount { get; set; }
|
|
|
|
[JsonPropertyName("success_count")]
|
|
public int SuccessCount { get; set; }
|
|
|
|
[JsonPropertyName("fail_count")]
|
|
public int FailCount { get; set; }
|
|
|
|
[JsonPropertyName("open_rate")]
|
|
public double OpenRate { get; set; }
|
|
|
|
[JsonPropertyName("status")]
|
|
public string Status { get; set; } = string.Empty;
|
|
}
|