using EnvelopeGenerator.Common;
namespace EnvelopeGenerator.Application.Histories.Queries.Read;
//TODO: Add sender query
///
/// Repräsentiert eine Abfrage für die Verlaufshistorie eines Umschlags.
///
/// Die eindeutige Kennung des Umschlags.
/// Der Status des Umschlags, der abgefragt werden soll. Kann optional angegeben werden, um die Ergebnisse zu filtern.
/// Abfrage zur Steuerung, ob nur der aktuelle Status oder der gesamte Datensatz zurückgegeben wird.
public record ReadHistoryQuery(
int EnvelopeId,
Constants.EnvelopeStatus? Status = null,
bool? OnlyLast = true)
{
///
/// Abfrage, die angibt, worauf sich der Datensatz bezieht. Ob er sich auf den Empfänger, den Sender oder das System bezieht, wird durch 0, 1 bzw. 2 dargestellt.
///
public Constants.ReferenceType? Related
{
get
{
if (Status is null)
return null;
var statusCode = ((int)Status).ToString();
return statusCode.FirstOrDefault() switch
{
'1' => (Constants.ReferenceType?)Constants.ReferenceType.Sender,
'2' => (Constants.ReferenceType?)Constants.ReferenceType.Receiver,
_ => (Constants.ReferenceType?)Constants.ReferenceType.System,
};
}
}
};