import { Column, Entity, JoinTable, ManyToMany, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'; import { Source } from './source'; import { Work } from './work'; @Entity() export class Copy implements CopyEntityInterface { @PrimaryGeneratedColumn() public readonly id!: number; @ManyToOne(() => Work, (work: WorkEntityInterface) => work.copies, { nullable: false, onDelete: 'CASCADE', onUpdate: 'CASCADE', }) public original!: Promise; @ManyToMany(() => Source, (source: SourceEntityInterface) => source.copies) @JoinTable() public sources!: Promise; @Column({ nullable: false, default: '', }) public hash!: string; @Column('text', { nullable: true, }) public location!: string | null; @Column({ nullable: false, default: 0, }) public ranking!: number; }