Commit Graph

145 Commits

Author SHA1 Message Date
acd0393a0e feat(chat): 채팅방 리스트 조회 API를 추가한다 2026-05-14 16:12:14 +09:00
3a0c30e340 feat(i18n): 번역 작업 큐와 언어 감지 캐시를 도입한다
조회 중 외부 번역 호출을 줄이고 누락 번역을 비동기 job으로 처리한다.
2026-05-06 18:02:36 +09:00
d736ec4368 feat(chat-quota): 채팅방 쿼터 충전 방식과 옵션을 확장한다 2026-04-29 18:44:36 +09:00
360678091c rollback(chat): 채팅을 보낼 때 userName 보내던 내용 제거 2026-04-03 16:59:50 +09:00
df33ab665e fix(chat): 외부 채팅 API userName 필드명을 맞춘다 2026-04-03 12:09:23 +09:00
87c47f8143 fix(chat): 외부 채팅 API 요청에 username을 전달한다 2026-04-03 11:38:00 +09:00
ee14389786 feat(chat-banner): 다국어 캐릭터 배너 등록과 노출을 지원한다
배너를 언어별로 저장하고 요청 언어 우선 조회 후 한국어로 fallback 하도록 맞춘다.
2026-04-02 15:32:42 +09:00
06acfae1c9 fix(chat): AI 캐릭터 성인 접근 판정을 국가별 정책에 맞춘다 2026-04-02 14:15:28 +09:00
a87bd147dc feat(content-preference): 콘텐츠 조회 설정 서버 저장 전환을 반영한다 2026-03-27 13:33:51 +09:00
ec077d23f0 인기 캐릭터 번역 조회 개선 2026-02-13 15:46:54 +09:00
f53dcc32bd 채팅 캐릭터 등록 - 리전 등록 기능 추가 2026-01-22 15:31:02 +09:00
9d619450ef 채팅 메시지 다국어 분리 2025-12-23 18:38:54 +09:00
ff1b8aa413 예외 메시지 다국어 처리를 위한 키 기반 구조 도입 2025-12-22 16:39:06 +09:00
6fa0667120 채팅방 서비스에 언어 컨텍스트에 따라 캐릭터명 번역을 적용하는 기능이 추가되어, 영어와 일본어 설정 시 번역된 캐릭터명이 표시되도록 수정 2025-12-19 23:54:25 +09:00
67a8de9e7a 캐릭터 상세 조회 - 원작 번역 및 캐릭터 소개 일괄 번역 기능 구현 2025-12-16 06:52:48 +09:00
0c52804f06 원작 목록의 제목과 콘텐츠 타입을 현재 언어(locale)에 맞춰 일괄 번역 기능 추가 2025-12-16 06:19:15 +09:00
7955be45da 원작 등록/수정시 번역 API 호출 2025-12-16 06:10:18 +09:00
165640201f AI Character API에서 api 마다 languageCode를 별도로 받던 것을 LangContext를 사용하도록 리팩토링 2025-12-12 19:09:33 +09:00
8fec60db11 AI 캐릭터, 콘텐츠 등록/수정 시 번역 데이터 생성 2025-12-12 04:52:02 +09:00
5d925e98e0 AI 캐릭터 번역 데이터, 콘텐츠 번역 데이터 엔티티에서 사용하지 않는 필드 제거 2025-12-12 03:05:50 +09:00
2355aa7c75 AI 캐릭터 리스트에 번역 데이터 제공 기능 추가 2025-12-12 01:32:02 +09:00
143ba2fbb2 HomeApi - languageCode에 따라 콘텐츠, 캐릭터의 번역 데이터를 제공하도록 수정 2025-12-11 23:58:17 +09:00
4498af4509 Fix AI character translation unique constraint column 2025-12-11 18:19:10 +09:00
8636a8cac0 캐릭터 번역 캐시 및 응답 필드 추가 2025-12-11 17:19:00 +09:00
503802bcce feat(chat-character): 캐릭터 상세 조회 시 언어 코드 추가 2025-11-26 11:53:40 +09:00
899f2865b3 feat(chat-character): 캐릭터 등록시 파파고 언어 감지 API를 호출하여 languageCode를 기록하는 기능 추가 2025-11-26 11:40:58 +09:00
e0dcbd16fc feat(character-comment): 캐릭터 댓글의 답글 조회시 결과에 언어 코드 추가 2025-11-25 19:35:59 +09:00
62ec994069 feat(character-comment): 캐릭터 댓글 조회시 결과에 언어 코드 추가 2025-11-25 18:12:50 +09:00
8f4544ad71 refactor(lang-detect): LanguageDetectEvent ID 필드를 단일 id로 통합
- LanguageDetectEvent의 contentId/commentId를 제거하고 공통 id(Long) 필드로 단순화
- LanguageDetectListener에서 targetType에 따라 id를 AudioContent/AudioContentComment/CharacterComment 조회에 사용하도록 수정
- AudioContentService, AudioContentCommentService, AudioContentDonationService, CharacterCommentService 등 이벤트 발행부를 새 시그니처(id + targetType)로 정리
2025-11-25 16:32:29 +09:00
619ceeea24 feat(character-comment): 캐릭터 댓글 등록 시 언어 코드가 null인 경우 파파고 언어 감지 API를 호출하는 기능 추가 2025-11-25 16:19:08 +09:00
a2998002e5 feat(character-comment): 캐릭터 댓글 등록 시 언어 코드를 입력 받을 수 있는 기능 추가 2025-11-25 16:10:20 +09:00
146f733f5d feat(chat-character): 추천 캐릭터 개수 20 -> 30개로 변경 2025-11-17 15:50:40 +09:00
04e7c90407 fix(character): isNew -> new로 변경 2025-11-14 05:39:56 +09:00
f278497526 fix(character): isNew -> new로 변경 2025-11-14 05:37:24 +09:00
597bd8f8ae feat(chat-character): Character DTO에 isNew 매핑 적용(N+1 제거)
- 내용: 서비스 매핑에서 보조 쿼리 결과를 이용해 `isNew` 채움
2025-11-13 22:44:13 +09:00
e4c1cf5a9a feat(repo): 최근 3일 내 이미지 보유 캐릭터 id 일괄 조회 쿼리 추가
- 내용: `findCharacterIdsWithRecentImages(characterIds, since)` 추가
- 본문: 왜(이유) – N+1 제거, 무엇 – IN 기반 벌크 조회
2025-11-13 22:41:20 +09:00
16b6c13309 feat(chat-character): 추천 캐릭터 조회 및 메인/새로고침 API 반영 2025-11-11 17:01:50 +09:00
779fc5c5a5 feat(chat): 채팅권 구매 가격과 채팅횟수 변경
- 기존: 30캔, 채팅 40개
- 변경: 10캔, 채팅 12개
2025-10-22 16:40:54 +09:00
a6dfa81ba6 사용하지 않는 '지정 원작에 속한 활성 캐릭터 목록 조회 API' 제거 2025-09-18 22:49:35 +09:00
eb2d093b02 feat(admin-character-list): 캐릭터 검색에 페이징 추가 2025-09-18 19:29:34 +09:00
67186bba55 feat(original): 원작
- 원천 원작, 원천 원작 링크, 글/그림 작가, 제작사, 태그 추가
2025-09-18 18:04:59 +09:00
edeecad2ce feat(original-app): 원작 리스트
- 페이징 추가
2025-09-15 16:00:09 +09:00
387f5388d9 feat(original-app): 원작 상세, 캐릭터 리스트
- 원작 상세에 캐릭터 20개 조회
- 지정 원작에 속한 활성 캐릭터 목록 조회 API 추가
2025-09-15 15:32:20 +09:00
7f3589dcfb fix(original): 인기 캐릭터 조회
- 캐시 키 변경
2025-09-15 05:20:46 +09:00
41c8d0367d feat(original): 원작별 캐릭터 조회 API 추가 2025-09-15 00:31:14 +09:00
3b148d549e feat(original-app): 앱용 원작 목록/상세 API 및 조회 로직 추가
- 공개 목록 API: 미인증 사용자는 19금 비노출, 활성 캐릭터가 1개 이상 연결된 원작만 반환, 총개수+리스트 제공
- 상세 API: 로그인/본인인증 필수, 원작 상세+소속 활성 캐릭터 리스트 반환
2025-09-14 23:27:58 +09:00
b6c96af8a2 feat(original): 원작 도메인과 캐릭터를 연결하기 위해 각각 검색 API 추가 2025-09-14 23:00:33 +09:00
4904625488 feat(original): 원작 도메인 추가, 관리자 CRUD/연결 API, 소프트 삭제, 서비스 계층 정비
- 원작 엔티티/레포지토리/관리자 API 구축(이미지 S3 업로드 포함)
- 캐릭터-원작 연관관계 및 관리자에서 배정/해제 API 제공
- 소프트 삭제(`isDeleted`) 도입 및 조회/수정/배정 로직에서 삭제 항목 필터링
- 컨트롤러-레포지토리 직접 접근 제거, `AdminOriginalWorkService`로 DB 접근 캡슐화
- 캐릭터 등록/수정에서 `originalWorkId` 지원 및 외부 API 업데이트 조건 분리
2025-09-14 22:33:30 +09:00
0574f4f629 feat(cache): 인기 캐릭터 조회에 윈도우 기반 동적 캐시 키 적용
- ChatCharacterService.getPopularCharacters()에 @Cacheable 추가
- 키: popular-chat-character:<windowStartEpoch>:<limit>
- 윈도우(매일 20:00 UTC) 전환 시 자동으로 신규 키 사용 → 전일 순위 캐시와 분리 보장

Why: 동일 윈도우 내 반복 요청의 DB 부하를 줄이고, 경계 전환 시 자연스러운 캐시 갱신을 보장.
2025-09-14 17:43:53 +09:00
4adc3e127c fix(popular): 일일 인기 캐릭터 집계 윈도우를 전날 완료 구간으로 고정
- UTC 20:00 경계 직후에도 [전날 20:00, 당일 20:00) 범위 사용으로 일일 순위 정확화
- RankingWindowCalculator.now(): lastBoundary 기반 [start, endExclusive) 계산
2025-09-14 17:28:33 +09:00