import { IsArray, IsBoolean, IsOptional, IsString } from 'class-validator';

export class CreateTestCaseDto {
  @IsString()
  @IsOptional()
  requirementId?: string;

  @IsString()
  @IsOptional()
  requirementProductId?: string;

  @IsString()
  @IsOptional()
  categoryId?: string;

  @IsString()
  @IsOptional()
  code?: string;

  @IsString()
  @IsOptional()
  caseNo?: string;

  @IsString()
  title!: string;

  @IsString()
  @IsOptional()
  description?: string;

  @IsString()
  @IsOptional()
  status?: string;

  @IsOptional()
  roundNo?: number;

  @IsOptional()
  priority?: string | number;

  @IsString()
  @IsOptional()
  assigneeId?: string;

  @IsString()
  @IsOptional()
  creatorId?: string;

  @IsString()
  @IsOptional()
  createdBy?: string;

  @IsString()
  @IsOptional()
  plannedTestAt?: string;

  @IsString()
  @IsOptional()
  plannedEndAt?: string;

  @IsString()
  @IsOptional()
  startedAt?: string;

  @IsString()
  @IsOptional()
  completedAt?: string;

  @IsOptional()
  estimateHours?: number;

  @IsOptional()
  aiEstimateHours?: number;

  @IsArray()
  @IsOptional()
  references?: unknown[];

  @IsBoolean()
  @IsOptional()
  aiDraft?: boolean;

  @IsString()
  @IsOptional()
  aiDraftAt?: string;
}
