using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassiApp.Domain.Base; using gehGassiApp.Domain.Common; namespace gehGassiApp.Domain.Payment { /// /// Repräsentiert ein Dokument für die KYC-Prüfung eines App-Users /// public class IdentityDocument : SyncEntity { /// /// Id des App-Users /// [Required] [MaxLength(128)] public string AppUserId { get; set; } /// /// Id des Dokumentes bei MangoPay /// [MaxLength(255)] public string MangoPayId { get; set; } /// /// Id des Users bei MangoPay /// [MaxLength(255)] public string MangoPayUserId { get; set; } /// /// Typ des Dokumentes /// [Required] public IdentityDocumentType Type { get; set; } /// /// Quelle des Dokumentes /// [Required] public IdentityDocumentSource Source { get; set; } /// /// Status des Dokumentes /// [Required] public IdentityDocumentStatus Status { get; set; } /// /// Anzahl der Seiten des Dokumentes /// [Required] public int PageCount { get; set; } /// /// Datum der Erstellung des Kyc-Dokumentes /// public DateTimeOffset? Processed { get; set; } /// /// Grund für eine Ablehnung des Dokumentes /// [MaxLength(1000)] public string RefusedReasonMessage { get; set; } /// /// Typ der Ablehnung /// [MaxLength(255)] public string RefusedReasonType { get; set; } /// /// Beinhaltet Detail-Fehlercodes wenn ein Dokument abgelehnt wurde /// [MaxLength(1000)] public string FlagsValue { get; set; } /// /// Gibt die Detail-Fehlercodes als Liste zurück /// public List Flags => !string.IsNullOrWhiteSpace(FlagsValue) ? new List(FlagsValue.Split(';')) : new List(); /// /// Datum der Erstellung des Kyc-Dokumentes /// [Required] public DateTimeOffset Created { get; set; } } }