From 0569b5aaeef8cb0eb3e01fe587cb1697141cea33 Mon Sep 17 00:00:00 2001 From: Gerald Schmittinger Date: Sun, 23 Feb 2025 14:43:02 +0100 Subject: [PATCH] Fixed errors in entity definitions --- backend/src/entities/assigments/assignment.entity.ts | 4 ++-- backend/src/entities/assigments/group.entity.ts | 2 +- backend/src/entities/content/attachment.entity.ts | 3 ++- backend/src/entities/content/learning-object.entity.ts | 4 ++-- backend/src/entities/content/learning-path.entity.ts | 9 ++++++--- backend/src/entities/users/student.entity.ts | 4 ++++ 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/backend/src/entities/assigments/assignment.entity.ts b/backend/src/entities/assigments/assignment.entity.ts index f3bd6a19..24151e84 100644 --- a/backend/src/entities/assigments/assignment.entity.ts +++ b/backend/src/entities/assigments/assignment.entity.ts @@ -14,12 +14,12 @@ export class Assignment { @Property({type: "string"}) title!: string; - @Property({type: "longtext"}) + @Property({type: "text"}) description!: string; @ManyToOne({entity: () => LearningPath}) task!: LearningPath; - @OneToMany({entity: () => Group}) + @OneToMany({entity: () => Group, mappedBy: "assignment"}) groups!: Group[]; } diff --git a/backend/src/entities/assigments/group.entity.ts b/backend/src/entities/assigments/group.entity.ts index 48ca08d7..ad768683 100644 --- a/backend/src/entities/assigments/group.entity.ts +++ b/backend/src/entities/assigments/group.entity.ts @@ -10,6 +10,6 @@ export class Group { @PrimaryKey({type: "integer"}) groupNumber!: number; - @ManyToMany({entity: Student}) + @ManyToMany({entity: () => Student}) members!: Student[]; } diff --git a/backend/src/entities/content/attachment.entity.ts b/backend/src/entities/content/attachment.entity.ts index ac6edd93..600d2a83 100644 --- a/backend/src/entities/content/attachment.entity.ts +++ b/backend/src/entities/content/attachment.entity.ts @@ -1,6 +1,7 @@ -import {ManyToOne, PrimaryKey, Property} from "@mikro-orm/core"; +import {Entity, ManyToOne, PrimaryKey, Property} from "@mikro-orm/core"; import {LearningObject} from "./learning-object.entity"; +@Entity() export class Attachment { @ManyToOne({entity: () => LearningObject, primary: true}) learningObject!: LearningObject; diff --git a/backend/src/entities/content/learning-object.entity.ts b/backend/src/entities/content/learning-object.entity.ts index 60db77af..0ade62a9 100644 --- a/backend/src/entities/content/learning-object.entity.ts +++ b/backend/src/entities/content/learning-object.entity.ts @@ -19,7 +19,7 @@ export class LearningObject { @Property({type: "string"}) title!: string; - @Property({type: "longtext"}) + @Property({type: "text"}) description!: string; @Property({type: "string"}) @@ -58,7 +58,7 @@ export class LearningObject { @Property({type: "string", nullable: true}) contentLocation?: string; - @OneToMany({entity: Attachment}) + @OneToMany({entity: () => Attachment, mappedBy: "learningObject"}) attachments: Attachment[] = []; @Property({type: "blob"}) diff --git a/backend/src/entities/content/learning-path.entity.ts b/backend/src/entities/content/learning-path.entity.ts index 88346629..a1346497 100644 --- a/backend/src/entities/content/learning-path.entity.ts +++ b/backend/src/entities/content/learning-path.entity.ts @@ -1,15 +1,18 @@ -import {Embeddable, Embedded, Entity, Enum, OneToOne, Property} from "@mikro-orm/core"; +import {Embeddable, Embedded, Entity, Enum, OneToOne, PrimaryKey, Property} from "@mikro-orm/core"; import {Language} from "./language"; @Entity() export class LearningPath { - @Enum({items: () => Language}) + @PrimaryKey({type: "string"}) + hruid!: string; + + @Enum({items: () => Language, primary: true}) language!: Language; @Property({type: "string"}) title!: string; - @Property({type: "longtext"}) + @Property({type: "text"}) description!: string; @Property({type: "blob"}) diff --git a/backend/src/entities/users/student.entity.ts b/backend/src/entities/users/student.entity.ts index aead3ff6..59c8798c 100644 --- a/backend/src/entities/users/student.entity.ts +++ b/backend/src/entities/users/student.entity.ts @@ -1,9 +1,13 @@ import {User} from "./user.entity"; import {Collection, Entity, ManyToMany} from '@mikro-orm/core'; import {Class} from "../classes/class.entity"; +import {Group} from "../assigments/group.entity"; @Entity() export class Student extends User { @ManyToMany(() => Class) classes!: Collection; + + @ManyToMany(() => Group) + groups!: Collection; }