using DigitalData.Core.Abstraction.Application.Repository; using EnvelopeGenerator.Application.Common.Dto; using EnvelopeGenerator.Application.Common.Interfaces.SQLExecutor; using MediatR; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Text.Json.Serialization; namespace EnvelopeGenerator.Application.Envelopes.Commands; /// /// Befehl zur Erstellung eines Umschlags. /// public record CreateEnvelopeCommand : IRequest { /// /// Der Titel des Umschlags. Dies ist ein Pflichtfeld. /// [Required] public required string Title { get; set; } /// /// Die Nachricht, die im Umschlag enthalten sein soll. Dies ist ein Pflichtfeld. /// [Required] public required string Message { get; set; } /// /// Gibt an, ob die Zwei-Faktor-Authentifizierung für den Umschlag aktiviert ist. Standardmäßig false. /// public bool TFAEnabled { get; set; } = false; /// /// ID des Absenders /// public int UserId { get; set; } /// /// Determines which component is used for envelope processing. /// When true, processing is delegated to ; /// when false, is used instead. /// Note: should only be used in testing scenarios. /// [JsonIgnore] [NotMapped] public bool UseSQLExecutor { get; set; } = true; }