ITransaction.cs•2.32 kB
using System;
using System.Collections.Generic;
namespace Api.DigitalPages.Interfaces.Models
{
public interface ITransaction : IBaseModelV3
{
/// <summary>
/// Usuário responsável pela transação.
/// </summary>
Guid UserUid { get; set; }
/// <summary>
/// Indicador se a transação encontra-se ativa (comprado e pago).
/// </summary>
bool Active { get; set; }
/// <summary>
/// Id de referência para o provedor da transação.
/// </summary>
string ExternalUid { get; set; }
/// <summary>
/// Tipo de pagamento escolhido pelo usuário.
/// </summary>
PaymentType PaymentType { get; set; }
/// <summary>
/// ültimo status da transação.
/// </summary>
TransactionStatus Status { get; set; }
/// <summary>
/// Produtos comprados na transação.
/// </summary>
List<IProduct> Products { get; set; }
/// <summary>
/// Histórico das mudanças de status de uma transação.
/// </summary>
List<ITransactionItem> History { get; set; }
/// <summary>
/// Url do boleto para pagamento, quando aplicável.
/// </summary>
string TicketUrl { get; set; }
/// <summary>
/// Código QrCode do PIX quando aplicável.
/// </summary>
string PixQrCode { get; set; }
/// <summary>
/// Valor da transação
/// </summary>
double Amount { get; set; }
/// <summary>
/// Taxa cobrada na transação.
/// </summary>
double Tax { get; set; }
}
public interface ITransactionItem : IBaseModelV3<ITransaction>
{
TransactionStatus Status { get; set; }
DateTime EventAt { get; set; }
DateTime? ExpireAt { get; set; }
DateTime? CancelationAt { get; set; }
bool TrialPeriod { get; set; }
bool OfferPeriod { get; set; }
}
public enum TransactionStatus
{
None,
Chargedback,
Refused,
Authorized,
WaitingPayment,
Paid,
PendingRefund,
Refunded,
Processing,
PendingReview,
Analyzing,
Renewed
}
}