PaymentResponse.java
package org.petify.funding.dto;
import org.petify.funding.model.Currency;
import org.petify.funding.model.Payment;
import org.petify.funding.model.PaymentMethod;
import org.petify.funding.model.PaymentProvider;
import org.petify.funding.model.PaymentStatus;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class PaymentResponse {
private Long id;
private Long donationId;
private PaymentStatus status;
private PaymentProvider provider;
private PaymentMethod paymentMethod;
private String externalId;
private BigDecimal amount;
private Currency currency;
private BigDecimal feeAmount;
private BigDecimal netAmount;
private String failureReason;
private String failureCode;
private String clientSecret;
private String checkoutUrl;
private java.time.Instant createdAt;
private java.time.Instant updatedAt;
private java.time.Instant expiresAt;
public static PaymentResponse fromEntity(Payment payment) {
return PaymentResponse.builder()
.id(payment.getId())
.donationId(payment.getDonation().getId())
.status(payment.getStatus())
.provider(payment.getProvider())
.paymentMethod(payment.getPaymentMethod())
.externalId(payment.getExternalId())
.amount(payment.getAmount())
.currency(payment.getCurrency())
.feeAmount(payment.getFeeAmount())
.netAmount(payment.getNetAmount())
.failureReason(payment.getFailureReason())
.failureCode(payment.getFailureCode())
.clientSecret(payment.getClientSecret())
.checkoutUrl(payment.getCheckoutUrl())
.createdAt(payment.getCreatedAt())
.updatedAt(payment.getUpdatedAt())
.expiresAt(payment.getExpiresAt())
.build();
}
}