import type { ChannelAttachmentDto } from '@mosaicstack/types'; import { IsOptional, IsString, IsUUID, MaxLength } from 'class-validator'; export class ChatRequestDto { @IsOptional() @IsUUID() conversationId?: string; @IsString() @MaxLength(10_000) content!: string; } export class ChatSocketMessageDto { @IsOptional() @IsUUID() conversationId?: string; @IsString() @MaxLength(10_000) content!: string; @IsOptional() @IsString() @MaxLength(255) provider?: string; @IsOptional() @IsString() @MaxLength(255) modelId?: string; @IsOptional() @IsUUID() agentId?: string; /** Validated channel attachment references; binary content is not embedded. */ attachments?: readonly ChannelAttachmentDto[]; }