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. /// Abfrage zur Steuerung, ob nur der aktuelle Status oder der gesamte Datensatz zurückgegeben wird. public record EnvelopeHistoryQuery(int EnvelopeId, TEnvelopeQuery? Envelope, TReceiverQuery? Receiver = null, bool? OnlyLast = null) where TEnvelopeQuery : EnvelopeQuery where TReceiverQuery : ReceiverQuery { /// /// Gibt den Referenztyp des Umschlags an. /// Wenn der Benutzer des Umschlags definiert ist, wird der Referenztyp als Empfänger betrachtet. /// Andernfalls, wenn ein Empfänger definiert ist, wird der Referenztyp ebenfalls als Empfänger betrachtet. /// Ist keiner von beiden definiert, wird der Referenztyp als System betrachtet. /// public ReferenceType ReferenceType => Envelope?.Sender is not null ? ReferenceType.Receiver : Receiver is not null ? ReferenceType.Receiver : ReferenceType.System; }