카드 매입 승인 경로 Spring Boot 3 전환 (ACX-E2E-1785394564819)
Some checks are pending
Verify / source-contract (push) Waiting to run
Some checks are pending
Verify / source-contract (push) Waiting to run
This commit is contained in:
parent
77ecc7ae5d
commit
38fcb8b62f
1 changed files with 87 additions and 0 deletions
87
src/main/java/com/acquirex/domain/Acquisition.java
Normal file
87
src/main/java/com/acquirex/domain/Acquisition.java
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
package com.acquirex.domain;
|
||||||
|
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 카드 매입 정보 도메인 엔티티
|
||||||
|
* Jakarta EE 9+ 어노테이션 사용 (Spring Boot 3)
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "acquisitions")
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class Acquisition {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotBlank(message = "가맹점 번호는 필수입니다")
|
||||||
|
@Column(name = "merchant_id", nullable = false, length = 20)
|
||||||
|
private String merchantId;
|
||||||
|
|
||||||
|
@NotBlank(message = "카드번호는 필수입니다")
|
||||||
|
@Column(name = "card_number", nullable = false, length = 19)
|
||||||
|
private String cardNumber;
|
||||||
|
|
||||||
|
@NotNull(message = "매입 금액은 필수입니다")
|
||||||
|
@Positive(message = "매입 금액은 양수여야 합니다")
|
||||||
|
@Column(name = "amount", nullable = false, precision = 15, scale = 2)
|
||||||
|
private BigDecimal amount;
|
||||||
|
|
||||||
|
@NotBlank(message = "거래 번호는 필수입니다")
|
||||||
|
@Column(name = "transaction_id", nullable = false, unique = true, length = 30)
|
||||||
|
private String transactionId;
|
||||||
|
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
@Column(name = "status", nullable = false, length = 20)
|
||||||
|
private AcquisitionStatus status;
|
||||||
|
|
||||||
|
@Column(name = "approval_code", length = 10)
|
||||||
|
private String approvalCode;
|
||||||
|
|
||||||
|
@Column(name = "approved_at")
|
||||||
|
private LocalDateTime approvedAt;
|
||||||
|
|
||||||
|
@Column(name = "created_at", nullable = false, updatable = false)
|
||||||
|
private LocalDateTime createdAt;
|
||||||
|
|
||||||
|
@Column(name = "updated_at")
|
||||||
|
private LocalDateTime updatedAt;
|
||||||
|
|
||||||
|
@PrePersist
|
||||||
|
protected void onCreate() {
|
||||||
|
createdAt = LocalDateTime.now();
|
||||||
|
updatedAt = LocalDateTime.now();
|
||||||
|
}
|
||||||
|
|
||||||
|
@PreUpdate
|
||||||
|
protected void onUpdate() {
|
||||||
|
updatedAt = LocalDateTime.now();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void approve(String approvalCode) {
|
||||||
|
this.status = AcquisitionStatus.APPROVED;
|
||||||
|
this.approvalCode = approvalCode;
|
||||||
|
this.approvedAt = LocalDateTime.now();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void reject(String reason) {
|
||||||
|
this.status = AcquisitionStatus.REJECTED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 카드 매입 승인 상태 열거형
|
||||||
|
*/
|
||||||
|
enum AcquisitionStatus {
|
||||||
|
PENDING, APPROVED, REJECTED, CANCELLED
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue