Response.cs 1.0 KB

12345678910111213141516171819202122232425
  1. namespace Application.Features.Admin.Dashboard.MailHealth;
  2. public sealed class Response
  3. {
  4. /// <summary>현재 발송 대기 중인 큐 깊이</summary>
  5. public int PendingCount { get; init; }
  6. /// <summary>Processing 상태로 5분 이상 갇혀있는 항목 수 (워커 다운/락 의심)</summary>
  7. public int ProcessingStuckCount { get; init; }
  8. /// <summary>가장 오래된 Pending 항목의 등록 시각 (UTC). 없으면 null.</summary>
  9. public DateTime? OldestPendingAt { get; init; }
  10. /// <summary>24시간 이상 처리 안 된 Pending 항목 수 (Janitor가 이걸 Failed로 전환해야 함)</summary>
  11. public int StalePendingCount { get; init; }
  12. /// <summary>최근 24시간 내 발송 완료 건수</summary>
  13. public int Sent24hCount { get; init; }
  14. /// <summary>최근 24시간 내 실패 확정(Dead Letter) 건수</summary>
  15. public int Failed24hCount { get; init; }
  16. /// <summary>전체 EmailLog row 수</summary>
  17. public int TotalRowCount { get; init; }
  18. }