Skip to content

Commit 6e96cdd

Browse files
안훈기안훈기
authored andcommitted
✨ Feat: 회원가입 시 관심 종목 선택 기능 추가
1 parent 522e969 commit 6e96cdd

File tree

4 files changed

+14
-3
lines changed

4 files changed

+14
-3
lines changed

src/main/java/com/be/sportizebe/domain/user/dto/request/SignUpRequest.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package com.be.sportizebe.domain.user.dto.request;
22

3+
import com.be.sportizebe.common.enums.SportType;
34
import com.be.sportizebe.domain.user.entity.Gender;
45
import io.swagger.v3.oas.annotations.media.Schema;
56
import jakarta.validation.constraints.NotBlank;
67
import jakarta.validation.constraints.Size;
78

9+
import java.util.List;
10+
811
public record SignUpRequest(
912
@Schema(description = "사용자 아이디", example = "sportize_user")
1013
@NotBlank(message = "아이디를 입력해주세요.")
@@ -24,6 +27,9 @@ public record SignUpRequest(
2427

2528
@Schema(description = "전화번호", example = "010-xxxx-xxxx")
2629
@NotBlank(message = "전화번호를 입력해주세요")
27-
String phoneNumber
30+
String phoneNumber,
31+
32+
@Schema(description = "관심 종목 목록 (선택)", example = "[\"SOCCER\", \"BASKETBALL\"]")
33+
List<SportType> interestSports
2834
) {
2935
}

src/main/java/com/be/sportizebe/domain/user/dto/response/SignUpResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public record SignUpResponse(
88
@Schema(description = "사용자 식별자", example = "1")
99
Long userId,
1010

11-
@Schema(description = "사용자 아이디(이메일 형식)", example = "user@example.com")
11+
@Schema(description = "사용자 아이디", example = "sportize_user")
1212
String username,
1313

1414
@Schema(description = "사용자 권한", example = "USER")

src/main/java/com/be/sportizebe/domain/user/entity/User.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,12 @@ public class User extends BaseTimeEntity {
4343
@Enumerated(EnumType.STRING)
4444
private Role role;
4545

46+
@ElementCollection(fetch = FetchType.LAZY)
47+
@CollectionTable(name = "user_interest_types", joinColumns = @JoinColumn(name = "user_id"))
48+
@Column(name = "sport_type")
4649
@Enumerated(EnumType.STRING)
47-
private List<SportType> interestType; // 사용자 관심 종목
50+
@Builder.Default
51+
private List<SportType> interestType = new ArrayList<>(); // 사용자 관심 종목
4852

4953
private String profileImage; // 프로필 사진 URL
5054

src/main/java/com/be/sportizebe/domain/user/service/UserServiceImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public SignUpResponse signUp(SignUpRequest request) {
5555
.phoneNumber(request.phoneNumber())
5656
.gender(request.gender())
5757
.role(Role.USER)
58+
.interestType(request.interestSports() != null ? request.interestSports() : new java.util.ArrayList<>())
5859
.build();
5960

6061
User savedUser = userRepository.save(user);

0 commit comments

Comments
 (0)