From c527bae7fc4f2e0aa3999b46801378929ae3dd47 Mon Sep 17 00:00:00 2001 From: Gerald Schmittinger Date: Tue, 25 Feb 2025 22:55:08 +0100 Subject: [PATCH] fix(backup): Date in primaire sleutel Componenten van primaire sleutels, die het aanmaaktijdstip bevatten, vervangen door volgnummers om problemen te vermijden wanneer meerdere entities exact op hetzelfde moment aangemaakt worden. --- .../src/entities/assigments/submission.entity.ts | 15 +++++++++------ backend/src/entities/questions/answer.entity.ts | 9 ++++++--- backend/src/entities/questions/question.entity.ts | 13 ++++++++----- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/backend/src/entities/assigments/submission.entity.ts b/backend/src/entities/assigments/submission.entity.ts index 57f7f980..8f833518 100644 --- a/backend/src/entities/assigments/submission.entity.ts +++ b/backend/src/entities/assigments/submission.entity.ts @@ -5,9 +5,6 @@ import {Language} from "../content/language"; @Entity() export class Submission { - @ManyToOne({entity: () => Student, primary: true}) - submitter!: Student; - @PrimaryKey({type: "string"}) learningObjectHruid!: string; @@ -15,10 +12,16 @@ export class Submission { learningObjectLanguage!: Language; @PrimaryKey({type: "string"}) - learningObjectVersion: number = "1"; + learningObjectVersion: string = "1"; - @PrimaryKey({type: "datetime"}) - submissionTime: Date; + @Property({type: "integer"}) + submissionNumber!: number; + + @ManyToOne({entity: () => Student}) + submitter!: Student; + + @Property({type: "datetime"}) + submissionTime!: Date; @ManyToOne({entity: () => Group, nullable: true}) onBehalfOf?: Group; diff --git a/backend/src/entities/questions/answer.entity.ts b/backend/src/entities/questions/answer.entity.ts index 545482a8..6dac636f 100644 --- a/backend/src/entities/questions/answer.entity.ts +++ b/backend/src/entities/questions/answer.entity.ts @@ -11,9 +11,12 @@ export class Answer { @ManyToOne({entity: () => Question, primary: true}) toQuestion!: Question; - @PrimaryKey({type: "datetime"}) - timestamp: Date; + @PrimaryKey({type: "integer"}) + sequenceNumber!: number; + + @Property({type: "datetime"}) + timestamp!: Date; @Property({type: "text"}) - content: string; + content!: string; } diff --git a/backend/src/entities/questions/question.entity.ts b/backend/src/entities/questions/question.entity.ts index 3a2976c5..34aa4bb2 100644 --- a/backend/src/entities/questions/question.entity.ts +++ b/backend/src/entities/questions/question.entity.ts @@ -4,9 +4,6 @@ import {Student} from "../users/student.entity"; @Entity() export class Question { - @ManyToOne({entity: () => Student, primary: true}) - author!: Student; - @PrimaryKey({type: "string"}) learningObjectHruid!: string; @@ -14,9 +11,15 @@ export class Question { learningObjectLanguage!: Language; @PrimaryKey({type: "string"}) - learningObjectVersion!: number = "1"; + learningObjectVersion: string = "1"; - @PrimaryKey({type: "datetime"}) + @PrimaryKey({type: "integer"}) + sequenceNumber!: number; + + @ManyToOne({entity: () => Student}) + author!: Student; + + @Property({type: "datetime"}) timestamp!: Date; @Property({type: "text"})