29 lines
879 B
TypeScript
29 lines
879 B
TypeScript
import { Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core';
|
|
import { Class } from '../classes/class.entity.js';
|
|
import { Group } from './group.entity.js';
|
|
import { Language } from '../content/language.js';
|
|
import { AssignmentRepository } from '../../data/assignments/assignment-repository.js';
|
|
|
|
@Entity({ repository: () => AssignmentRepository })
|
|
export class Assignment {
|
|
@ManyToOne({ entity: () => Class, primary: true })
|
|
within!: Class;
|
|
|
|
@PrimaryKey({ type: 'number' })
|
|
id!: number;
|
|
|
|
@Property({ type: 'string' })
|
|
title!: string;
|
|
|
|
@Property({ type: 'text' })
|
|
description!: string;
|
|
|
|
@Property({ type: 'string' })
|
|
learningPathHruid!: string;
|
|
|
|
@Enum({ items: () => Language })
|
|
learningPathLanguage!: Language;
|
|
|
|
@OneToMany({ entity: () => Group, mappedBy: 'assignment' })
|
|
groups!: Group[];
|
|
}
|