Skip to content
Merged
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.wayble.server.common.converter;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.persistence.AttributeConverter;
import jakarta.persistence.Converter;
import lombok.extern.slf4j.Slf4j;

import java.util.Collections;
import java.util.List;

@Slf4j
@Converter
public class StringListConverter implements AttributeConverter<List<String>, String> {
private static final ObjectMapper objectMapper = new ObjectMapper();

@Override
public String convertToDatabaseColumn(List<String> list) {
try {
return list == null ? "[]" : objectMapper.writeValueAsString(list);
} catch (Exception e) {
log.warn("Failed to convert list to JSON string: {}", list, e);
return "[]";
}
}

@Override
public List<String> convertToEntityAttribute(String json) {
try {
if (json == null || json.isBlank()) return Collections.emptyList();
return objectMapper.readValue(json, new TypeReference<List<String>>() {});
} catch (Exception e) {
log.warn("Failed to convert JSON string to list: {}", json, e);
return Collections.emptyList();
}
}
}

Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.wayble.server.user.controller;

import com.wayble.server.common.config.security.jwt.JwtTokenProvider;
import com.wayble.server.common.exception.ApplicationException;
import com.wayble.server.common.response.CommonResponse;
import com.wayble.server.user.dto.UserInfoRegisterRequestDto;
Expand All @@ -9,7 +8,6 @@
import com.wayble.server.user.exception.UserErrorCase;
import com.wayble.server.user.service.UserInfoService;
import com.wayble.server.user.service.UserService;
import com.wayble.server.auth.service.AuthService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import jakarta.validation.constraints.Size;
import lombok.Getter;

import java.util.List;

@Getter
public class UserInfoRegisterRequestDto {
@NotBlank(message = "닉네임은 필수입니다.")
Expand All @@ -23,6 +25,6 @@ public class UserInfoRegisterRequestDto {
@NotNull(message = "유저 타입은 필수입니다.")
private UserType userType;

private String disabilityType; // 장애 유형, (userType == DISABLED만 값 존재)
private String mobilityAid; // 이동보조수단, (userType == DISABLED만 값 존재)
private List<String> disabilityType; // 장애 유형, (userType == DISABLED만 값 존재)
private List<String> mobilityAid; // 이동보조수단, (userType == DISABLED만 값 존재)
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@
import com.wayble.server.user.entity.UserType;
import lombok.Getter;

import java.util.List;

@Getter
public class UserInfoUpdateRequestDto {
private String nickname; // 변경할 닉네임 (nullable)
private String birthDate; // YYYY-MM-DD (nullable)
private Gender gender; // MALE, FEMALE, UNKNOWN (nullable)
private UserType userType; // GENERAL, DISABLED, COMPANION (nullable)
private String disabilityType; // userType이 DISABLED일 때만 값, 아니면 null
private String mobilityAid; // userType이 DISABLED일 때만 값, 아니면 null
private List<String> disabilityType; // userType이 DISABLED일 때만 값, 아니면 null
private List<String> mobilityAid; // userType이 DISABLED일 때만 값, 아니면 null
}
12 changes: 8 additions & 4 deletions src/main/java/com/wayble/server/user/entity/User.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.wayble.server.user.entity;

import com.wayble.server.common.converter.StringListConverter;
import com.wayble.server.common.entity.BaseEntity;
import com.wayble.server.review.entity.Review;
import jakarta.persistence.*;
Expand Down Expand Up @@ -58,11 +59,14 @@ public class User extends BaseEntity {
@Column(name = "profile_image_url")
private String profileImageUrl;

@Convert(converter = StringListConverter.class)
@Column(name = "disability_type")
private String disabilityType; // 장애 유형 (발달장애,시각장애,지체장애,청각장애)
private List<String> disabilityType; // 장애 유형 (발달장애,시각장애,지체장애,청각장애)


@Convert(converter = StringListConverter.class)
@Column(name = "mobility_aid")
private String mobilityAid; // 이동 보조 수단 (안내견,지팡이,동행인,휠체어)
private List<String> mobilityAid; // 이동 보조 수단 (안내견,지팡이,동행인,휠체어)

@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Review> reviewList = new ArrayList<>();
Expand Down Expand Up @@ -117,9 +121,9 @@ public void setNickname(String nickname) {
this.nickname = nickname;
}

public void setDisabilityType(String disabilityType) { this.disabilityType = disabilityType; }
public void setDisabilityType(List<String> disabilityType) { this.disabilityType = disabilityType; }

public void setMobilityAid(String mobilityAid) { this.mobilityAid = mobilityAid; }
public void setMobilityAid(List<String> mobilityAid) { this.mobilityAid = mobilityAid; }

public void setBirthDate(LocalDate birthDate) { this.birthDate = birthDate; }

Expand Down