package zw.qantra.tm.domain.models; import com.fasterxml.jackson.annotation.JsonInclude; import jakarta.persistence.*; import lombok.*; import zw.qantra.tm.domain.enums.CurrencyType; import zw.qantra.tm.domain.enums.RequestType; import zw.qantra.tm.domain.enums.Status; import java.math.BigDecimal; import java.util.List; import java.util.UUID; @Entity @Getter @Setter @Builder @AllArgsConstructor @NoArgsConstructor @JsonInclude(JsonInclude.Include.NON_NULL) public class Transaction { @Id @GeneratedValue(strategy = GenerationType.UUID) private UUID id; private String trace; private BigDecimal amount; private BigDecimal charge; private BigDecimal gatewayCharge; private BigDecimal tax; private BigDecimal totalAmount; private String reference; private String providerUid; private String productUid; private String paymentProcessorLabel; private String integrationProcessorLabel; private String rrn; private String channelName; private String channel; private String debitPhone; private String debitAccount; private CurrencyType debitCurrency; private String debitName; private String debitCard; private String debitRef; private String creditPhone; private String creditAccount; private CurrencyType creditCurrency; private String creditName; private String creditCard; private String creditRef; private String billClientId; private String clientSecret; private String aggregatorId; private String billName; private String billProductName; private RequestType type; private String errorMessage; private String responseCode; private Status status; @Transient private List additionalData; }