using Hutopy.Modules.Messaging.Data; namespace Hutopy.Modules.Messaging.Handlers; public sealed class GetMessageCountRequest { public Guid SubjectId { get; set; } [BindFrom("page_size")] public int PageSize { get; set; } = 1000; } public record struct GetMessageCountResponse { public required int Count { get; init; } } public class GetMessageCount( MessagingDbContext context) : Endpoint { public override void Configure() { Get("/api/messages/{SubjectId:guid}/count"); Options(o => o.WithTags("Messages")); AllowAnonymous(); } public override async Task HandleAsync( GetMessageCountRequest req, CancellationToken ct) { var messageCount = await context.GetMessageCountAsync( req.SubjectId, null, req.PageSize, ct); await SendAsync( new() { Count = messageCount }, cancellation: ct); } }