using gehGassi.Domain.Base; using gehGassi.Domain.Common; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace gehGassi.Domain.Payment { /// /// Repräsentiert eine Kreditkarte / Maestro eines App-Users /// public class Card : SyncEntity, IAuditable { /// /// Id des App-Users /// [Required] [MaxLength(128)] public string AppUserId { get; set; } /// /// Id der Karte bei MangoPay /// [MaxLength(255)] public string MangoPayId { get; set; } /// /// Id des Users bei MangoPay /// [MaxLength(255)] public string MangoPayUserId { get; set; } /// /// Monat der Ablaufs /// [Required] public int ExpirationMonth { get; set; } /// /// Jahr des Ablaufs /// [Required] public int ExpirationYear { get; set; } /// /// Kartennummer - Alias /// [Required] [MaxLength(50)] public string CardNumber { get; set; } /// /// Typ der Karte /// [Required] public CardType Type { get; set; } /// /// Von welchem Anbieter ist die Karte /// [Required] [MaxLength(50)] public string CardProvider { get; set; } /// /// Gültigkeit der Karte /// [Required] public Validity Validity { get; set; } /// /// Währung ISO 4217 Code /// [Required] [MaxLength(3)] public string Currency { get; set; } /// /// Ist die Karte aktiv? /// [Required] public bool Active { get; set; } /// /// Datum der Erstellung des Kyc-Dokumentes /// [Required] public DateTimeOffset Created { get; set; } #region IAuditable /// /// Gibt den eindeutigen Key für die Entität zurück; /// Hier als String gelöst, weil damit auch kombinierte Schlüssel möglich sind. /// /// Eindeutiger Key public string AuditKey() { return Id.ToString(); } /// /// Gibt den Objektnamen bzw. die Tabelle der Entität zurück /// /// Objektnamen public string AuditTable() { return "Cards"; } public AuditableOptions Options() { return AuditableOptions.Create | AuditableOptions.Edit | AuditableOptions.Delete; } #endregion } }