From 127dd59275cc17c09bbbe17844f6c1142bfde491 Mon Sep 17 00:00:00 2001 From: minij02 Date: Wed, 3 Jun 2026 13:24:31 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=B1=84=ED=8C=85=EB=B0=A9=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20last=5Fmessage=EC=97=90=20attachment=5Fsummary=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20(#509)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ChatRoomListLastMessageDto에 attachment_summary(image_count/file_count) 필드 추가 - 첨부 type(IMAGE/FILE)을 카운트해서 응답, 첨부 없으면 null - Swagger는 기존 명세와 일치(별도 변경 없음) --- src/chat/dtos/chat.dto.ts | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/chat/dtos/chat.dto.ts b/src/chat/dtos/chat.dto.ts index a9ae412..231b411 100644 --- a/src/chat/dtos/chat.dto.ts +++ b/src/chat/dtos/chat.dto.ts @@ -144,10 +144,16 @@ export interface ChatRoomListPartnerDto { profile_image_url: string; } +export interface AttachmentSummaryDto { + image_count: number; + file_count: number; +} + export interface ChatRoomListLastMessageDto { content: string; sent_at: string; has_attachments: boolean; + attachment_summary: AttachmentSummaryDto | null; } export interface ChatRoomListItemDto{ @@ -183,11 +189,21 @@ export class ChatRoomListResponseDto { const partnerData = room.participants.find((part: any) => part.user_id !== userId); - const lastMsg = room.lastMessage ? { - content: room.lastMessage.content, - sent_at: room.lastMessage.sent_at, - has_attachments: room.lastMessage.attachments.length > 0 - } : null; + const lastMsg = room.lastMessage ? (() => { + const attachments = room.lastMessage.attachments ?? []; + const hasAttachments = attachments.length > 0; + return { + content: room.lastMessage.content, + sent_at: room.lastMessage.sent_at, + has_attachments: hasAttachments, + attachment_summary: hasAttachments + ? { + image_count: attachments.filter((a: any) => a.type === "IMAGE").length, + file_count: attachments.filter((a: any) => a.type === "FILE").length, + } + : null, + }; + })() : null; return { room_id: room.room_id,