import { Type } from "class-transformer"; import { IsISO8601, IsNotEmpty, IsNotEmptyObject, IsString, ValidateNested } from "class-validator"; import { MessageContentVO } from "../../common/command/MessageContentVO"; export class OutgoingMessageVO { @IsString() @IsNotEmpty() readonly messageId: string; @IsString() @IsNotEmpty() readonly senderId: string; @IsISO8601() readonly sentAt: string; @IsNotEmptyObject() @ValidateNested() @Type(() => MessageContentVO) readonly messageContent: MessageContentVO; constructor({ messageId, senderId, sentAt, messageContent, }: { messageId:string; senderId: string; sentAt: string; messageContent: MessageContentVO; }) { this.messageId = messageId; this.senderId = senderId; this.sentAt = sentAt; this.messageContent = messageContent; } }