using Dpz.Core.Entity.Base;
using Dpz.Core.MessageQueue.Attributes;
using Dpz.Core.MessageQueue.Enums;

namespace Dpz.Core.Public.ViewModel.Messages;

/// <summary>
/// 批次完成消息
/// 约定路由:
/// - Exchange: dpz.system.exchange
/// - Queue: dpz.system.batch.queue
/// - RoutingKey: system.batch.completion
/// </summary>
[MessageRoute(
    ExchangeName = "dpz.system.exchange",
    QueueName = "dpz.system.batch.queue",
    RoutingKey = "system.batch.completion"
)]
public class BatchCompletionMessage : MessageBase
{
    /// <summary>
    /// 批次中的消息总数
    /// </summary>
    public int TotalMessages { get; set; }

    /// <summary>
    /// 批次类型(如:NewsArticle, DataSync等)
    /// </summary>
    public MessageQueueBusinessType BatchType { get; set; }

    /// <summary>
    /// 批次开始时间
    /// </summary>
    public DateTime StartTime { get; set; }

    /// <summary>
    /// 批次结束时间
    /// </summary>
    public DateTime EndTime { get; set; }

    /// <summary>
    /// 额外的元数据
    /// </summary>
    public Dictionary<string, string> Metadata { get; set; } = new();
}
评论加载中...