klaus
02ef706fc2
temp: 디버깅을 위해 print 추가
2025-10-03 00:57:50 +09:00
klaus
085b217abb
fix(can): 이전 버전의 호환성을 위해 기존의 int price를 유지하도록 수정
2025-10-03 00:02:47 +09:00
klaus
0866e0972a
값 확인을 위해 추가했던 println 제거
2025-10-02 22:31:23 +09:00
klaus
4b13265737
fix(charge): payverseVerify 결제금액 비교로직 수정
...
- BigDecimal끼리 비교하는데 casting 로직이 추가되어 문제가 생기던 버그 수정
2025-10-02 22:23:06 +09:00
klaus
79cd2b8123
debug(charge): 해외결제 DEBUG를 위해 print 임시 추가
2025-10-02 20:40:34 +09:00
klaus
8cc9641bbf
feat(charge): payloadJson의 amount
...
- 소수점 아래 불필요한 0을 제거
2025-10-02 20:29:49 +09:00
klaus
32935aed88
feat(charge): payloadJson의 amount
...
- 소수점 아래 불필요한 0을 제거
2025-10-02 19:59:04 +09:00
klaus
c72adbfc4b
temp(charge): 캔 리스트
...
- 해외 충전 테스트를 위해 전체 캔 리스트 표시
2025-10-02 19:56:23 +09:00
klaus
bc378cc619
temp(charge): 캔 리스트
...
- 해외 충전 테스트를 위해 전체 캔 리스트 표시
2025-10-02 19:03:42 +09:00
klaus
6327a5d2bf
feat(charge): 캔 충전시 통화(KRW, USD)별로 분기 처리
2025-10-02 18:59:52 +09:00
klaus
2ab2a04748
feat(can): 캔 응답 - String 형태 가격 필드 추가
2025-10-02 15:07:57 +09:00
klaus
fb0a9e98a1
사용하지 않는 print 제거
2025-10-02 12:20:25 +09:00
klaus
e45fe1bf10
feat: 일반 유저용 캔 리스트 조회 API 추가, GeoCountryFilter(GeoCountry.OTHER, GeoCountry.KR 구분용) 추가
2025-10-01 22:29:39 +09:00
klaus
b244944f41
feat: 캔 엔티티 currency - length 3으로 고정하여 CHAR(3)에 대응되도록 수정
2025-10-01 21:21:57 +09:00
klaus
3c7ba669e2
feat: Payment, AdTrackingHistory 엔티티 price - Decimal(10, 4)에 대응되도록 Column 추가
2025-10-01 21:08:35 +09:00
klaus
81e7e7129c
feat: 캔 엔티티 currency - length 3으로 고정하여 CHAR(3)에 대응되도록 수정
2025-10-01 21:05:51 +09:00
klaus
d7ad110b9e
feat: 캔 등록/조회 - currency 추가
2025-10-01 20:55:52 +09:00
klaus
0c17ea2dcd
fix: 캔 가격, Payment의 price 타입 Int, Double -> BigDecimal로 변경
2025-10-01 20:37:53 +09:00
klaus
78ff13a654
temp: 캔 가격 타입 Int -> Double로 변경
2025-10-01 16:07:34 +09:00
klaus
863c285049
fix: 불필요한 print 제거
2025-09-30 18:32:12 +09:00
klaus
a3d74c0b57
fix: Payverse Webhook 엔드포인트에서 실제 클라이언트 IP를 가져올 수 있도록 수정
2025-09-30 18:22:46 +09:00
klaus
51988471cf
temp(payverse): 호출되는 INBOUND_IP 확인하기 위해 출력
2025-09-30 17:55:31 +09:00
klaus
aab2417976
fix(payverse): print 제거
2025-09-30 17:22:39 +09:00
klaus
1bd6f8da4e
fix(payverse): PVKR 카드 코드면 method를 "카드"로 저장
2025-09-30 17:02:02 +09:00
klaus
22bd1bf042
fix(payverse): 결제 payload에 customerId 길이 30자로 제한
...
- customerId를 sha1 기반 30자 이내로 생성하도록 변경하여 스펙 준수
- 불필요한 billkeyReq 제거
2025-09-26 16:51:54 +09:00
klaus
d536a65fb4
fix(charge): payverse pg payload
...
- requestAmount의 값을 BigDecimal로 처리
2025-09-26 16:23:11 +09:00
klaus
03149a637d
feat(charge): payverse pg - webhook API 추가
2025-09-25 21:18:45 +09:00
klaus
bc6c05b3ea
feat(charge): payverse pg - 충전/검증 API 추가
2025-09-25 20:37:39 +09:00
klaus
fd83abb46c
feat(chat): 글로벌/방 쿼터 정책 개편, 결제/조회/차단/이관 로직 반영
...
글로벌: 무료 40, UTC 20:00 lazy refill(유료 제거)
방: 무료 10, 무료 0 순간 now+6h, 경과 시 lazy refill(무료=10, next=null)
전송: 유료 우선, 무료 사용 시 글로벌/룸 동시 차감, 조건 불충족 예외
API: 방 쿼터 조회/구매 추가(구매 시 30캔, UseCan에 roomId:characterId 기록)
next 계산: enter/send에서 경계 케이스 처리(max(room, global))
대화 초기화: 유료 쿼터 새 방으로 이관
2025-09-09 22:42:14 +09:00
klaus
42ed4692af
feat(chat): 채팅방 초기화 API 추가 및 세션 종료 실패 시 롤백 처리
...
- /api/chat/room/{chatRoomId}/reset POST 엔드포인트 추가
- 초기화 절차: 30캔 결제 → 기존 방 나가기 → 동일 캐릭터로 새 방 생성 → 응답 반환
- 결제 시 CanUsage.CHAT_ROOM_RESET 신규 항목 사용(본인 귀속)
- ChatQuotaService.resetFreeToDefault 추가 및 초기화 성공 시 무료 10회로 리셋(nextRechargeAt 초기화)
- 사용내역 타이틀에 "캐릭터 톡 초기화" 노출(CanService)
- ChatRoomResetRequest DTO(container 포함) 추가
- leaveChatRoom에 throwOnSessionEndFailure 옵션 추가(기본 false 유지)
- endExternalSession에 throwOnFailure 옵션 추가: 최대 3회 재시도 후 실패 시 예외 전파 가능
- 채팅방 초기화 흐름에서는 외부 세션 종료 실패 시 예외를 던져 트랜잭션 롤백되도록 처리
2025-08-27 17:16:18 +09:00
klaus
84ebc1762b
fix(quota): 채팅 쿼터 구매 시 사용 내역 문구
...
- 캐릭터 톡 이용권 구매
2025-08-26 17:28:06 +09:00
klaus
6ecac8d331
feat(quota)!: AI 채팅 쿼터(무료/유료) 도입 및 입장/전송 응답에 상태 포함
...
- ChatQuota 엔티티/레포/서비스/컨트롤러 추가
- 입장 시 Lazy refill 적용, 전송 시 무료 우선 차감 및 잔여/리필 시간 응답 포함
- ChatRoomEnterResponse에 totalRemaining/nextRechargeAtEpoch 추가
- SendChatMessageResponse 신설 및 send API 응답 스키마 변경
- CanUsage에 CHAT_QUOTA_PURCHASE 추가, CanPaymentService/CanService에 결제 흐름 반영
2025-08-26 13:22:49 +09:00
klaus
12574dbe46
feat(chat-room, payment): 유료 메시지 구매 플로우 구현 및 결제 연동(이미지 보유 처리 포함)
...
- 채팅 유료 메시지 구매 API 추가: POST /api/chat/room/{chatRoomId}/messages/{messageId}/purchase
- ChatRoomService.purchaseMessage 구현: 참여/유효성/가격 검증, 이미지 메시지 보유 시 결제 생략, 결제 완료 시 ChatMessageItemDto 반환
- CanPaymentService.spendCanForChatMessage 추가: UseCan에 chatMessage(+이미지 메시지면 characterImage) 연동 저장 및 게이트웨이 별 정산 기록(setUseCanCalculate)
- Character Image 결제 경로에 정산 기록 호출 누락분 보강
- ChatMessageItemDto 변환 헬퍼(toChatMessageItemDto) 추가 및 접근권한(hasAccess) 계산 일원화
2025-08-25 14:01:10 +09:00
klaus
692e060f6d
feat(character-image): 이미지 단독 구매 API 및 결제 연동 추가
...
- 구매 요청/응답 DTO 추가
- 미보유 시 캔 차감 및 구매 이력 저장
- 서명 URL(5분) 반환
2025-08-22 21:37:18 +09:00
klaus
13fd262c94
feat(chat-character-image): 캐릭터 이미지 리스트 API 추가 및 보유 판단 로직 적용
2025-08-21 17:39:19 +09:00
klaus
8e01ced1f5
feat: 커뮤니티 댓글
...
- 유료 커뮤니티 글을 구매한 경우 비밀 댓글 쓰기 기능 추가
2025-06-12 16:10:32 +09:00
klaus
8db5c6443d
fix: 쿠폰 사용 - 쿠폰 사용 완료 안내 문구 수정
2025-06-09 17:17:52 +09:00
klaus
9ed717fb95
feat: 쿠폰 사용 - 쿠폰 사용 완료 안내 문구 적용
2025-06-09 16:52:19 +09:00
klaus
54c0322398
feat: 쿠폰 사용 - 포인트 쿠폰이면 포인트 충전 되도록 로직 수정
2025-06-09 15:16:11 +09:00
klaus
e3c33c71a0
feat: 쿠폰 생성, 쿠폰 리스트
...
- 쿠폰 타입(캔, 포인트) 추가
2025-06-09 14:47:33 +09:00
klaus
30e1e461e3
유저 정보 조회
...
- 성별, 가입일, 충전횟수 추가
2025-03-12 02:51:42 +09:00
klaus
72d10f9443
캔 충전
...
- 트래킹 로직 적용
2025-03-04 17:05:41 +09:00
klaus
24dc521f83
관리자 충전이벤트
...
- 패키지명 변경 (admin/event -> admin/event/charge)
2025-01-15 12:29:06 +09:00
klaus
c8f96a10f0
캔 사용내역 - 오디션 투표
...
- "[오디션 투표] 오디션명"으로 변경
2025-01-03 01:29:42 +09:00
klaus
b10c102f94
오디션 투표 API
...
- 투표시 어떤 오디션 지원에 투표했는지 기록
- 캔 사용내역에 "[오디션 투표] 닉네임" 추가
2025-01-03 01:03:38 +09:00
klaus
82b109e3bd
오디션 투표 API
...
- 투표시 어떤 오디션 지원에 투표했는지 기록
- 캔 사용내역에 "[오디션 투표] 닉네임" 추가
2025-01-03 00:45:49 +09:00
klaus
cd0c066978
앱 - 오디션 투표 API
2025-01-03 00:09:53 +09:00
klaus
ba0151bca0
라이브 방
...
- 하트 후원 기능 추가
2024-10-16 17:50:39 +09:00
klaus
c8c081b3fd
라이브 방
...
- 하트 후원 기능 추가
2024-10-16 17:32:50 +09:00
klaus
c8d7bdb8b7
pg 결제
...
- pg사가 카카오페이이면 "카카오페이-'결제수단'"으로 기록
2024-08-27 16:24:17 +09:00