diff --git a/src/main/java/com/acquirex/approval/domain/DomainClasses.java b/src/main/java/com/acquirex/approval/domain/DomainClasses.java new file mode 100644 index 0000000..e4020fa --- /dev/null +++ b/src/main/java/com/acquirex/approval/domain/DomainClasses.java @@ -0,0 +1,84 @@ +package com.acquirex.approval.domain; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Objects; + +/** + * Approval status enumeration for card acquisition requests. + * Migrated to Jakarta EE 9+ for Spring Boot 3 compatibility. + */ +public enum ApprovalStatus { + PENDING, + APPROVED, + REJECTED, + CANCELLED +} + +/** + * Card acquisition approval entity. + * Migrated to Jakarta EE 9+ (jakarta.*) for Spring Boot 3 compatibility. + */ +public class CardAcquisitionApproval { + private Long id; + private String requestId; + private String cardNumber; + private String merchantId; + private BigDecimal amount; + private ApprovalStatus status; + private LocalDateTime createdAt; + private LocalDateTime updatedAt; + private String approvedBy; + + public CardAcquisitionApproval() {} + + public CardAcquisitionApproval(Long id, String requestId, String cardNumber, + String merchantId, BigDecimal amount, + ApprovalStatus status, LocalDateTime createdAt, + LocalDateTime updatedAt, String approvedBy) { + this.id = id; + this.requestId = requestId; + this.cardNumber = cardNumber; + this.merchantId = merchantId; + this.amount = amount; + this.status = status; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + this.approvedBy = approvedBy; + } + + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } + public String getRequestId() { return requestId; } + public void setRequestId(String requestId) { this.requestId = requestId; } + public String getCardNumber() { return cardNumber; } + public void setCardNumber(String cardNumber) { this.cardNumber = cardNumber; } + public String getMerchantId() { return merchantId; } + public void setMerchantId(String merchantId) { this.merchantId = merchantId; } + public BigDecimal getAmount() { return amount; } + public void setAmount(BigDecimal amount) { this.amount = amount; } + public ApprovalStatus getStatus() { return status; } + public void setStatus(ApprovalStatus status) { this.status = status; } + public LocalDateTime getCreatedAt() { return createdAt; } + public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; } + public LocalDateTime getUpdatedAt() { return updatedAt; } + public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; } + public String getApprovedBy() { return approvedBy; } + public void setApprovedBy(String approvedBy) { this.approvedBy = approvedBy; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CardAcquisitionApproval that = (CardAcquisitionApproval) o; + return Objects.equals(id, that.id) && Objects.equals(requestId, that.requestId); + } + + @Override + public int hashCode() { return Objects.hash(id, requestId); } + + @Override + public String toString() { + return "CardAcquisitionApproval{id=" + id + ", requestId='" + requestId + "', status=" + status + "}"; + } +} \ No newline at end of file