docs(chat): 비로그인 채팅 리스트 정책을 기록한다

This commit is contained in:
2026-06-27 02:35:07 +09:00
parent 5cb69bfa6e
commit 24a61e4d78
2 changed files with 34 additions and 0 deletions

View File

@@ -124,6 +124,7 @@
#### Requirements
- 인증된 회원이 참여 중인 채팅방만 조회한다.
- 비로그인 사용자가 호출하면 예외를 발생시키지 않고 빈 목록을 내려준다.
- 필터는 `ALL`, `AI`, `DM` 3가지를 지원한다.
- `AI`는 기존 AI 캐릭터 채팅방을 의미한다.
- `DM`은 유저-크리에이터 채팅방을 의미하며, API 문서와 클라이언트 표시 용어에서 User-Creator 채팅 대신 DM으로 명명한다.
@@ -135,6 +136,7 @@
- 마지막 메시지가 없는 방은 채팅 리스트에 노출하지 않는다.
#### Edge Cases
- 비로그인 요청은 `rooms = []`, `hasMore = false`, `nextCursor = null`로 응답한다.
- 상대방 회원 또는 AI 캐릭터의 프로필 이미지가 없으면 기본 이미지를 사용한다.
- 마지막 메시지가 음성 메시지이면 본문 요약 대신 `[음성 메시지]`를 내려준다.
- 마지막 메시지가 비활성화되었거나 표시할 수 없는 상태라면 해당 메시지를 제외하고 다음 최신 표시 가능 메시지를 기준으로 요약한다.
@@ -209,6 +211,7 @@
- 채팅 리스트에서 마지막 메시지가 없는 방은 노출하지 않는다.
- 음성 메시지의 마지막 대화 요약 문구는 `[음성 메시지]`를 사용한다.
- 채팅 리스트 API URL prefix는 `/api/v2/chat/rooms`를 사용한다.
- 채팅 리스트 API는 비로그인 요청에도 200 OK를 반환하며, 빈 목록 페이지를 내려준다.
- 채팅 리스트 DTO 필드명은 `roomId`, `chatType`, `targetName`, `targetImageUrl`, `lastMessage`, `lastMessageAt`을 사용한다.
- `targetName`은 AI 채팅이면 캐릭터명, DM이면 나를 제외한 참여 회원 닉네임이다.
- `targetImageUrl`은 AI 채팅이면 캐릭터 대표 이미지, DM이면 나를 제외한 참여 회원 프로필 이미지이며, 이미지가 없으면 기본 이미지 URL을 내려준다.