diff --git a/EnvelopeGenerator.Application/Envelope/Commands/CreateEnvelope.cs b/EnvelopeGenerator.Application/Envelope/Commands/CreateEnvelope.cs index 8dafdc01..60138a30 100644 --- a/EnvelopeGenerator.Application/Envelope/Commands/CreateEnvelope.cs +++ b/EnvelopeGenerator.Application/Envelope/Commands/CreateEnvelope.cs @@ -1,12 +1,62 @@ using MediatR; +using System.ComponentModel.DataAnnotations; namespace EnvelopeGenerator.Application.Envelope.Commands; -public record CreateEnvelopeCommand(EnvelopeCreateDto Envelope) : IRequest; +#region DTOs +/// +/// Signaturposition auf einem Dokument. +/// +/// X-Position +/// Y-Position +/// Seite, auf der sie sich befindet +public record Signature([Required] int X, [Required] int Y, [Required] int Page); +/// +/// DTO für Empfänger, die erstellt oder abgerufen werden sollen. +/// Wenn nicht, wird sie erstellt und mit einer Signatur versehen. +/// +/// Unterschriften auf Dokumenten. +/// Der Name, mit dem der Käufer angesprochen werden soll. Bei Null oder keinem Wert wird der zuletzt verwendete Name verwendet. +/// Sollte mit Vorwahl geschrieben werden +public record ReceiverGetOrCreateDto([Required] IEnumerable Signatures, string? Name = null, string? PhoneNumber = null) +{ + private string _emailAddress; + + /// + /// E-Mail-Adresse des Empfängers. + /// + [Required] + public required string EmailAddress { get => _emailAddress.ToLower(); init => _emailAddress.ToLower(); } +}; + +/// +/// DTO für die Erstellung eines Dokuments. +/// +public record DocumentCreateDto(byte[]? DataAsByte = null, string? DataAsBase64 = null); +#endregion + +/// +/// Befehl zur Erstellung eines Umschlags. +/// +public record CreateEnvelopeCommand( + [Required] string Title, + [Required] string Message, + [Required] DocumentCreateDto Document, + [Required] IEnumerable Receivers + string Language = "de-DE", + DateTime? ExpiresWhen = null, + DateTime? ExpiresWarningWhen = null, + int ContractType = (int)Common.Constants.ContractType.Contract, + bool TFAEnabled = false, + ) : IRequest; + +/// +/// Handler für den CreateEnvelopeCommand. +/// public class CreateEnvelopeCommandHandler : IRequestHandler { - public Task Handle(CreateEnvelopeCommand request, CancellationToken cancellationToken) + public Task Handle(CreateEnvelopeCommand request, CancellationToken cancellationToken) { throw new NotImplementedException(); } diff --git a/EnvelopeGenerator.Application/Envelope/Commands/EnvelopeCreateDto.cs b/EnvelopeGenerator.Application/Envelope/Commands/EnvelopeCreateDto.cs deleted file mode 100644 index 80176ad6..00000000 --- a/EnvelopeGenerator.Application/Envelope/Commands/EnvelopeCreateDto.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; - -namespace EnvelopeGenerator.Application.Envelope.Commands; - -public class EnvelopeCreateDto -{ - [Required] - public required string Title { get; init; } - - [Required] - public required string Message { get; init; } - - public string Language { get; init; } = "de-DE"; - - public DateTime? ExpiresWhen { get; init; } - - public DateTime? ExpiresWarningWhen { get; init; } - - public int? ContractType { get; init; } = (int)Common.Constants.ContractType.Contract; - - public bool TFAEnabled { get; init; } = false; -}