Commit Graph
100 Commits
Author SHA1 Message Date
klaus 6cc15a8748 오디오 콘텐츠 테마 번역을 적용한다
오디오 콘텐츠 목록 응답에서 테마 문자열에 번역을 적용한다.

번역 데이터가 없을 때는 기존 원문을 유지한다.
2025-12-19 03:23:56 +09:00
klaus 31242a1f76 카테고리 목록 조회에 언어별 번역 적용
LangContext에 따라 카테고리명을 번역해 반환한다. 번역본이 없으면

Papago API로 번역 후 CategoryTranslation에 저장하고 즉시 결과를

반환한다. 공개 API의 getCategoryList 응답이 요청 로케일을 반영한다.
2025-12-19 02:32:20 +09:00
klaus 68cfa201eb 크리에이터 콘텐츠 카테고리 언어 감지 및 번역 기능 추가 2025-12-19 01:56:27 +09:00
klaus 67a8de9e7a 캐릭터 상세 조회 - 원작 번역 및 캐릭터 소개 일괄 번역 기능 구현 2025-12-16 06:52:48 +09:00
klaus 0c52804f06 원작 목록의 제목과 콘텐츠 타입을 현재 언어(locale)에 맞춰 일괄 번역 기능 추가 2025-12-16 06:19:15 +09:00
klaus 7955be45da 원작 등록/수정시 번역 API 호출 2025-12-16 06:10:18 +09:00
klaus 8ae6943c2a 크리에이터 관리자에서 콘텐츠 수정시 번역 이벤트 호출하도록 수정 2025-12-16 04:14:13 +09:00
klaus 82f53ed8ab 콘텐츠 제목, 시리즈 장르 번역 반환 구현 2025-12-16 04:09:25 +09:00
klaus 4e4235369c 홈 요일별 시리즈 - 번역 데이터 조회 기능 적용 2025-12-16 03:40:28 +09:00
klaus 30a104981c 시리즈 상세 - 번역 데이터 조회 기능 추가 2025-12-16 03:29:02 +09:00
klaus 4c0be733d0 시리즈 상세 - 번역 데이터 조회 기능 추가 2025-12-16 02:52:14 +09:00
klaus 0eed29eadc 시리즈 리스트 - 번역 데이터 조회 기능 추가 2025-12-16 01:07:20 +09:00
klaus db18d5c8b5 홈 - 오직 보이스온에서만, 요일별 시리즈 번역 데이터 조회 기능 추가 2025-12-16 00:43:36 +09:00
klaus f58687ef3a 크리에이터 관리자에서 시리즈 등록/수정시 번역데이터 생성 기능 추가 2025-12-16 00:25:24 +09:00
klaus 9b2b156d40 SeriesTranslationPayload 키워드 리스트 변환 및 수정
- `SeriesTranslationPayload.keywords` 타입을 `String`에서 `List<String>`으로 변경했습니다.
- `SeriesTranslationPayloadConverter`의 `convertToEntityAttribute`를 하위 호환 가능하도록 수정했습니다.
  - DB에 저장된 JSON에서 `keywords`가 과거 스키마(String)인 경우와 신규 스키마(List)를 모두 안전하게 파싱합니다.
  - 파싱 실패 또는 공백 입력 시 기본값을 사용합니다(`keywords = []`).
- `convertToDatabaseColumn`은 변경 없이 `ObjectMapper`로 직렬화하여 `keywords`가 배열로 저장됩니다.
2025-12-15 23:55:50 +09:00
klaus e00a9ccff5 시리즈 상세, 시리즈 키워드 번역 엔티티 추가 2025-12-15 16:32:21 +09:00
klaus 45ee55028f 콘텐츠 상세 - themeStr 언어별 번역 제공 기능 수정 2025-12-15 12:25:10 +09:00
klaus dc0df81232 번역된 테마로 콘텐츠를 조회해도 한글 테마처럼 처리하기 2025-12-15 12:15:31 +09:00
klaus c0c61da44b 콘텐츠 테마 조회 로직 수정 2025-12-15 11:45:56 +09:00
klaus 13029ab8d2 콘텐츠 테마 번역 N+1 제거
- 온라인 경로에서 콘텐츠 테마 번역을 배치 조회/번역/저장으로 처리.
- 기존 번역은 IN 조회, 미번역만 한 번의 번역 요청 후 저장.
- 결과 순서 보전, 번역 누락/실패 시 원문으로 폴백.
- 공개 API 변경 없음.
2025-12-13 00:51:07 +09:00
klaus 6f0619e482 콘텐츠 테마 저장시 번역 API로 자동 번역 하는 기능 추가 2025-12-13 00:19:48 +09:00
klaus 920a866ae0 신규 콘텐츠 조회 API에서 languageCode를 별도로 받던 것을 LangContext를 사용하도록 리팩토링 2025-12-12 19:46:29 +09:00
klaus de60a70733 크리에이터 프로필 조회 API에서 languageCode를 별도로 받던 것을 LangContext를 사용하도록 리팩토링 2025-12-12 19:44:08 +09:00
klaus 59949e5aee AudioContent 조회 API에서 api 마다 languageCode를 별도로 받던 것을 LangContext를 사용하도록 리팩토링 2025-12-12 19:40:21 +09:00
klaus 165640201f AI Character API에서 api 마다 languageCode를 별도로 받던 것을 LangContext를 사용하도록 리팩토링 2025-12-12 19:09:33 +09:00
klaus ba1844a6c2 Home API에서 api 마다 languageCode를 별도로 받던 것을 LangContext를 사용하도록 리팩토링 2025-12-12 17:22:50 +09:00
klaus 082f255773 요청 스코프 언어 컨텍스트와 인터셉터 추가
- Interceptor에서 Accept-Language 헤더를 파싱
- 요청 단위 LangContext에 언어 정보 저장
- 서비스 및 예외 처리 계층에서 언어 컨텍스트 주입
- enum 및 when 기반 언어 정책을 한 곳으로 통합
2025-12-12 16:57:34 +09:00
klaus 04281817a5 크리에이터 채널 - languageCode에 따라 콘텐츠 번역 데이터 조회 2025-12-12 13:58:49 +09:00
klaus 236394e148 콘텐츠 전체보기 API - languageCode에 따라 번역 데이터 조회 2025-12-12 06:04:26 +09:00
klaus 7ab25470b6 콘텐츠 전체보기 API - languageCode에 따라 번역 데이터 조회 2025-12-12 05:57:04 +09:00
klaus 8fec60db11 AI 캐릭터, 콘텐츠 등록/수정 시 번역 데이터 생성 2025-12-12 04:52:02 +09:00
klaus 5d925e98e0 AI 캐릭터 번역 데이터, 콘텐츠 번역 데이터 엔티티에서 사용하지 않는 필드 제거 2025-12-12 03:05:50 +09:00
klaus 2355aa7c75 AI 캐릭터 리스트에 번역 데이터 제공 기능 추가 2025-12-12 01:32:02 +09:00
klaus 5bdb6d20a5 번역 - 지원되지 않는 언어이면 API를 호출하지 않고 빈 값을 반환하도록 수정 2025-12-12 01:00:41 +09:00
klaus 143ba2fbb2 HomeApi - languageCode에 따라 콘텐츠, 캐릭터의 번역 데이터를 제공하도록 수정 2025-12-11 23:58:17 +09:00
klaus 28fbdd7826 getDetail에 languageCode를 optional로 변경하여 languageCode가 없어도 정상 조회 되도록 수정 2025-12-11 22:33:26 +09:00
klaus 25169aaac3 getDetail에 @Transactional 을 추가하여 데이터 저장이 가능하도록 수정 2025-12-11 22:14:18 +09:00
klaus 608898eb0c Add translation support for audio content detail 2025-12-11 22:00:30 +09:00
klaus 1748b26318 파파고 번역 시 내용을 합쳐서 한번에 처리하지 않고 개별로 API를 호출해서 번역 처리 2025-12-11 19:35:05 +09:00
klaus 3ff38bb73a 파파고 번역 시 내용을 분리할 DELIMITER 변경 2025-12-11 18:57:46 +09:00
klaus 4498af4509 Fix AI character translation unique constraint column 2025-12-11 18:19:10 +09:00
klaus 8636a8cac0 캐릭터 번역 캐시 및 응답 필드 추가 2025-12-11 17:19:00 +09:00
klaus 304c001a27 파파고 번역 API 연동 2025-12-11 16:34:22 +09:00
klaus fdac55ebdf AGENTS.md 파일 삭제 2025-12-11 15:50:52 +09:00
klaus 668d4f28cd AGENTS.md 파일에 AI Coding Agent가 반드시 따라야 할 개발 헌법(운영 규칙) 상세하게 추가 2025-12-10 00:22:53 +09:00
klaus 7b0644cb66 AGENTS.md 파일 추가 2025-12-09 14:56:14 +09:00
klaus 503802bcce feat(chat-character): 캐릭터 상세 조회 시 언어 코드 추가 2025-11-26 11:53:40 +09:00
klaus 899f2865b3 feat(chat-character): 캐릭터 등록시 파파고 언어 감지 API를 호출하여 languageCode를 기록하는 기능 추가 2025-11-26 11:40:58 +09:00
klaus e0dcbd16fc feat(character-comment): 캐릭터 댓글의 답글 조회시 결과에 언어 코드 추가 2025-11-25 19:35:59 +09:00
klaus 62ec994069 feat(character-comment): 캐릭터 댓글 조회시 결과에 언어 코드 추가 2025-11-25 18:12:50 +09:00
klaus 8ec6d50dd8 feat(content-comment): 콘텐츠 댓글 조회시 결과에 언어 코드 추가 2025-11-25 18:10:36 +09:00
klaus ddd46d585e feat(creator-cheers): 팬 Talk 응원글 조회시 결과에 언어 코드 추가 2025-11-25 18:05:08 +09:00
klaus c5fa260a0d feat(creator-cheers): 팬 Talk 응원글 등록 시 언어 코드가 null인 경우 파파고 언어 감지 API를 호출하는 기능 추가 2025-11-25 16:42:26 +09:00
klaus 412c52e754 feat(creator-cheers): 팬 Talk 응원글 등록 시 언어 코드를 입력 받을 수 있는 기능 추가 2025-11-25 16:36:39 +09:00
klaus 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
klaus 619ceeea24 feat(character-comment): 캐릭터 댓글 등록 시 언어 코드가 null인 경우 파파고 언어 감지 API를 호출하는 기능 추가 2025-11-25 16:19:08 +09:00
klaus a2998002e5 feat(character-comment): 캐릭터 댓글 등록 시 언어 코드를 입력 받을 수 있는 기능 추가 2025-11-25 16:10:20 +09:00
klaus da9b89a6cf feat(content-comment): 콘텐츠 댓글/후원 시 언어 코드가 null인 경우 파파고 언어 감지 API를 호출하는 기능 추가 2025-11-25 16:03:52 +09:00
klaus 5ee5107364 feat(content-comment): 콘텐츠 댓글/후원 시 언어 코드를 입력 받을 수 있는 기능 추가 2025-11-25 15:54:01 +09:00
klaus ae2c699748 refactor(LanguageDetectEvent): 언어 감지 요청 이벤트 클래스명 수정
- AudioContentLanguageDetectEvent -> LanguageDetectEvent
2025-11-25 15:42:32 +09:00
klaus 93ccb666c4 feat(content): 콘텐츠 업로드 후 languageCode가 null이면 naver papago 언어 감지 API 호출 기능 추가 2025-11-25 15:11:27 +09:00
klaus edaea84a5b feat(content): 콘텐츠 업로드 request, 상세 조회 response에 languageCode 추가
- CreateAudioContentRequest, GetAudioContentDetailResponse
2025-11-24 12:31:49 +09:00
klaus 76806e2e90 feat(content-theme): 무료 콘텐츠의 테마를 조회할 때 '자기소개'가 가장 먼저 표시되도록 수정 2025-11-21 00:49:17 +09:00
klaus 39c51825da feat(content-theme): 무료 콘텐츠의 테마를 조회할 때 '자기소개'가 가장 먼저 표시되도록 수정 2025-11-21 00:37:29 +09:00
klaus 9a58b7b95f feat(latest-content-by-creator): 최신 콘텐츠 1개 조회시 오픈 되어 있는 콘텐츠만 조회하도록 수정 2025-11-20 21:19:29 +09:00
klaus 26eae4b06e feat(latest-content-by-creator): 최신 콘텐츠 1개 조회시 오픈 되어 있는 콘텐츠만 조회하도록 수정 2025-11-20 20:59:09 +09:00
klaus 60989391f6 feat(content-sort-type): 콘텐츠가 있는 active 테마 조회 API 추가 2025-11-20 00:51:09 +09:00
klaus 88d90eec2f feat(content-sort-type): getLatestContentByTheme(테마별 콘텐츠 조회)시 정렬 타입 추가 2025-11-20 00:26:24 +09:00
klaus b6eb13df06 feat(content-sort-type): 콘텐츠 정렬 타입 인기순(POPULARITY) 추가 2025-11-20 00:05:33 +09:00
klaus a6b815ad05 fix(series-main): 완료 시리즈 랜덤 정렬 2025-11-19 17:48:07 +09:00
klaus d89122802a fix(series): 시리즈 리스트 랜덤 정렬로 조회할 수 있도록 기능 추가 2025-11-19 17:45:46 +09:00
klaus 690432d6ee fix(latest-content): 최신 콘텐츠 전체보기에서 유/무료 모두 조회되도록 수정 2025-11-18 19:21:15 +09:00
klaus bc358d18de fix(latest-content): 최신 콘텐츠 전체보기에서 사용하는 theme에서 제외하는 theme 없이 모두 조회하도록 수정 2025-11-18 18:56:09 +09:00
klaus add88aca35 fix(series-list): 시리즈 리스트 조회시 정렬 수정 2025-11-17 22:24:01 +09:00
klaus b6971f6a8d fix(series-list): creator의 시리즈를 볼 떄와 다른 페이지에서 시리즈 리스트를 볼 때 정렬 순서 분리 2025-11-17 21:13:52 +09:00
klaus f83dd47c7c fix(security-config): 홈 > 콘텐츠 랭킹을 로그인 하지 않아도 조회가 가능하도록 수정 2025-11-17 15:58:23 +09:00
klaus 146f733f5d feat(chat-character): 추천 캐릭터 개수 20 -> 30개로 변경 2025-11-17 15:50:40 +09:00
klaus 806fcfe7db feat(home): 추천 콘텐츠 개수 20 -> 30개로 변경 2025-11-17 15:49:06 +09:00
klaus 04e7c90407 fix(character): isNew -> new로 변경 2025-11-14 05:39:56 +09:00
klaus f278497526 fix(character): isNew -> new로 변경 2025-11-14 05:37:24 +09:00
klaus 597bd8f8ae feat(chat-character): Character DTO에 isNew 매핑 적용(N+1 제거)
- 내용: 서비스 매핑에서 보조 쿼리 결과를 이용해 `isNew` 채움
2025-11-13 22:44:13 +09:00
klaus e4c1cf5a9a feat(repo): 최근 3일 내 이미지 보유 캐릭터 id 일괄 조회 쿼리 추가
- 내용: `findCharacterIdsWithRecentImages(characterIds, since)` 추가
- 본문: 왜(이유) – N+1 제거, 무엇 – IN 기반 벌크 조회
2025-11-13 22:41:20 +09:00
klaus 9f6bdf6ed8 feat(series-main): 장르별 시리즈 group 조건 수정
- audioContent.id를 그룹 조건에서 제거
2025-11-13 19:59:54 +09:00
klaus 4f89b0189e feat(series-main): 시리즈 홈, 요일별 시리즈, 장르별 시리즈 API 추가 2025-11-13 16:02:11 +09:00
klaus 27be9a4fc2 feat(series-banner): 시리즈 배너의 등록, 수정, 삭제, 조회 및 정렬 순서 일괄 변경 기능이 추가 2025-11-13 11:37:46 +09:00
klaus 9464cc5ed4 feat(series): 완결된 시리즈를 조회할 수 있도록 isCompleted 파라미터 추가 2025-11-13 10:22:55 +09:00
klaus 39760e16ff feat(series): 오직 보이스온에서만(오리지널) 제공하는 콘텐츠도 조회할 수 있도록 isOriginal 파라미터 추가 2025-11-12 17:25:38 +09:00
klaus bf149c45ad feat(admin-series): 관리자 시리즈 리스트 응답에 publishedDaysOfWeek(리스트)와 isOriginal(Boolean) 추가 2025-11-12 16:37:28 +09:00
klaus 4f52ec0663 fix(admin-series): 시리즈 수정 API 추가 2025-11-12 14:58:48 +09:00
klaus 3ed306ae8c fix(content): 콘텐츠 리스트 조회 API
- 로그인 된 사용자만 사용할 수 있도록 수정
2025-11-12 13:56:37 +09:00
klaus ee35244296 feat(content): 콘텐츠 리스트 조회 API 2025-11-12 13:47:30 +09:00
klaus fe76ecdfa9 feat(chat-character): 보온 주간 차트 콘텐츠 정렬 기준 추가
- 매출, 판매량, 댓글 수, 좋아요 수, 후원
2025-11-11 23:02:58 +09:00
klaus 16b6c13309 feat(chat-character): 추천 캐릭터 조회 및 메인/새로고침 API 반영 2025-11-11 17:01:50 +09:00
klaus 80c44373c7 refactor(home): 추천 dedup 자료구조를 LinkedHashMap에서 Set+List로 교체 2025-11-11 14:46:36 +09:00
klaus a538bb766d feat(home): 홈 추천 콘텐츠 조회 및 전용 엔드포인트 추가
- HomeService: getRecommendContentList 추가 및 fetchData에 recommendContentList 주입
- HomeController: GET /api/home/recommend-contents 엔드포인트 추가
- 추천 로직은 랜덤 20개, 성인/타입/차단 필터 반영
2025-11-11 14:21:37 +09:00
klaus 26c09de7c9 feat(admin-can): 관리자 캔 충전 API를 다중 회원 일괄 충전으로 확장
- AdminCanChargeRequest: memberId → memberIds(List<Long>)로 변경
- AdminCanService.charge: memberIds 선조회 후 다건 충전 로직 추가
- 잘못된/비어있는 회원번호 검증 및 트랜잭션 롤백으로 정합성 보장

배경: 관리자 일괄 충전 요구사항 반영으로 여러 회원에게 동일 수량의 캔을 한 번에 충전할 수 있도록 개선. 중복 ID는 제거하여 중복 충전을 방지하고, 하나라도 유효하지 않으면 전체 롤백되도록 처리하여 데이터 정합성 확보.
2025-11-10 15:15:10 +09:00
klaus 82bd93c1ae feat(admin-member): 닉네임 검색으로 회원 id, nickname 반환 API 추가 2025-11-10 14:39:44 +09:00
klaus e24e8372a8 feat(home): 포인트 사용 가능 콘텐츠 리스트 추가 2025-11-10 13:58:17 +09:00
klaus eab7dc4521 feat(home-free-content): 최신 콘텐츠 조회 함수 getLatestContentByTheme에 orderbyRandom flag를 추가하여 랜덤으로 정렬한 후 데이터를 가져올 수 있도록 수정 2025-11-10 12:14:24 +09:00
klaus 5ca666c7fa feat(home-latest-content): 최신 콘텐츠 조회시 정렬 조건 변경
- 기존: id 내림차순
- 변경: 오픈일 내림차순
2025-11-07 20:48:08 +09:00