From a96410b708816501b72dc2e1b9837503a260de40 Mon Sep 17 00:00:00 2001 From: Youth Date: Sun, 19 May 2024 02:20:04 +0900 Subject: [PATCH] =?UTF-8?q?Refactor:=20Ver2=20=EB=94=94=EB=A0=89=ED=86=A0?= =?UTF-8?q?=EB=A6=AC=20=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../csquiz/domain/auth/entity/Member.java | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/main/java/org/cotato/csquiz/domain/auth/entity/Member.java diff --git a/src/main/java/org/cotato/csquiz/domain/auth/entity/Member.java b/src/main/java/org/cotato/csquiz/domain/auth/entity/Member.java new file mode 100644 index 00000000..9b5befca --- /dev/null +++ b/src/main/java/org/cotato/csquiz/domain/auth/entity/Member.java @@ -0,0 +1,81 @@ +package org.cotato.csquiz.domain.auth.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.validation.constraints.Email; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.cotato.csquiz.domain.auth.enums.MemberPosition; +import org.cotato.csquiz.domain.auth.enums.MemberRole; +import org.cotato.csquiz.common.entity.BaseTimeEntity; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.annotations.DynamicInsert; + +@Entity +@Getter +@DynamicInsert +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Member extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "member_id") + private Long id; + + @Email + @Column(name = "member_email") + private String email; + + @Column(name = "member_password") + private String password; + + @Column(name = "member_phone") + private String phoneNumber; + + @Column(name = "member_name") + private String name; + + @Column(name = "member_position", nullable = false) + @Enumerated(EnumType.STRING) + @ColumnDefault(value = "'NONE'") + private MemberPosition position; + + @Column(name = "member_role") + @Enumerated(EnumType.STRING) + @ColumnDefault(value = "'GENERAL'") + private MemberRole role; + + @Column(name = "passed_generation_number") + private Integer passedGenerationNumber; + + @Builder + public Member(String email, String password, String name, String phoneNumber) { + this.email = email; + this.password = password; + this.name = name; + this.phoneNumber = phoneNumber; + } + + public void updateRole(MemberRole role) { + this.role = role; + } + + public void updatePassword(String password) { + this.password = password; + } + + public void updateGeneration(Integer passedGenerationNumber) { + this.passedGenerationNumber = passedGenerationNumber; + } + + public void updatePosition(MemberPosition position) { + this.position = position; + } +}