import { ApiProperty } from '@nestjs/swagger';
import { ArrayUnique, IsArray, IsInt, IsString, Min, ValidateNested } from 'class-validator';
import { Type } from 'class-transformer';

class ReorderItemDto {
  @ApiProperty()
  @IsString()
  mappingId!: string;

  @ApiProperty()
  @IsInt()
  @Min(1)
  sortOrder!: number;
}

export class ReorderTemplateQuestionsDto {
  @ApiProperty({ type: [ReorderItemDto] })
  @IsArray()
  @ArrayUnique((item: ReorderItemDto) => item.mappingId)
  @ValidateNested({ each: true })
  @Type(() => ReorderItemDto)
  items!: ReorderItemDto[];
}
