feat: add admin tests read and update endpoints

This commit is contained in:
2026-06-06 13:33:56 +03:30
parent 39e6c96113
commit 28c1a4831e
31 changed files with 330 additions and 101 deletions
@@ -6,15 +6,15 @@ import { Choice } from '@/modules/questions/entities/choice.entity';
@Entity()
export class SubmissionAnswer {
@PrimaryGeneratedColumn()
id: number;
id!: number;
@ManyToOne(() => Submission, (submission) => submission.answers, {
onDelete: 'CASCADE',
})
submission: Submission;
submission!: Submission;
@ManyToOne(() => Question, { onDelete: 'CASCADE' })
question: Question;
question!: Question;
@ManyToOne(() => Choice, { nullable: true, onDelete: 'CASCADE' })
choice?: Choice;
@@ -13,20 +13,20 @@ import { ResultRange } from '@/modules/scoring/entities/result-range.entity';
@Check(`"probability" >= 0 AND "probability" <= 100`)
export class SubmissionResult {
@PrimaryGeneratedColumn()
id: number;
id!: number;
@ManyToOne(() => Submission, { onDelete: 'CASCADE' })
submission: Submission;
submission!: Submission;
@Column({ type: 'int', nullable: false })
score: number;
score!: number;
@Column({ type: 'int', nullable: false })
probability: number;
probability!: number;
@ManyToOne(() => ResultRange, { onDelete: 'CASCADE' })
resultRange: ResultRange;
resultRange!: ResultRange;
@CreateDateColumn()
createdAt: Date;
createdAt!: Date;
}
@@ -14,24 +14,24 @@ import { SubmissionAnswer } from './submission-answer.entity';
@Entity()
export class Submission {
@PrimaryGeneratedColumn()
id: number;
id!: number;
@ManyToOne(() => User, { nullable: true, onDelete: 'SET NULL' })
user?: User;
@ManyToOne(() => Test, { onDelete: 'CASCADE' })
test: Test;
test!: Test;
@Column({
type: 'enum',
enum: SubmissionStatus,
default: SubmissionStatus.IN_PROGRESS,
})
status: SubmissionStatus;
status!: SubmissionStatus;
@OneToMany(() => SubmissionAnswer, (answer) => answer.submission)
answers: Array<SubmissionAnswer>;
answers!: Array<SubmissionAnswer>;
@CreateDateColumn()
createdAt: Date;
createdAt!: Date;
}