11package everTale .everTale_be .domain .character .dto ;
22
33import everTale .everTale_be .domain .character .entity .StoryCharacter ;
4+ import everTale .everTale_be .domain .profile .entity .Profile ;
5+ import everTale .everTale_be .domain .story .entity .Story ;
46import io .swagger .v3 .oas .annotations .media .Schema ;
57import lombok .Builder ;
68import lombok .Getter ;
1315@ Schema (description = "캐릭터 상세 조회 응답 DTO" )
1416public class CharacterDetailResponseDto {
1517
18+ @ Schema (description = "캐릭터 이미지 URL" , example = "https://example.com/image.png" )
19+ private String imageUrl ;
20+
1621 @ Schema (description = "캐릭터 이름" , example = "글로든" )
1722 private String name ;
1823
@@ -25,18 +30,27 @@ public class CharacterDetailResponseDto {
2530 @ Schema (description = "캐릭터 성격 목록" , example = "[\" 활발함\" , \" 외향적\" ]" )
2631 private List <String > personalities ;
2732
33+ @ Schema (description = "캐릭터가 등장하는 스토리 ID" , example = "5" )
34+ private Long storyId ;
35+
2836 @ Schema (description = "캐릭터가 등장하는 스토리 제목" , example = "엘리오" )
2937 private String storyTitle ;
3038
31- public static CharacterDetailResponseDto from (StoryCharacter character ){
39+ @ Schema (description = "작가 이름" , example = "김이화" )
40+ private String authorName ;
41+
42+ public static CharacterDetailResponseDto from (StoryCharacter character , Story story , Profile author ){
3243 return CharacterDetailResponseDto .builder ()
44+ .imageUrl (character .getImageUrl ())
3345 .name (character .getName ())
3446 .age (character .getAge ())
3547 .gender (String .valueOf (character .getGender ()))
3648 .personalities (character .getCharacterPersonalities ().stream ()
3749 .map (characterPersonality -> characterPersonality .getPersonality ().getPersonality ())
3850 .collect (Collectors .toList ()))
39- .storyTitle (character .getStory ().getTitle ())
51+ .storyId (story .getId ())
52+ .storyTitle (story .getTitle ())
53+ .authorName (author .getName ())
4054 .build ();
4155 }
4256}
0 commit comments