using DigitalData.Core.Exceptions;
using EnvelopeGenerator.Extensions;
namespace EnvelopeGenerator.Application.Model;
///
///
///
public record EnvelopeReceiverQueryBase : EnvelopeReceiverQueryBase;
///
///
///
///
///
public record EnvelopeReceiverQueryBase
where TEnvelopeQuery : EnvelopeQueryBase, new()
where TReceiverQuery : ReceiverQueryBase, new()
{
private string? _key;
///
///
///
public virtual string? Key
{
get => _key;
init
{
if (value is null)
{
_key = null;
return;
}
(string? EnvelopeUuid, string? ReceiverSignature) = value.DecodeEnvelopeReceiverId();
if (string.IsNullOrEmpty(EnvelopeUuid) || string.IsNullOrEmpty(ReceiverSignature))
throw new BadRequestException("Der EnvelopeReceiverKey muss ein gültiger Base64-kodierter String sein, der die EnvelopeUuid und die ReceiverSignature enthält.");
Envelope = new TEnvelopeQuery()
{
Uuid = EnvelopeUuid
};
Receiver = new TReceiverQuery()
{
Signature = ReceiverSignature
};
_key = value;
}
}
///
/// Repräsentiert eine Abfrage für Umschläge.
///
public virtual TEnvelopeQuery Envelope { get; init; } = new();
///
/// Stellt eine Abfrage dar, um die Details eines Empfängers zu lesen.
/// um spezifische Informationen über einen Empfänger abzurufen.
///
public virtual TReceiverQuery Receiver { get; init; } = new();
}