[220402] 나머지 개발 완료

- purchase 도메인 command, query 개발
- payment 도메인 command, query 개발
- readme update
This commit is contained in:
appleg
2022-04-02 16:53:23 +09:00
parent 202d9c5d0d
commit 646cbbd941
50 changed files with 1178 additions and 55 deletions

View File

@@ -0,0 +1,55 @@
package com.example.purchase.domain;
import com.example.payment.domain.Payment;
import com.example.user.domain.User;
import jakarta.persistence.Entity;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.ZonedDateTime;
import java.util.UUID;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
@Entity
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@EntityListeners(AuditingEntityListener.class)
public class Purchase {
@Id
private String id;
@ManyToOne
@JoinColumn
private User user;
private PurchaseType type;
private BigDecimal amount;
@CreatedDate
private ZonedDateTime createdAt;
@LastModifiedDate
private ZonedDateTime updatedAt;
public String getId() {
return id;
}
public ZonedDateTime getCreatedAt() {
return createdAt;
}
public static Purchase of(User user, PurchaseType type, BigDecimal amount, ZonedDateTime createdAt, ZonedDateTime updatedAt) {
return new Purchase(UUID.randomUUID().toString(), user, type, amount, createdAt, updatedAt);
}
}