gehgassi_backend/gehGassi.Domain/Payment/PaymentTransaction.cs

126 lines
3.4 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using gehGassi.Domain.Common;
namespace gehGassi.Domain.Payment
{
/// <summary>
/// Repräsentiert eine Transaktion für Zahlungen.
/// Dies können Einzahlungen, Auszahlungen oder Rückerstattungen sein.
/// Eine Sonderform ist Gebühr. Diese geth an gehgassi
/// </summary>
public class PaymentTransaction
{
/// <summary>
/// Eindeutige Id
/// </summary>
[Key]
[Required]
public long Id { get; set; }
/// <summary>
/// Id der Transaktion bei MangoPay
/// </summary>
[Required]
[MaxLength(255)]
public string TransactionId { get; set; }
/// <summary>
/// Typ der Transaktion
/// </summary>
[Required]
public PaymentTransactionType Type { get; set; }
/// <summary>
/// Status der Transaktion
/// </summary>
[Required]
public PaymentTransactionStatus Status { get; set; }
/// <summary>
/// Walk auf den sich die Transaktion bezieht
/// </summary>
[MaxLength(128)]
public string WalkId { get; set; }
/// <summary>
/// Id des AppUsers der die Zahlung erhält
/// </summary>
[MaxLength(128)]
public string TargetAppUserId { get; set; }
/// <summary>
/// Id des Wallets, auf das die Transaktion angewendet wird
/// </summary>
[MaxLength(128)]
public string TargetWalletId { get; set; }
/// <summary>
/// Id des AppUsers der die Zahlung veranlasst
/// </summary>
[MaxLength(128)]
public string SourceAppUserId { get; set; }
/// <summary>
/// Id des Wallets, von dem die Transaktion ausgeht
/// </summary>
[MaxLength(128)]
public string SourceWalletId { get; set; }
/// <summary>
/// Betrag in der kleinsten Einheit der Währung
/// Beispiel: 12.60 EUR werden als 1260 übertragen
/// </summary>
[Required]
public long Ammount { get; set; }
/// <summary>
/// Betrag der zusätzlich vom Guthaben-Konto verwendet werden muss in der kleinsten Einheit der Währung
/// Beispiel: 12.60 EUR werden als 1260 übertragen
/// </summary>
[Required]
public long FromCredit { get; set; }
/// <summary>
/// Währung ISO 4217 Code
/// </summary>
[Required]
[MaxLength(3)]
public string Currency { get; set; }
/// <summary>
/// Fehlermeldung nach MangoPay
/// </summary>
[MaxLength(500)]
public string ErrorMessage { get; set; }
/// <summary>
/// FehlerTyp nach MangoPay
/// </summary>
[MaxLength(255)]
public string ErrorType { get; set; }
/// <summary>
/// Fehlermeldungen nach MangoPay - Zusatzinformationen
/// </summary>
[MaxLength(1000)]
public string ErrorMessages { get; set; }
/// <summary>
/// Womit wurde bezahlt?
/// </summary>
public PayInType? PayInType { get; set; }
/// <summary>
/// Datum an dem die Transaktion erstellt wurde
/// </summary>
public DateTimeOffset Created { get; set; }
}
}