import {
  IsInt,
  IsNotEmpty,
  IsObject,
  IsOptional,
  IsString,
  MaxLength,
  Min,
} from 'class-validator';

export class CreateProcedureStepDto {
  @IsOptional()
  @IsInt()
  activityId?: number;

  @IsString()
  @IsNotEmpty()
  @MaxLength(255)
  title!: string;

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

  @IsOptional()
  @IsString()
  @MaxLength(1024)
  imagePath?: string;

  @IsOptional()
  @IsString()
  @MaxLength(1024)
  videoUrl?: string;

  @IsOptional()
  @IsInt()
  @Min(0)
  orderIndex?: number;

  /** Instructions, drawing/annotation/reflection sub-config for this step. */
  @IsOptional()
  @IsObject()
  meta?: Record<string, any>;
}

export class UpdateProcedureStepDto {
  @IsOptional()
  @IsString()
  @MaxLength(255)
  title?: string;

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

  @IsOptional()
  @IsString()
  @MaxLength(1024)
  imagePath?: string;

  @IsOptional()
  @IsString()
  @MaxLength(1024)
  videoUrl?: string;

  @IsOptional()
  @IsInt()
  @Min(0)
  orderIndex?: number;

  @IsOptional()
  @IsObject()
  meta?: Record<string, any>;
}
