File
|
course_id
|
Type : number
|
Decorators :
@Expose() @IsInt()
|
|
|
|
Optional
course_module_page_id
|
Type : number | null
|
Decorators :
@Expose() @IsOptional() @IsInt()
|
|
|
|
knowledge_review_id
|
Type : number
|
Decorators :
@Expose() @IsInt()
|
|
|
import { IsArray, IsInt, IsOptional, IsString, ValidateNested } from "class-validator";
import { Exclude, Expose, Type } from "class-transformer";
@Exclude()
export class SubmitKnowledgeReviewAnswerDto {
@Expose()
@IsInt()
knowledge_review_question_id!: number;
@Expose()
@IsOptional()
@IsInt()
knowledge_review_answer_id?: number; // For MULTIPLE_CHOICE questions
@Expose()
@IsOptional()
@IsString()
answer_text?: string; // For TEXT_INPUT questions
}
@Exclude()
export class SubmitKnowledgeReviewDto {
@Expose()
@IsInt()
knowledge_review_id!: number;
@Expose()
@IsInt()
course_id!: number;
@Expose()
@IsArray()
@ValidateNested({ each: true })
@Type(() => SubmitKnowledgeReviewAnswerDto)
answers!: SubmitKnowledgeReviewAnswerDto[];
@Expose()
@IsOptional()
@IsInt()
course_module_page_id?: number | null; // Optional: for embedded quizzes, pass page ID; for standalone KR, omit or pass null
}