import { Entity, JoinTable, ManyToMany, OneToMany } from 'typeorm'; import { Author } from './author'; import { MultiNamed } from './bases/multiNamed'; import { Copy } from './copy'; import { IntellectualProperty } from './intellectualProperty'; import { Tag } from './tag'; @Entity() export class Book extends MultiNamed { @OneToMany(() => Copy, copy => copy.original, { nullable: true, onDelete: 'CASCADE', onUpdate: 'CASCADE', }) public copies: Promise; @ManyToMany(() => Author, { nullable: true, onDelete: 'CASCADE', onUpdate: 'CASCADE', }) @JoinTable() public authors: Promise; @ManyToMany(() => IntellectualProperty, { nullable: true, onDelete: 'CASCADE', onUpdate: 'CASCADE', }) @JoinTable() public intellectualProperties: Promise; @ManyToMany(() => Tag, { nullable: true, onDelete: 'CASCADE', onUpdate: 'CASCADE', }) @JoinTable() public tags: Promise; }