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

class SubmissionAnswerDto {
  @ApiProperty()
  @IsString()
  questionId!: string;

  @ApiProperty({ required: false })
  @IsOptional()
  answerText?: string;

  @ApiProperty({ required: false, additionalProperties: true })
  @IsOptional()
  answerJson?: unknown;
}

export class SaveSubmissionDto {
  @ApiProperty({ type: [SubmissionAnswerDto] })
  @IsArray()
  @ValidateNested({ each: true })
  @Type(() => SubmissionAnswerDto)
  answers!: SubmissionAnswerDto[];
}
