Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions src/main/java/com/back/domain/user/dto/UserDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.back.domain.user.dto;

import com.back.domain.user.entity.User;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class UserDto {

private Long id;
private String email;
private String nickname;
private String profileImgUrl;
private Double abvDegree;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;

public static UserDto from(User user) {
if (user == null) return null;
return UserDto.builder()
.id(user.getId())
.email(user.getEmail())
.nickname(user.getNickname())
.profileImgUrl(user.getProfileImgUrl())
.abvDegree(user.getAbvDegree())
.createdAt(user.getCreatedAt())
.updatedAt(user.getUpdatedAt())
.build();
}
}

44 changes: 44 additions & 0 deletions src/main/java/com/back/domain/user/entity/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.back.domain.user.entity;

import jakarta.persistence.*;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import lombok.*;

import java.time.LocalDateTime;

@Entity
@Table(
name = "users", // DB 테이블 이름: User 대신 users 권장 (예약어 충돌 방지)
indexes = {
@Index(name = "ux_users_email", columnList = "email", unique = true)
}
)
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class User {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@NotBlank
@Email
@Column(nullable = false, unique = true)
private String email; // 유저 소셜 이메일 (OAuth2 로그인 시 저장)

@NotBlank
@Column(nullable = false, unique = true)
private String nickname; // 유저 닉네임

private String profileImgUrl; // 프로필 이미지 URL

private Double abvDegree; // 온도(회원 등급)

private LocalDateTime createdAt; // 생성 날짜

private LocalDateTime updatedAt; // 수정 날짜
}
10 changes: 10 additions & 0 deletions src/main/java/com/back/domain/user/repository/UserRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.back.domain.user.repository;

import com.back.domain.user.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}