- 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>
46 lines
1.2 KiB
C#
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; }
|
|
}
|