Commit Graph

1379 Commits

Author SHA1 Message Date
Klaus e6d63592ec fix(chat-character): 관계 스키마 변경에 따라 엔티티/CRUD/응답 DTO 수정
- ChatCharacterRelationship 엔티티를 personName, relationshipName, description(TEXT), importance, relationshipType, currentStatus로 변경

- ChatCharacter.addRelationship 및 Service 메서드 시그니처를 새 스키마에 맞게 수정

- 등록/수정 플로우에서 relationships 매핑 로직 업데이트

- Admin 상세 응답 DTO(RelationshipResponse) 및 매핑 업데이트

- 전체 빌드 성공
2025-08-13 19:49:46 +09:00
Klaus 3ac4ebded3 feat(chat): 외부 캐릭터 챗 세션 API
- 응답값에 Response 모델에 JsonIgnoreProperties 추가하여 필요한 데이터만 파싱할 수 있도록 수정
2025-08-13 16:49:45 +09:00
Klaus 6f9fc659f3 feat(chat): 외부 캐릭터 챗 세션 API URL 수정
- /api/session/... -> /api/sessions/...
2025-08-13 14:39:20 +09:00
Klaus 005bb0ea2e feat(chat): 멤버가 최근에 대화한 캐릭터 목록
- ChatCharacterRepository.kt의 JPQL 정렬 절을 `ORDER BY MAX(COALESCE(m.createdAt, r.createdAt)) DESC`로 변경
2025-08-13 00:08:10 +09:00
Klaus 80a0543e10 feat(admin-character): 캐릭터 배너 리스트 API
- 배너 이미지 URL - hostimagePath => host/imagePath로 수정
2025-08-12 23:38:18 +09:00
Klaus 5d42805514 feat(admin-character): 캐릭터 배너 등록/수정 API
- 배너 이미지 저장 경로 수정
2025-08-12 23:26:13 +09:00
Klaus 1b7ae8a2c5 feat(admin-character): 캐릭터 배너 등록/수정 API
- 배너 이미지 저장 경로 수정
2025-08-12 23:15:34 +09:00
Klaus 168b0b13fb feat(admin-character): 캐릭터 배너 등록/수정 API
- request dto에 JsonProperty 추가
2025-08-12 23:02:18 +09:00
Klaus d99fcba468 feat(admin-character): 캐릭터 배너 등록/수정 API
- request를 JSON String으로 받도록 수정
2025-08-12 22:47:56 +09:00
Klaus 147b8b0a42 feat(admin-character): 캐릭터 수정 API
- 가치관, 취미, 목표가 중복 매핑이 되지 않도록 수정
2025-08-12 21:51:52 +09:00
Klaus eed755fd11 feat(admin-character): 캐릭터 수정 API
- 태그 중복 매핑이 되지 않도록 수정
2025-08-12 21:03:06 +09:00
Klaus 74a612704e feat(admin-character): 캐릭터 수정 API
- 태그 중복 매핑이 되지 않도록 수정
2025-08-12 20:40:25 +09:00
Klaus 8defc56d1e ExternalApiData에 @JsonIgnoreProperties(ignoreUnknown = true)를 추가하여 없는 필드는 무시하도록 수정 2025-08-12 18:22:37 +09:00
Klaus 1db20d118d ExternalApiResponse
- 각 필드에 JsonProperty 추가
2025-08-12 18:08:45 +09:00
Klaus 7a70a770bb 캐릭터 Controller
- exception print
2025-08-12 17:54:39 +09:00
Klaus cc9e4f974f 캐릭터 Controller
- exception print
2025-08-12 17:38:45 +09:00
Klaus 2965b8fea0 feat(admin-character): 캐릭터 리스트, 캐릭터 상세
- CharacterType: 첫 글자만 대문자, 나머지 소문자로 변경
- 이미지가 null 이면 ""으로 변경
2025-08-12 17:01:51 +09:00
Klaus 00c617ec2e feat(admin-character): 캐릭터 상세 결과에 characterType 추가 2025-08-12 16:45:25 +09:00
Klaus 01ef738d31 feat(chat-character): 캐릭터 상세 조회 응답 확장 및 ‘다른 캐릭터’ 추천 추가
- 상세 페이지 정보 강화 및 탐색성 향상을 위해 응답 필드를 확장
- CharacterDetailResponse에 originalTitle, originalLink, characterType, others 추가
- OtherCharacter DTO 추가 (characterId, name, imageUrl, tags)
- 공유 태그 기반으로 현재 캐릭터를 제외한 랜덤 10개 캐릭터 조회 JPA 쿼리 추가
  - ChatCharacterRepository.findRandomBySharedTags(@Query, RAND 정렬, 페이징)
- 서비스 계층에 getOtherCharactersBySharedTags 추가 및 태그 지연 로딩 초기화
- 컨트롤러에서:
  - others 리스트를 조회/매핑하여 응답에 포함
  - originalTitle, originalLink, characterType을 응답에 포함
2025-08-12 03:47:48 +09:00
Klaus 423cbe7315 feat(chat-character): 캐릭터 상세 조회 응답 스키마 간소화 및 태그 포맷 규칙 적용
- CharacterDetailResponse에서 불필요 필드 제거
  - 제거: age, gender, speechPattern, speechStyle, appearance, memories, relationships, values, hobbies, goals
- 성격(personalities), 배경(backgrounds)을 각각 첫 번째 항목 1개만 반환하도록 변경
  - 단일 객체(Optional)로 응답: CharacterPersonalityResponse?, CharacterBackgroundResponse?
- 태그 포맷 규칙 적용
  - 태그에 # 프리픽스가 없으면 붙이고, 공백으로 연결하여 단일 문자열로 반환
- Controller 로직 정리
  - 불필요 매핑 제거 및 DTO 스키마 변경에 맞춘 변환 로직 반영
2025-08-12 03:16:29 +09:00
Klaus afb003c397 feat(chat-character): 원작/원작 링크/캐릭터 유형 추가 및 외부 API 호출 분리
- ChatCharacter 엔티티에 originalTitle, originalLink(Nullable), characterType(Enum) 필드 추가
  - characterType: CLONE | CHARACTER (기본값 CHARACTER)
  - 원작/원작 링크는 빈 문자열 대신 null 허용으로 저장
- Admin DTO(Register/Update)에 originalTitle, originalLink, characterType 필드 추가
- 등록 API에서 외부 API 요청 바디에 3개 필드(originalTitle, originalLink, characterType) 제외 처리
- 수정 API에서 3개 필드만 변경된 경우 외부 API 호출 생략하고 DB만 업데이트
  - hasChanges: 외부 API 대상 필드 변경 여부 판단(3개 필드 제외)
  - hasDbOnlyChanges: 3개 필드만 변경된 경우 처리 분기
- Service 계층에 필드 매핑 및 Enum 파싱 추가
  - createChatCharacter / createChatCharacterWithDetails에 originalTitle/originalLink/characterType 반영
- 이름 중복 검증 로직 유지, isActive=false 비활성화 이름 처리 로직 유지
2025-08-12 02:58:26 +09:00
Klaus 2dc5a29220 feat(chat-character): 관계 name 필드 추가에 따른 등록/수정/조회 로직 및 DTO 반영
- 관계 스키마를 name, relationShip 구조로 일원화
- Admin/사용자 컨트롤러 조회 응답에서 관계를 객체로 반환하도록 수정
- 등록/수정 요청 DTO에 ChatCharacterRelationshipRequest(name, relationShip) 추가
- 서비스 계층 create/update/add 메소드 시그니처 및 매핑 로직 업데이트
- description 한 줄 소개 사용 전제 하의 관련 사용부 점검(엔티티 컬럼 구성은 기존 유지)
2025-08-12 02:13:46 +09:00
Klaus c525ec0330 feat(chat): 내 채팅방 목록 페이징 적용 및 page 파라미터 추가
- Repository에 Pageable 인자로 전달하여 DB 레벨 limit/offset 적용
- Service에서 PageRequest.of(page, 20)로 20개 페이지 처리 고정
- Controller /api/chat/room/list에 page 요청 파라미터 추가 및 전달

왜: 참여 중인 채팅방 목록이 페이징되지 않아 20개 단위로 최신 메시지 기준 내림차순 페이징 처리 필요
2025-08-11 14:26:00 +09:00
Klaus 735f1e26df feat(chat-character): 최근 대화한 캐릭터 조회 구현 및 메인 API 연동
왜: 기존에는 채팅방 미구현으로 최근 대화 리스트를 빈 배열로 응답했음. 채팅방/메시지 기능이 준비됨에 따라 실제 최근 대화 캐릭터를 노출해야 함.
무엇:
- repository: findRecentCharactersByMember JPA 쿼리 추가 (채팅방/참여자/메시지 조인, 최신 메시지 기준 정렬)
- service: getRecentCharacters(member, limit) 구현 (member null 처리 및 페이징 적용)
- controller: /api/chat/character/main에서 인증 사용자 기준 최근 캐릭터 최대 10개 반환
2025-08-11 11:33:35 +09:00
Klaus 5129400a29 fix(banner): 캐릭터 검색 결과
- Paging 관련 데이터 중 totalCount만 반환
2025-08-08 21:46:47 +09:00
Klaus a6a01aaa37 fix(banner): 캐릭터 검색
- 검색 결과에 imageHost와 imagePath 사이에 / 추가
2025-08-08 21:19:37 +09:00
Klaus b819df9656 feat(securityConfig): 아래 API는 로그인 하지 않아도 조회할 수 있도록 수정
- /api/chat/list
2025-08-08 17:31:21 +09:00
Klaus 5d1c5fcc44 fix(chat): 채팅방 메시지
- 메시지 DB 타입을 TEXT로 변경
2025-08-08 17:11:38 +09:00
Klaus ebad3b31b7 fix(chat): 채팅방 메시지 전송 API
- 빈 메시지이면 전송하지 않고 반환
2025-08-08 16:52:30 +09:00
Klaus 3e9f7f9e29 fix(chat): 채팅방, 채팅방 메시지, 채팅방 참여자 엔티티 이름 변경
- CharacterChatRoom -> ChatRoom
- CharacterChatMessage -> ChatMessage
- CharacterChatParticipant -> ChatParticipant
2025-08-08 16:47:47 +09:00
Klaus 4b3463e97c feat(chat): 채팅방 메시지 전송 API 구현 2025-08-08 16:41:53 +09:00
Klaus 002f2c2834 feat(chat): 채팅방 메시지 조회 API 구현 2025-08-08 16:00:30 +09:00
Klaus 1509ee0729 feat(chat): 채팅방 나가기 API 구현 2025-08-08 15:48:20 +09:00
Klaus 830e41dfa3 feat(chat): 채팅방 세션 조회 API 구현 2025-08-08 15:15:29 +09:00
Klaus 4d1f84cc5c feat(chat-room): 채팅방 목록 API 응답 구조 개편 및 최근 메시지/프로필 이미지 제공\n\n- 페이징 객체 제거: ApiResponse<List<ChatRoomListItemDto>> 형태로 반환\n- 메시지 보낸 시간 필드 제거\n- 상대방(캐릭터) 프로필 이미지 URL 제공 (imageHost/imagePath 조합 -> imageUrl)\n- 가장 최근 메시지 1개 미리보기 제공 (최대 25자, 초과 시 ... 처리)\n- 목록 조회 쿼리 투영 DTO 및 정렬 로직 개선 (최근 메시지 없으면 방 생성 시간 사용)\n- 비인증/미본인인증 사용자: 빈 리스트 반환 2025-08-08 14:27:25 +09:00
Klaus 1bafbed17c feat(chat): 채팅방 생성 API 구현
- 채팅방 생성 및 조회 기능 구현
- 외부 API 연동을 통한 세션 생성 로직 추가
- 채팅방 참여자(유저, 캐릭터) 추가 기능 구현
- UUID 기반 유저 ID 생성 로직 추가
2025-08-08 00:27:25 +09:00
Klaus 694d9cd05a feat(character chat room): 채팅방, 채팅메시지, 채팅방 참여자 엔티티 구성 2025-08-07 23:35:57 +09:00
Klaus 60172ae84d feat(character): 캐릭터 상세 조회 API 추가
- 캐릭터 ID로 상세 정보를 조회하는 API 엔드포인트 추가
- 캐릭터 상세 정보 조회 서비스 메서드 구현
- 캐릭터 상세 정보 응답 DTO 클래스 추가
2025-08-07 23:10:36 +09:00
Klaus 7e7a1122fa refactor(character): 최근 등록된 캐릭터 조회 로직 개선
조회할 때부터 isActive = true, limit 10개를 불러오도록 리팩토링
- ChatCharacterRepository에 findByIsActiveTrueOrderByCreatedAtDesc 메소드 추가
- ChatCharacterService의 getNewCharacters 메소드 수정
2025-08-07 22:40:06 +09:00
Klaus a1533c8e98 feat(character): 캐릭터 메인 API 추가 2025-08-07 22:33:29 +09:00
Klaus b0a6fc6498 feat: weraser api 연동 부분
- exception 발생시 exception message도 같이 출력
2025-08-07 21:18:29 +09:00
Klaus 74ed7b20ba feat: 캐릭터 생성/수정 Request
- JsonProperty 추가
2025-08-07 20:48:27 +09:00
Klaus 206c25985a fix: 캐릭터 리포지토리
- active -> isActive로 변경
2025-08-07 16:52:41 +09:00
Klaus 0001697274 fix: 환경변수 값 변수명 수정 2025-08-07 16:15:56 +09:00
Klaus add21c45c5 fix(캐릭터 성격특성): description SQL 컬럼 타입 TEXT로 변경 2025-08-07 16:01:53 +09:00
Klaus ef8458c7a3 feat(banner): 정렬 순서 추가 2025-08-07 15:31:03 +09:00
Klaus 81f972edc1 fix(banner): ChatCharacterBanner 엔티티의 isActive 속성 참조 오류 수정
- 사용하지 않는 메서드 제거
2025-08-07 14:45:28 +09:00
Klaus c729a402aa feat(banner): 배너 등록/수정/삭제 API 2025-08-07 14:38:09 +09:00
Klaus 2335050834 feat(admin): 관리자 페이지 캐릭터 상세 API 구현 2025-08-07 12:30:19 +09:00
Klaus 6340ed27cf fix(chat): ChatCharacter 엔티티의 isActive 속성 참조 오류 수정 2025-08-07 12:01:34 +09:00