SPMS_API/SPMS.Application/DTOs/Push/PushMessageDto.cs
seonkyu.kim 830cbf2edc feat: 대용량 발송/상태조회/취소 API 구현 (#130)
- POST /v1/in/push/send/bulk: CSV 대량 발송 (비동기)
- POST /v1/in/push/job/status: Job 상태 조회
- POST /v1/in/push/job/cancel: Job 취소
- BulkJobStore: Redis Hash 기반 Job 상태 관리
- PushWorker: Job 진행률 추적 및 취소 체크

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:55:39 +09:00

46 lines
1.2 KiB
C#

using System.Text.Json.Serialization;
namespace SPMS.Application.DTOs.Push;
public class PushMessageDto
{
[JsonPropertyName("message_id")]
public string MessageId { get; set; } = string.Empty;
[JsonPropertyName("request_id")]
public string RequestId { get; set; } = string.Empty;
[JsonPropertyName("service_id")]
public long ServiceId { get; set; }
[JsonPropertyName("send_type")]
public string SendType { get; set; } = string.Empty;
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
[JsonPropertyName("body")]
public string Body { get; set; } = string.Empty;
[JsonPropertyName("image_url")]
public string? ImageUrl { get; set; }
[JsonPropertyName("link_url")]
public string? LinkUrl { get; set; }
[JsonPropertyName("custom_data")]
public Dictionary<string, object>? CustomData { get; set; }
[JsonPropertyName("target")]
public PushTargetDto Target { get; set; } = new();
[JsonPropertyName("created_by")]
public long CreatedBy { get; set; }
[JsonPropertyName("created_at")]
public string CreatedAt { get; set; } = string.Empty;
[JsonPropertyName("job_id")]
public string? JobId { get; set; }
}