All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com> Co-committed-by: Jason Woltje <jason@diversecanvas.com>
26 lines
758 B
TypeScript
26 lines
758 B
TypeScript
import { Type } from "class-transformer";
|
|
import { ArrayMinSize, IsArray, IsNotEmpty, IsString, ValidateNested } from "class-validator";
|
|
|
|
export interface ChatMessage {
|
|
role: string;
|
|
content: string;
|
|
}
|
|
|
|
export class ChatMessageDto implements ChatMessage {
|
|
@IsString({ message: "role must be a string" })
|
|
@IsNotEmpty({ message: "role is required" })
|
|
role!: string;
|
|
|
|
@IsString({ message: "content must be a string" })
|
|
@IsNotEmpty({ message: "content is required" })
|
|
content!: string;
|
|
}
|
|
|
|
export class ChatStreamDto {
|
|
@IsArray({ message: "messages must be an array" })
|
|
@ArrayMinSize(1, { message: "messages must contain at least one message" })
|
|
@ValidateNested({ each: true })
|
|
@Type(() => ChatMessageDto)
|
|
messages!: ChatMessageDto[];
|
|
}
|