diff --git a/application/src/main/java/org/depromeet/spot/application/member/dto/request/RegisterReq.java b/application/src/main/java/org/depromeet/spot/application/member/dto/request/RegisterReq.java index dbfbc156..e3a0f520 100644 --- a/application/src/main/java/org/depromeet/spot/application/member/dto/request/RegisterReq.java +++ b/application/src/main/java/org/depromeet/spot/application/member/dto/request/RegisterReq.java @@ -19,9 +19,11 @@ public record RegisterReq( regexp = "^[a-zA-Z0-9가-힣]*$", message = "닉네임은 알파벳 대소문자, 숫자, 한글만 허용하며, 공백은 불가능합니다.") String nickname, - @NotNull(message = "응원 팀 선택은 필수입니다.") - @Schema(description = "응원 팀 pk") - @Range(min = 1, max = 11, message = "응원 팀은 1번(두산 베어스)부터 11번(없음)까지 입니다.") + @Schema(description = "응원 팀 pk") + @Range( + min = 1, + max = 10, + message = "응원 팀은 null(모두 응원), 1번(두산 베어스)부터 10번(NC 다이노스)까지 입니다.") Long teamId) { public Member toDomain() { diff --git a/infrastructure/jpa/src/main/java/org/depromeet/spot/jpa/member/entity/MemberEntity.java b/infrastructure/jpa/src/main/java/org/depromeet/spot/jpa/member/entity/MemberEntity.java index e2f5a6f3..a22957fc 100644 --- a/infrastructure/jpa/src/main/java/org/depromeet/spot/jpa/member/entity/MemberEntity.java +++ b/infrastructure/jpa/src/main/java/org/depromeet/spot/jpa/member/entity/MemberEntity.java @@ -55,7 +55,7 @@ public class MemberEntity extends BaseEntity { @Column(name = "id_token", nullable = false, unique = true, length = 255) private String idToken; - @Column(name = "team_id", nullable = false, length = 10) + @Column(name = "team_id", length = 10) private Long teamId; @Column(name = "role", nullable = false) diff --git a/usecase/src/main/java/org/depromeet/spot/usecase/port/in/member/MemberUsecase.java b/usecase/src/main/java/org/depromeet/spot/usecase/port/in/member/MemberUsecase.java index 8084d352..bc851b3b 100644 --- a/usecase/src/main/java/org/depromeet/spot/usecase/port/in/member/MemberUsecase.java +++ b/usecase/src/main/java/org/depromeet/spot/usecase/port/in/member/MemberUsecase.java @@ -34,6 +34,17 @@ class MemberInfo { private String teamImageUrl; private final Long teamId; + public static MemberInfo from(Member member) { + return MemberInfo.builder() + .nickname(member.getNickname()) + .profileImageUrl(member.getProfileImage()) + .level(member.getLevel().getValue()) + .levelTitle(member.getLevel().getTitle()) + .teamImageUrl(null) + .teamId(null) + .build(); + } + public static MemberInfo of(Member member, BaseballTeam baseballTeam) { return MemberInfo.builder() .nickname(member.getNickname()) diff --git a/usecase/src/main/java/org/depromeet/spot/usecase/service/member/MemberService.java b/usecase/src/main/java/org/depromeet/spot/usecase/service/member/MemberService.java index beaa5cf7..1438a8c0 100644 --- a/usecase/src/main/java/org/depromeet/spot/usecase/service/member/MemberService.java +++ b/usecase/src/main/java/org/depromeet/spot/usecase/service/member/MemberService.java @@ -78,8 +78,10 @@ public boolean deleteMember(String accessToken) { @Override public MemberInfo findMemberInfo(Long memberId) { Member member = readMemberUsecase.findById(memberId); + if (member.getTeamId() == null) { + return MemberInfo.from(member); + } BaseballTeam baseballTeam = readBaseballTeamUsecase.findById(member.getTeamId()); - return MemberInfo.of(member, baseballTeam); } diff --git a/usecase/src/main/java/org/depromeet/spot/usecase/service/member/UpdateMemberService.java b/usecase/src/main/java/org/depromeet/spot/usecase/service/member/UpdateMemberService.java index c36412f9..39c62502 100644 --- a/usecase/src/main/java/org/depromeet/spot/usecase/service/member/UpdateMemberService.java +++ b/usecase/src/main/java/org/depromeet/spot/usecase/service/member/UpdateMemberService.java @@ -27,12 +27,18 @@ public class UpdateMemberService implements UpdateMemberUsecase { @Override public Member updateProfile(final Long memberId, UpdateProfileCommand command) { Member member = readMemberUsecase.findById(memberId); - readBaseballTeamUsecase.areAllTeamIdsExist(Set.of(command.teamId())); - Member updateMember = - member.updateProfile(command.profileImage(), command.nickname(), command.teamId()); + Member updateMember = getUpdateMember(member, command); return memberRepository.updateProfile(updateMember); } + private Member getUpdateMember(Member member, UpdateProfileCommand command) { + Long teamId = command.teamId(); + if (teamId != null) { + readBaseballTeamUsecase.areAllTeamIdsExist(Set.of(teamId)); + } + return member.updateProfile(command.profileImage(), command.nickname(), teamId); + } + @Override public Member updateLevel(Member member, long reviewCnt) { final int newLevelValue = Level.calculateLevel(reviewCnt);