apps/recallassess/recallassess-api/src/api/admin/report/reports/participant-progress/participant-progress.dto.ts
Properties |
| completedAt |
Type : string | 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;
}