118 lines
3.2 KiB
Kotlin
118 lines
3.2 KiB
Kotlin
package kr.co.vividnext.sodalive.member
|
|
|
|
import kr.co.vividnext.sodalive.common.BaseEntity
|
|
import kr.co.vividnext.sodalive.member.auth.Auth
|
|
import kr.co.vividnext.sodalive.member.following.CreatorFollowing
|
|
import kr.co.vividnext.sodalive.member.notification.MemberNotification
|
|
import kr.co.vividnext.sodalive.member.stipulation.StipulationAgree
|
|
import kr.co.vividnext.sodalive.member.tag.MemberCreatorTag
|
|
import javax.persistence.CascadeType
|
|
import javax.persistence.Column
|
|
import javax.persistence.Entity
|
|
import javax.persistence.EnumType
|
|
import javax.persistence.Enumerated
|
|
import javax.persistence.FetchType
|
|
import javax.persistence.OneToMany
|
|
import javax.persistence.OneToOne
|
|
|
|
@Entity
|
|
data class Member(
|
|
val email: String,
|
|
var password: String,
|
|
var nickname: String,
|
|
var profileImage: String? = null,
|
|
|
|
@Enumerated(value = EnumType.STRING)
|
|
var gender: Gender = Gender.NONE,
|
|
|
|
@Enumerated(value = EnumType.STRING)
|
|
var role: MemberRole = MemberRole.USER,
|
|
|
|
var isVisibleDonationRank: Boolean = true,
|
|
|
|
var isActive: Boolean = true,
|
|
|
|
var container: String = "web"
|
|
) : BaseEntity() {
|
|
@OneToMany(mappedBy = "member", cascade = [CascadeType.ALL])
|
|
val stipulationAgrees: MutableList<StipulationAgree> = mutableListOf()
|
|
|
|
@OneToMany(mappedBy = "member", cascade = [CascadeType.ALL], orphanRemoval = true)
|
|
var tags: MutableList<MemberCreatorTag> = mutableListOf()
|
|
|
|
@OneToMany(mappedBy = "creator")
|
|
var follower: MutableList<CreatorFollowing> = mutableListOf()
|
|
|
|
@OneToMany(mappedBy = "member", cascade = [CascadeType.ALL])
|
|
val signOutReasons: MutableList<SignOut> = mutableListOf()
|
|
|
|
@OneToOne(mappedBy = "member", fetch = FetchType.LAZY)
|
|
var notification: MemberNotification? = null
|
|
|
|
@OneToOne(mappedBy = "member", fetch = FetchType.LAZY)
|
|
var auth: Auth? = null
|
|
|
|
// 소개
|
|
@Column(columnDefinition = "TEXT")
|
|
var introduce = ""
|
|
|
|
// SNS
|
|
var instagramUrl = ""
|
|
var youtubeUrl = ""
|
|
var websiteUrl = ""
|
|
var blogUrl = ""
|
|
|
|
var pushToken: String? = null
|
|
|
|
// 화폐
|
|
var pgChargeCan: Int = 0
|
|
var pgRewardCan: Int = 0
|
|
var googleChargeCan: Int = 0
|
|
var googleRewardCan: Int = 0
|
|
var appleChargeCan: Int = 0
|
|
var appleRewardCan: Int = 0
|
|
|
|
fun getChargeCan(container: String): Int {
|
|
return when (container) {
|
|
"ios" -> appleChargeCan + pgChargeCan
|
|
"aos" -> googleChargeCan + pgChargeCan
|
|
else -> pgChargeCan
|
|
}
|
|
}
|
|
|
|
fun getRewardCan(container: String): Int {
|
|
return when (container) {
|
|
"ios" -> appleRewardCan + pgRewardCan
|
|
"aos" -> googleRewardCan + pgRewardCan
|
|
else -> pgRewardCan
|
|
}
|
|
}
|
|
|
|
fun charge(chargeCan: Int, rewardCan: Int, container: String) {
|
|
when (container) {
|
|
"ios" -> {
|
|
appleChargeCan += chargeCan
|
|
appleRewardCan += rewardCan
|
|
}
|
|
|
|
"aos" -> {
|
|
googleChargeCan += chargeCan
|
|
googleRewardCan += rewardCan
|
|
}
|
|
|
|
else -> {
|
|
pgChargeCan += chargeCan
|
|
pgRewardCan += rewardCan
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
enum class Gender {
|
|
MALE, FEMALE, NONE
|
|
}
|
|
|
|
enum class MemberRole {
|
|
ADMIN, BOT, USER, CREATOR, AGENT
|
|
}
|