using EnvelopeGenerator.Application.Envelopes;
using EnvelopeGenerator.Application.Receivers;
using static EnvelopeGenerator.Common.Constants;
namespace EnvelopeGenerator.Application.EnvelopeHistories;
///
/// Repräsentiert eine Abfrage für die Verlaufshistorie eines Umschlags.
///
/// Die eindeutige Kennung des Umschlags.
/// Die Abfrage, die den Umschlag beschreibt.
/// Die Abfrage, die den Empfänger beschreibt.
public record EnvelopeHistoryQuery(int EnvelopeId, TEnvelopeQuery? Envelope, TReceiverQuery? Receiver = null, StatusQuery? Status = null)
where TEnvelopeQuery : EnvelopeQuery
where TReceiverQuery : ReceiverQuery
{
public ReferenceType ReferenceType =>
Envelope?.User is not null
? ReferenceType.Receiver
: Receiver is not null
? ReferenceType.Receiver
: ReferenceType.System;
}