using Domain.Entities.Payments.ValueObject; namespace Application.Features.Admin.Payment.Toss.Confirm.Get; public sealed class Response { public required ConfirmData Confirm { get; init; } public CancelData? Cancel { get; init; } public sealed class ConfirmData { public int ID { get; init; } public int MemberID { get; init; } public required string MemberEmail { get; init; } public string? MemberName { get; init; } public required string PaymentKey { get; init; } public required string OrderID { get; init; } public int Amount { get; init; } public required string MerchantID { get; init; } public PaymentStatus OrderStatus { get; init; } public DateTime? OrderPaidAt { get; init; } public DateTime? OrderCancelledAt { get; init; } public string? OrderName { get; init; } public string? ResponseCode { get; init; } public string? ResponseMessage { get; init; } public string? Status { get; init; } public string? Method { get; init; } public int? TotalAmount { get; init; } public DateTime? ApprovedAt { get; init; } public string? ReceiptUrl { get; init; } public string? VirtualAccountNumber { get; init; } public string? VirtualAccountBank { get; init; } public string? VirtualAccountHolder { get; init; } public DateTime? VirtualAccountExpireAt { get; init; } public required DateTime CreatedAt { get; init; } public DateTime? UpdatedAt { get; init; } } public sealed class CancelData { public int ID { get; init; } public int CancelAmount { get; init; } public string? CancelReason { get; init; } public string? CancelRequester { get; init; } public string? Status { get; init; } public string? TransactionKey { get; init; } public DateTime? CanceledAt { get; init; } public required DateTime CreatedAt { get; init; } } }