From 336d3c94340bf748e906d448f18d4d6197d2c395 Mon Sep 17 00:00:00 2001 From: Klaus Date: Mon, 21 Apr 2025 14:22:10 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9C=A0=EC=A0=80=20=ED=96=89=EB=8F=99?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0,=20=ED=8F=AC=EC=9D=B8=ED=8A=B8=20-?= =?UTF-8?q?=20Entity=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/content/AudioContent.kt | 1 + .../vividnext/sodalive/content/order/Order.kt | 1 + .../vividnext/sodalive/point/MemberPoint.kt | 17 +++++++++++++++++ .../vividnext/sodalive/point/PointGrantLog.kt | 16 ++++++++++++++++ .../sodalive/point/PointRewardPolicy.kt | 19 +++++++++++++++++++ .../co/vividnext/sodalive/point/UsePoint.kt | 10 ++++++++++ .../sodalive/useraction/ActionType.kt | 5 +++++ .../sodalive/useraction/UserActionLog.kt | 13 +++++++++++++ 8 files changed, 82 insertions(+) create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/point/MemberPoint.kt create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/point/PointGrantLog.kt create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/point/PointRewardPolicy.kt create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/point/UsePoint.kt create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/useraction/ActionType.kt create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/useraction/UserActionLog.kt diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContent.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContent.kt index 00d3eb3..f65ece2 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContent.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContent.kt @@ -42,6 +42,7 @@ data class AudioContent( val isGeneratePreview: Boolean = true, var isOnlyRental: Boolean = false, var isAdult: Boolean = false, + var isPointAvailable: Boolean = false, var isCommentAvailable: Boolean = true, var isFullDetailVisible: Boolean = true ) : BaseEntity() { diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/order/Order.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/order/Order.kt index eb59754..391908b 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/order/Order.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/order/Order.kt @@ -25,6 +25,7 @@ data class Order( var isActive: Boolean = true ) : BaseEntity() { var can: Int = 0 + var point: Int = 0 val startDate: LocalDateTime = LocalDateTime.now() var endDate: LocalDateTime? = null diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/point/MemberPoint.kt b/src/main/kotlin/kr/co/vividnext/sodalive/point/MemberPoint.kt new file mode 100644 index 0000000..912f45c --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/point/MemberPoint.kt @@ -0,0 +1,17 @@ +package kr.co.vividnext.sodalive.point + +import kr.co.vividnext.sodalive.common.BaseEntity +import kr.co.vividnext.sodalive.useraction.ActionType +import java.time.LocalDateTime +import javax.persistence.Entity +import javax.persistence.EnumType +import javax.persistence.Enumerated + +@Entity +data class MemberPoint( + val memberId: Long, + var point: Int, + @Enumerated(EnumType.STRING) + val actionType: ActionType, + val expiresAt: LocalDateTime +) : BaseEntity() diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/point/PointGrantLog.kt b/src/main/kotlin/kr/co/vividnext/sodalive/point/PointGrantLog.kt new file mode 100644 index 0000000..780eccc --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/point/PointGrantLog.kt @@ -0,0 +1,16 @@ +package kr.co.vividnext.sodalive.point + +import kr.co.vividnext.sodalive.common.BaseEntity +import kr.co.vividnext.sodalive.useraction.ActionType +import javax.persistence.Entity +import javax.persistence.EnumType +import javax.persistence.Enumerated + +@Entity +data class PointGrantLog( + val memberId: Long, + val point: Int, + @Enumerated(EnumType.STRING) + val actionType: ActionType, + val policyId: Long? +) : BaseEntity() diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/point/PointRewardPolicy.kt b/src/main/kotlin/kr/co/vividnext/sodalive/point/PointRewardPolicy.kt new file mode 100644 index 0000000..070af83 --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/point/PointRewardPolicy.kt @@ -0,0 +1,19 @@ +package kr.co.vividnext.sodalive.point + +import kr.co.vividnext.sodalive.common.BaseEntity +import kr.co.vividnext.sodalive.useraction.ActionType +import java.time.LocalDateTime +import javax.persistence.Entity +import javax.persistence.EnumType +import javax.persistence.Enumerated + +@Entity +data class PointRewardPolicy( + @Enumerated(EnumType.STRING) + val actionType: ActionType, + val threshold: Int, + val pointAmount: Int, + var startDate: LocalDateTime, + var endDate: LocalDateTime? = null, + var isActive: Boolean = true +) : BaseEntity() diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/point/UsePoint.kt b/src/main/kotlin/kr/co/vividnext/sodalive/point/UsePoint.kt new file mode 100644 index 0000000..afbeb7e --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/point/UsePoint.kt @@ -0,0 +1,10 @@ +package kr.co.vividnext.sodalive.point + +import kr.co.vividnext.sodalive.common.BaseEntity +import javax.persistence.Entity + +@Entity +data class UsePoint( + val memberId: Long, + val amount: Int +) : BaseEntity() diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/useraction/ActionType.kt b/src/main/kotlin/kr/co/vividnext/sodalive/useraction/ActionType.kt new file mode 100644 index 0000000..5b093f3 --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/useraction/ActionType.kt @@ -0,0 +1,5 @@ +package kr.co.vividnext.sodalive.useraction + +enum class ActionType(val displayName: String) { + SIGN_UP("회원가입") +} diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/useraction/UserActionLog.kt b/src/main/kotlin/kr/co/vividnext/sodalive/useraction/UserActionLog.kt new file mode 100644 index 0000000..fc92561 --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/useraction/UserActionLog.kt @@ -0,0 +1,13 @@ +package kr.co.vividnext.sodalive.useraction + +import kr.co.vividnext.sodalive.common.BaseEntity +import javax.persistence.Entity +import javax.persistence.EnumType +import javax.persistence.Enumerated + +@Entity +data class UserActionLog( + val memberId: Long, + @Enumerated(EnumType.STRING) + val actionType: ActionType +) : BaseEntity()