import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger"; import { IsIn, IsInt, IsNotEmpty, IsOptional, IsString, Min, } from "class-validator"; import { StepType } from "../scenario-step.entity"; export class CreateScenarioStepDto { @ApiPropertyOptional({ example: "Check login page title" }) @IsOptional() @IsString() title?: string; @ApiProperty({ example: 0, description: "Execution order (ascending)" }) @IsInt() @Min(0) order: number; @ApiProperty({ enum: ["login", "exec", "sign"], example: "exec" }) @IsIn(["login", "exec", "sign"]) type: StepType; @ApiPropertyOptional({ description: "Session name (deprecated — browser is created automatically per run).", example: "my-session", }) @IsOptional() @IsString() @IsNotEmpty() sessionName?: string; @ApiPropertyOptional({ example: "return await page.title();" }) @IsOptional() @IsString() @IsNotEmpty() execCode?: string; @ApiPropertyOptional({ example: 'return { success: result !== null, description: "title present" };', }) @IsOptional() @IsString() @IsNotEmpty() validateCode?: string; }