File tree Expand file tree Collapse file tree 3 files changed +92
-0
lines changed
src/main/java/com/back/domain/user Expand file tree Collapse file tree 3 files changed +92
-0
lines changed Original file line number Diff line number Diff line change 1+ package com .back .domain .user .dto ;
2+
3+ import com .back .domain .user .entity .User ;
4+ import lombok .AllArgsConstructor ;
5+ import lombok .Builder ;
6+ import lombok .Getter ;
7+ import lombok .NoArgsConstructor ;
8+
9+ import java .time .LocalDateTime ;
10+
11+ @ Getter
12+ @ NoArgsConstructor
13+ @ AllArgsConstructor
14+ @ Builder
15+ public class UserDto {
16+
17+ private Long id ;
18+ private String email ;
19+ private String nickname ;
20+ private String profileImgUrl ;
21+ private Double abvDegree ;
22+ private LocalDateTime createdAt ;
23+ private LocalDateTime updatedAt ;
24+
25+ public static UserDto from (User user ) {
26+ if (user == null ) return null ;
27+ return UserDto .builder ()
28+ .id (user .getId ())
29+ .email (user .getEmail ())
30+ .nickname (user .getNickname ())
31+ .profileImgUrl (user .getProfileImgUrl ())
32+ .abvDegree (user .getAbvDegree ())
33+ .createdAt (user .getCreatedAt ())
34+ .updatedAt (user .getUpdatedAt ())
35+ .build ();
36+ }
37+ }
38+
Original file line number Diff line number Diff line change 1+ package com .back .domain .user .entity ;
2+
3+ import jakarta .persistence .*;
4+ import jakarta .validation .constraints .Email ;
5+ import jakarta .validation .constraints .NotBlank ;
6+ import lombok .*;
7+
8+ import java .time .LocalDateTime ;
9+
10+ @ Entity
11+ @ Table (
12+ name = "users" , // DB 테이블 이름: User 대신 users 권장 (예약어 충돌 방지)
13+ indexes = {
14+ @ Index (name = "ux_users_email" , columnList = "email" , unique = true )
15+ }
16+ )
17+ @ Getter
18+ @ Setter
19+ @ NoArgsConstructor
20+ @ AllArgsConstructor
21+ @ Builder
22+ public class User {
23+
24+ @ Id
25+ @ GeneratedValue (strategy = GenerationType .IDENTITY )
26+ private Long id ;
27+
28+ @ NotBlank
29+ @ Email
30+ @ Column (nullable = false , unique = true )
31+ private String email ; // 유저 소셜 이메일 (OAuth2 로그인 시 저장)
32+
33+ @ NotBlank
34+ @ Column (nullable = false , unique = true )
35+ private String nickname ; // 유저 닉네임
36+
37+ private String profileImgUrl ; // 프로필 이미지 URL
38+
39+ private Double abvDegree ; // 온도(회원 등급)
40+
41+ private LocalDateTime createdAt ; // 생성 날짜
42+
43+ private LocalDateTime updatedAt ; // 수정 날짜
44+ }
Original file line number Diff line number Diff line change 1+ package com .back .domain .user .repository ;
2+
3+ import com .back .domain .user .entity .User ;
4+ import org .springframework .data .jpa .repository .JpaRepository ;
5+ import org .springframework .stereotype .Repository ;
6+
7+ @ Repository
8+ public interface UserRepository extends JpaRepository <User , Long > {
9+ }
10+
You can’t perform that action at this time.
0 commit comments