27 lines
657 B
TypeScript
27 lines
657 B
TypeScript
import { ChatAggregate } from '../../../Domain/Chat/ChatAggregate';
|
|
import { ShortChatDto, DetailChatDto } from '../ChatDto';
|
|
|
|
export class ChatMapper {
|
|
static toShortDto(chat: ChatAggregate): ShortChatDto {
|
|
return {
|
|
id: chat.id,
|
|
userCount: chat.users?.length ?? 0,
|
|
state: chat.state,
|
|
};
|
|
}
|
|
|
|
static toDetailDto(chat: ChatAggregate): DetailChatDto {
|
|
return {
|
|
id: chat.id,
|
|
users: chat.users ?? [],
|
|
messages: chat.messages,
|
|
updateDate: chat.updateDate,
|
|
state: chat.state,
|
|
};
|
|
}
|
|
|
|
static toShortDtoList(chats: ChatAggregate[]): ShortChatDto[] {
|
|
return chats.map(this.toShortDto);
|
|
}
|
|
}
|