package online.ruemu.franifer.payment.transaction;
import jakarta.persistence.*; import java.math.*; import java.time.*; import java.util.*;
@Entity @Table(name="payment_transactions") public class PaymentTransaction { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @Column(nullable=false,unique=true) private String reference; private String customerName; @Enumerated(EnumType.STRING) private ProductType productType; private String provider; private String destination; private BigDecimal amount; @Enumerated(EnumType.STRING) private TransactionStatus status; private String providerReference; private String failureReason; private Instant createdAt; private Instant updatedAt; @PrePersist void c(){if(reference==null)reference="PP-"+UUID.randomUUID().toString().substring(0,8).toUpperCase(); if(status==null)status=TransactionStatus.RECEIVED; createdAt=updatedAt=Instant.now();} @PreUpdate void u(){updatedAt=Instant.now();} public Long getId(){return id;} public String getReference(){return reference;} public String getCustomerName(){return customerName;} public void setCustomerName(String v){customerName=v;} public ProductType getProductType(){return productType;} public void setProductType(ProductType v){productType=v;} public String getProvider(){return provider;} public void setProvider(String v){provider=v;} public String getDestination(){return destination;} public void setDestination(String v){destination=v;} public BigDecimal getAmount(){return amount;} public void setAmount(BigDecimal v){amount=v;} public TransactionStatus getStatus(){return status;} public void setStatus(TransactionStatus v){status=v;} public String getProviderReference(){return providerReference;} public void setProviderReference(String v){providerReference=v;} public String getFailureReason(){return failureReason;} public void setFailureReason(String v){failureReason=v;} public Instant getCreatedAt(){return createdAt;} public Instant getUpdatedAt(){return updatedAt;} }