File
|
completedAt
|
Type : string | null
|
Decorators :
@Expose()
|
|
|
|
modulesCompleted
|
Type : number | null
|
Decorators :
@Expose()
|
|
|
|
progressPercentage
|
Type : number | null
|
Decorators :
@Expose()
|
|
|
|
startedAt
|
Type : string | null
|
Decorators :
@Expose()
|
|
|
|
status
|
Type : string
|
Decorators :
@Expose()
|
|
|
|
statusLabel
|
Type : string
|
Decorators :
@Expose()
|
|
|
|
totalModules
|
Type : number | null
|
Decorators :
@Expose()
|
|
|
import type { ParticipantProgressVm } from "@recallassess/shared-ng";
import { Exclude, Expose, Type } from "class-transformer";
/**
* Admin API DTOs for **`participant-progress`** report payload. Serialized output must match **`ParticipantProgressVm`**
* (PWA / SSR contract in **`@recallassess/shared-ng`**). Built via **`bnestPlainToDto`** (**`@bish-nest/core`**) in
* **`ParticipantProgressFiltersService`**.
*/
@Exclude()
export class ParticipantProgressPreBatDto {
@Expose()
enrollmentCompletedAt!: string | null;
@Expose()
assessmentCompletedAt!: string | null;
@Expose()
ipq!: number | null;
}
@Exclude()
export class ParticipantProgressELearningDto {
@Expose()
status!: string;
@Expose()
statusLabel!: string;
@Expose()
progressPercentage!: number | null;
@Expose()
modulesCompleted!: number | null;
@Expose()
totalModules!: number | null;
@Expose()
startedAt!: string | null;
@Expose()
completedAt!: string | null;
}
@Exclude()
export class ParticipantProgressKnowledgeReviewDto {
@Expose()
completedAt!: string | null;
}
@Exclude()
export class ParticipantProgressPostBatDto {
@Expose()
assessmentCompletedAt!: string | null;
@Expose()
ipq!: number | null;
}
@Exclude()
export class ParticipantProgressDto implements ParticipantProgressVm {
@Expose()
participantName!: string;
@Expose()
participantEmail!: string | null;
@Expose()
companyName!: string | null;
@Expose()
courseTitle!: string;
@Expose()
learningGroupName!: string;
@Expose()
enrollmentStatus!: string;
@Expose()
enrollmentStatusLabel!: string;
@Expose()
overallCompletionPercentage!: number | null;
@Expose()
invitedAt!: string | null;
@Expose()
acceptedAt!: string | null;
@Expose()
@Type(() => ParticipantProgressPreBatDto)
preBat!: ParticipantProgressPreBatDto;
@Expose()
@Type(() => ParticipantProgressELearningDto)
eLearning!: ParticipantProgressELearningDto;
@Expose()
@Type(() => ParticipantProgressKnowledgeReviewDto)
knowledgeReview!: ParticipantProgressKnowledgeReviewDto;
@Expose()
@Type(() => ParticipantProgressPostBatDto)
postBat!: ParticipantProgressPostBatDto;
@Expose()
courseCompletedAt!: string | null;
}