using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Text; using gehGassi.Dto.Common; namespace gehGassi.Dto.Payment { /// /// DTO für eine Auszahlung /// public class PayoutDto : SyncEntityDto { /// /// Id des App-Users /// [Required] [MaxLength(128)] public string AppUserId { get; set; } /// /// Id des Users bei MangoPay /// [MaxLength(255)] public string MangoPayUserId { get; set; } /// /// Id des Payouts bei MangoPay /// [MaxLength(255)] public string MangoPayId { get; set; } /// /// Id des Wallets /// [Required] [MaxLength(128)] public string WalletId { get; set; } /// /// Id des Wallets bei MangoPay /// [MaxLength(255)] public string MangoPayWalletId { get; set; } /// /// Id der Bank bei MangoPay /// [MaxLength(255)] public string MangoPayBankId { get; set; } /// /// Iban der Bankverbindung letzt 4 Stellen /// [Required] [MaxLength(4)] public string Iban { get; set; } /// /// Bic der Bankverbindung letzt 4 Stellen wenn verfügbar /// [MaxLength(4)] public string Bic { get; set; } /// /// Status der Transaktion /// [Required] public PaymentTransactionStatusDto Status { get; set; } /// /// Betrag in der kleinsten Einheit der Währung /// Beispiel: 12.60 EUR werden als 1260 übertragen /// [Required] public long Ammount { get; set; } /// /// Währung ISO 4217 Code /// [Required] [MaxLength(3)] public string Currency { get; set; } /// /// Result code. /// [MaxLength(255)] public string ResultCode { get; set; } /// /// The pre-authorization result message explaining the result code. /// [MaxLength(255)] public string ResultMessage { get; set; } /// /// Ausführungsdatum bei MangoPay /// public DateTimeOffset? ExecutionDate { get; set; } /// /// Rückzahlung? /// [Required] public bool Refunded { get; set; } /// /// Typ Grund für Rückzahlung /// [MaxLength(255)] public string RefundReasonType { get; set; } /// /// Beschreibung Grund Rückzahlung /// [MaxLength(255)] public string RefundReasonMessage { get; set; } /// /// Datum an dem die Transaktion erstellt wurde /// public DateTimeOffset Created { get; set; } } /// /// DTO für die Beantragung einer Auszahlung /// public class PayoutCreateDto { /// /// Id des App-Users /// [Required] [MaxLength(128)] public string AppUserId { get; set; } /// /// Betrag der ausbezahlt werden soll /// [Required] public decimal Ammount { get; set; } } }