Add MinMinutesSinceLastChange filter to envelope query

Introduced an optional MinMinutesSinceLastChange filter to ReadEnvelopeQuery and updated the handler to return only envelopes whose last change was at least the specified number of minutes ago. This enables time-based filtering of envelope results.
This commit is contained in:
2026-04-01 15:06:13 +02:00
parent 15f8baf54c
commit 5100504f16

View File

@@ -24,6 +24,12 @@ public record ReadEnvelopeQuery : EnvelopeQueryBase, IRequest<IEnumerable<Envelo
/// </summary>
public int? UserId { get; init; }
/// <summary>
/// Optionaler Zeitfilter in Minuten; wenn gesetzt, werden nur Umschläge zurückgegeben,
/// deren letzte Änderung mindestens diese Anzahl an Minuten zurückliegt.
/// </summary>
public int? MinMinutesSinceLastChange { get; init; }
/// <summary>
/// Setzt den Benutzerkontext für die Abfrage.
/// </summary>
@@ -132,6 +138,12 @@ public class ReadEnvelopeQueryHandler : IRequestHandler<ReadEnvelopeQuery, IEnum
query = query.Where(e => !status.Ignore.Contains(e.Status));
}
if (request.MinMinutesSinceLastChange is int minMinutesSinceLastChange)
{
query = query.Where(e => e.ChangedWhen.HasValue
&& EF.Functions.DateDiffMinute(e.ChangedWhen.Value, DateTime.Now) >= minMinutesSinceLastChange);
}
var envelopes = await query
.Include(e => e.Documents)
.ToListAsync(cancel);