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> <Nullable>enable</Nullable>
<MicrosoftVersion>8.0.0</MicrosoftVersion> <MicrosoftVersion>8.0.0</MicrosoftVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup Label="Nocr">
<PackageVersion Include="Nocr.TelegramListener.Async.Api.Contracts" Version="0.4.22" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.5.0" /> <PackageVersion Include="Swashbuckle.AspNetCore" Version="6.5.0" />
</ItemGroup> </ItemGroup>
<ItemGroup Label="Serilog"> <ItemGroup Label="Serilog">
<PackageVersion Include="Nocr.TelegramListener.Async.Api.Contracts" Version="0.4.15" />
<PackageVersion Include="RestEase" Version="1.6.4" /> <PackageVersion Include="RestEase" Version="1.6.4" />
<PackageVersion Include="Serilog" Version="3.1.1" /> <PackageVersion Include="Serilog" Version="3.1.1" />
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.1" /> <PackageVersion Include="Serilog.AspNetCore" Version="8.0.1" />

View File

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

View File

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

View File

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

View File

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

View File

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