54 lines
1.9 KiB
C#
54 lines
1.9 KiB
C#
namespace Fitness_core_BE.DTOs.PlatformBilling
|
|
{
|
|
// The gym's own saved card(s) for paying their HexaFitness platform subscription
|
|
// (ClientCard), and the transaction history behind those charges. Distinct from
|
|
// PaymentGatewayDtos.cs (admin gateway catalog) and PaymentsEnablementDtos.cs
|
|
// (payout track/KYC/wallet) — this is the "gym pays HexaFitness" card-charging surface.
|
|
|
|
// Fetched live from Payment-Service on every call — CardToken is the identifier (not a
|
|
// local id), and none of these fields are ever cached in Core's own database.
|
|
public class ClientCardDto
|
|
{
|
|
public string CardToken { get; set; } = string.Empty;
|
|
public string MaskedPan { get; set; } = string.Empty;
|
|
public string CardBrand { get; set; } = string.Empty;
|
|
public int ExpiryMonth { get; set; }
|
|
public int ExpiryYear { get; set; }
|
|
public bool IsDefault { get; set; }
|
|
}
|
|
|
|
public class StartCardOnboardingRequest
|
|
{
|
|
public string? CardLabel { get; set; }
|
|
public string? ReturnUrl { get; set; }
|
|
}
|
|
|
|
public class StartCardOnboardingResult
|
|
{
|
|
public string RedirectUrl { get; set; } = string.Empty;
|
|
public string SessionId { get; set; } = string.Empty;
|
|
}
|
|
|
|
public class CardOnboardingStatusResult
|
|
{
|
|
public bool IsComplete { get; set; }
|
|
public ClientCardDto? Card { get; set; }
|
|
}
|
|
|
|
public class TransactionHistoryItemDto
|
|
{
|
|
public Guid PaymentId { get; set; }
|
|
public decimal AmountMinorUnits { get; set; }
|
|
public string Currency { get; set; } = string.Empty;
|
|
public string Status { get; set; } = string.Empty;
|
|
public DateTime CreatedAtUtc { get; set; }
|
|
}
|
|
|
|
public class TransactionHistoryResult
|
|
{
|
|
public int Total { get; set; }
|
|
public int Page { get; set; }
|
|
public List<TransactionHistoryItemDto> Items { get; set; } = new();
|
|
}
|
|
}
|