Skip to content

⚙️[기능추가][Admin] 채팅 관리 #711

Description

@Cassiiopeia

📝 현재 문제점

  • 채팅(ChatRoom) 도메인은 현재 admin API가 0개다.
  • 부적절한 메시지/허위 거래 채팅이 신고되어도 운영자가 채팅 내용을 들여다보거나 메시지를 삭제할 수단이 없다.
  • 신고 처리 시 채팅 증거를 확인할 방법이 없어, 신고 사유의 신뢰성을 판단하기 어렵다.

🛠️ 해결 방안 / 제안 기능

채팅방 도메인에 admin 조회/관리 API 신규 추가.

  • 채팅방 목록 조회: 참여자 검색, 신고된 채팅방 필터, 거래 연결 채팅방 필터
  • 채팅방 상세: 참여자 목록 + 거래 정보 + 최근 메시지 N건
  • 메시지 조회 (admin only): 페이지네이션 메시지 히스토리
  • 부적절 메시지 soft delete: 메시지 단위로 노출 차단 (실데이터 보존, 다른 사용자에게 안 보임 처리)
  • 채팅방 강제 종료: 거래 강제 취소와 연동될 수도 있음
  • 사용자 강제 퇴장: 특정 회원을 채팅방에서 강제 제거

운영 액션 모두 SanctionHistory에 기록 권장.

⚙️ 작업 내용

  • AdminChatController + AdminChatControllerDocs 신규
  • AdminChatService 신규
  • API:
    • POST /api/admin/chats/rooms/list
    • POST /api/admin/chats/rooms/detail
    • POST /api/admin/chats/messages/list
    • POST /api/admin/chats/messages/hide — soft delete
    • POST /api/admin/chats/rooms/force-close
    • POST /api/admin/chats/members/force-leave
  • 메시지 hide 시 클라이언트 응답 필터링 적용 (다른 사용자 조회 시 마스킹 처리)
  • WebSocket 컨트롤러에도 hidden 메시지 처리 정책 반영 (ChatWebSocketControllerDocs 갱신)
  • 통합 테스트

부모 Epic: #707

🙋‍♂️ 담당자

  • 백엔드: SUH SAECHAN
  • 프론트엔드: 미정
  • 디자인: 미정

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

작업전작업 시작 전 준비 상태

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions