diff --git a/payment-command/src/main/java/com/example/cash/domain/Cash.java b/payment-command/src/main/java/com/example/cash/domain/Cash.java new file mode 100644 index 0000000..71fa195 --- /dev/null +++ b/payment-command/src/main/java/com/example/cash/domain/Cash.java @@ -0,0 +1,44 @@ +package com.example.cash.domain; + +import com.example.user.domain.User; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import java.math.BigDecimal; +import java.time.LocalDateTime; +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; + +@Entity +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor(access = AccessLevel.PRIVATE) +public class Cash { + + @Id + private String id; + + private BigDecimal amount; + + @ManyToOne + @JoinColumn + private User user; + + @CreatedDate + private LocalDateTime createdAt; + + @LastModifiedDate + private LocalDateTime updatedAt; + + public String getId() { + return id; + } + + public static Cash of(BigDecimal amount, User user) { + return new Cash(UUID.fromString("cash").toString(), amount, user, null, null); + } +} diff --git a/payment-command/src/main/java/com/example/common/IdResponse.java b/payment-command/src/main/java/com/example/common/IdResponse.java new file mode 100644 index 0000000..e8e9698 --- /dev/null +++ b/payment-command/src/main/java/com/example/common/IdResponse.java @@ -0,0 +1,20 @@ +package com.example.common; + +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@Getter +public class IdResponse { + + private T id; + + private IdResponse(T id) { + this.id = id; + } + + public static IdResponse of(T id) { + return new IdResponse<>(id); + } +} diff --git a/payment-query/src/main/java/com/example/PaymentCreatedListener.java b/payment-query/src/main/java/com/example/PaymentCreatedListener.java new file mode 100644 index 0000000..7c71dfe --- /dev/null +++ b/payment-query/src/main/java/com/example/PaymentCreatedListener.java @@ -0,0 +1,14 @@ +package com.example; + +import com.example.payment.domain.event.PaymentCreated; +import org.springframework.kafka.annotation.KafkaListener; +import org.springframework.stereotype.Service; + +@Service +public class PaymentCreatedListener { + + @KafkaListener(topics = "PaymentCreated", groupId = "group1") + public void consume(PaymentCreated message) { + System.out.println("receive message : " + message.toString()); + } +} \ No newline at end of file