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.cache.queue
/// - RoutingKey: system.cache.clear
/// </summary>
[MessageRoute(
    ExchangeName = "dpz.system.exchange",
    QueueName = "dpz.system.cache.queue",
    RoutingKey = "system.cache.clear"
)]
public class ClearCacheMessage : MessageBase
{
    /// <summary>
    /// 缓存类型(如:Article,空表示清除所有)
    /// </summary>
    public MessageQueueBusinessType? CacheType { get; set; }

    /// <summary>
    /// 缓存键模式(支持通配符,如:article:*)
    /// </summary>
    public List<string> CacheKeyPatterns { get; set; } = [];

    /// <summary>
    /// 是否清除所有缓存
    /// </summary>
    public bool ClearAll { get; set; } = false;

    /// <summary>
    /// 原因说明
    /// </summary>
    public string? Reason { get; set; }
}
评论加载中...