Add contracts annotations

This commit is contained in:
Sergey Nazarov 2024-03-28 09:00:44 +03:00
parent 74e0e65f53
commit 1f5cc40e54
6 changed files with 65 additions and 3 deletions

View File

@ -5,11 +5,13 @@
<Nullable>enable</Nullable>
<MicrosoftVersion>8.0.0</MicrosoftVersion>
</PropertyGroup>
<ItemGroup Label="Nocr">
<PackageVersion Include="Nocr.TelegramListener.Async.Api.Contracts" Version="0.4.22" />
</ItemGroup>
<ItemGroup>
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.5.0" />
</ItemGroup>
<ItemGroup Label="Serilog">
<PackageVersion Include="Nocr.TelegramListener.Async.Api.Contracts" Version="0.4.15" />
<PackageVersion Include="RestEase" Version="1.6.4" />
<PackageVersion Include="Serilog" Version="3.1.1" />
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.1" />

View File

@ -4,15 +4,33 @@ public sealed class TextMatchData
{
public long Id { get; set; }
/// <summary>
/// Идентификатор владельца матча
/// </summary>
public long UserId { get; set; }
/// <summary>
/// Username чата
/// </summary>
public string ChatUsername { get; set; }
/// <summary>
/// Шаблон совпадения
/// </summary>
public string Template { get; set; }
/// <summary>
/// Активен ли матч
/// </summary>
public bool Active { get; set; }
/// <summary>
/// Тип матча
/// </summary>
public TextMatchRule Rule { get; set; }
/// <summary>
/// Дата создания
/// </summary>
public DateTimeOffset CreatedDateTime { get; set; }
}

View File

@ -2,11 +2,23 @@ namespace Nocr.TextMatcher.Api.Contracts.TextMatches.Requests;
public class CreateTextMatchRequest
{
/// <summary>
/// Идентификатор пользователя в системе
/// </summary>
public long UserId { get; set; }
/// <summary>
/// Username чата, на который нужно подписаться
/// </summary>
public string ChatUsername { get; set; }
/// <summary>
/// Шаблон совпадения
/// </summary>
public string Template { get; set; }
/// <summary>
/// Тип совпадения
/// </summary>
public TextMatchRule Rule { get; set; }
}

View File

@ -45,7 +45,7 @@ public sealed class MessageReceivedHandler : IHandleMessages<MessageReceived>
Rule = (int)match.Rule,
Template = match.Template,
Text = message.Text,
FromUsername = message.FromUsername,
From = message.From,
OccuredDateTime = message.OccuredDateTime,
PublishedDateTime = _dateProvider.UtcNow
};

View File

@ -4,5 +4,8 @@ public class TextMatchCreated : IEvent
{
public Guid Id => Guid.NewGuid();
/// <summary>
/// Username чата на который нужно подписаться
/// </summary>
public string ChatUsername { get; set; } = null!;
}

View File

@ -4,21 +4,48 @@ public class TextMatchMatched : IEvent
{
public Guid Id => Guid.NewGuid();
/// <summary>
/// Идентификатор матча
/// </summary>
public long MatchId { get; set; }
/// <summary>
/// Идентификатор владельца матча
/// </summary>
public long MatchUserId { get; set; }
/// <summary>
/// Username чата
/// </summary>
public string ChatUsername { get; set; }
/// <summary>
/// Правило совпадения
/// </summary>
public int Rule { get; set; }
/// <summary>
/// Шаблон совпадения
/// </summary>
public string Template { get; set; }
public string? FromUsername { get; set; }
/// <summary>
/// Имя или username отправителя
/// </summary>
public string? From { get; set; }
/// <summary>
/// Текст сообщения
/// </summary>
public string Text { get; set; }
/// <summary>
/// Дата получения сообщения слушателем
/// </summary>
public DateTimeOffset OccuredDateTime { get; set; }
/// <summary>
/// Дата публикации события в очередь
/// </summary>
public DateTimeOffset PublishedDateTime { get; set; }
}