44import java .util .List ;
55
66import org .ezcode .codetest .common .base .entity .BaseEntity ;
7+ import org .ezcode .codetest .domain .language .model .entity .Language ;
78import org .ezcode .codetest .domain .user .model .enums .Tier ;
89import org .ezcode .codetest .domain .user .model .enums .UserRole ;
910
1011import jakarta .persistence .CascadeType ;
1112import jakarta .persistence .Column ;
12- import jakarta .persistence .ElementCollection ;
1313import jakarta .persistence .Entity ;
1414import jakarta .persistence .EnumType ;
1515import jakarta .persistence .Enumerated ;
1616import jakarta .persistence .FetchType ;
1717import jakarta .persistence .GeneratedValue ;
1818import jakarta .persistence .GenerationType ;
1919import jakarta .persistence .Id ;
20+ import jakarta .persistence .JoinColumn ;
21+ import jakarta .persistence .ManyToOne ;
2022import jakarta .persistence .OneToMany ;
23+ import jakarta .persistence .OneToOne ;
2124import jakarta .persistence .Table ;
2225import lombok .AccessLevel ;
2326import lombok .Builder ;
@@ -72,17 +75,20 @@ public class User extends BaseEntity {
7275 @ OneToMany (mappedBy = "user" , cascade = CascadeType .ALL , orphanRemoval = true )
7376 private List <UserAuthType > userAuthTypes = new ArrayList <>();
7477
78+ @ ManyToOne (fetch = FetchType .LAZY )
79+ @ JoinColumn (name = "language_id" )
80+ private Language language ;
81+
7582 private boolean verified ; //이메일 인증 여부
7683
7784 private boolean gitPushStatus ; //깃허브 자동 push 여부
7885
79-
8086 /*
8187 처음 유저 생성(가입) 시에는 기본 정보만 받음
8288 - 이메일, 비번, 이름, 별명, 나이
8389 -> 이후 회원정보 업데이트할 때, 원하는 정보를 입력할 수 있도록 함
8490 */
85- public static User emailUser (String email , String password , String username , String nickname , Integer age ) {
91+ public static User emailUser (String email , String password , String username , String nickname , Integer age , Language language ) {
8692 return User .builder ()
8793 .email (email )
8894 .password (password )
@@ -94,14 +100,15 @@ public static User emailUser(String email, String password, String username, Str
94100 .isDeleted (false )
95101 .verified (false )
96102 .gitPushStatus (false )
103+ .language (language )
97104 .build ();
98105 }
99106
100107 /*
101108 OAuth2로 로그인한 유저 저장
102109 구글 이외의 다른 소셜 로그인 확장 가능성을 고려해 socialUser 이름 유지
103110 */
104- public static User socialUser (String email , String username , String nickname , String password ) {
111+ public static User socialUser (String email , String username , String nickname , String password , Language language ) {
105112 return User .builder ()
106113 .email (email )
107114 .username (username )
@@ -112,11 +119,12 @@ public static User socialUser(String email, String username, String nickname, St
112119 .isDeleted (false )
113120 .verified (false )
114121 .gitPushStatus (false )
122+ .language (language )
115123 .build ();
116124 }
117125
118126 //깃허브 아이디와 url을 함께 저장하기 위해 따로 저장
119- public static User githubUser (String email , String username , String nickname , String password , String githubUrl ){
127+ public static User githubUser (String email , String username , String nickname , String password , String githubUrl , Language language ){
120128 return User .builder ()
121129 .email (email )
122130 .username (username )
@@ -128,13 +136,14 @@ public static User githubUser(String email, String username, String nickname, St
128136 .verified (false )
129137 .githubUrl (githubUrl )
130138 .gitPushStatus (false )
139+ .language (language )
131140 .build ();
132141 }
133142
134143
135144 @ Builder
136145 public User (String email , String password , String username , String nickname ,
137- Integer age , Tier tier , UserRole role , boolean isDeleted , boolean verified , String githubUrl , boolean gitPushStatus ) {
146+ Integer age , Tier tier , UserRole role , boolean isDeleted , boolean verified , String githubUrl , boolean gitPushStatus , Language language ) {
138147 this .email = email ;
139148 this .password = password ;
140149 this .username = username ;
@@ -146,6 +155,7 @@ public User(String email, String password, String username, String nickname,
146155 this .verified = verified ;
147156 this .githubUrl = githubUrl ;
148157 this .gitPushStatus = gitPushStatus ;
158+ this .language = language ;
149159 }
150160
151161 /*
0 commit comments