using Nocr.TextMatcher.Contracts; namespace Nocr.TextMatcher.Async.Api.Contracts; public class TextSubscriptionMatched : IEvent { public Guid Id => Guid.NewGuid(); /// /// Идентификатор матча /// public long SubscriptionId { get; set; } /// /// Идентификатор владельца матча /// public long SubscriptionUserId { get; set; } /// /// Username чата /// public string ChatUsername { get; set; } /// /// Правило совпадения /// public TextSubscriptionRule Rule { get; set; } /// /// Шаблон совпадения /// public string Template { get; set; } /// /// Имя или username отправителя /// public string? From { get; set; } /// /// Текст сообщения /// public string Text { get; set; } /// /// Дата получения сообщения слушателем /// public DateTimeOffset OccuredDateTime { get; set; } /// /// Дата публикации события в очередь /// public DateTimeOffset PublishedDateTime { get; set; } }