import { IsString, IsOptional, MinLength, MaxLength, IsInt, Min, Max, IsNumber, } from "class-validator"; import { Type } from "class-transformer"; /** * DTO for semantic search across conversation archives */ export class SearchConversationDto { @IsString() @MinLength(1) @MaxLength(1000) query!: string; @IsOptional() @IsString() @MaxLength(500) agentId?: string; @IsOptional() @Type(() => Number) @IsInt() @Min(1) @Max(100) limit?: number; @IsOptional() @Type(() => Number) @IsNumber() @Min(0) @Max(1) similarityThreshold?: number; }