import { Column, Entity, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'; import { Collection } from './collection'; import { Work } from './work'; /** * This entity orders works in a collection. * The main use case is chronological ordering. */ @Entity() export class CollectionPart implements IIdentifiableEntity, IOrderableEntity { @PrimaryGeneratedColumn() public id: number; /** * the collection thw work is a part of */ @ManyToOne(() => Collection, (collection: Collection) => collection.parts, { nullable: false, onDelete: 'CASCADE', onUpdate: 'CASCADE', }) public collection: Promise; /** * the work inside the collection */ @ManyToOne(() => Work, (work: Work) => work.collectionParts, { nullable: false, onDelete: 'CASCADE', onUpdate: 'CASCADE', }) public work: Promise; @Column({ nullable: false, default: 0, }) public order: number; }