import { Column, Entity, JoinTable, ManyToMany, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; import { WorkCharacter } from './work-character'; import { World } from './world'; import { WorldCharacterName } from './world-character-name'; @Entity() export class WorldCharacter implements WorldCharacterEntityInterface { @PrimaryGeneratedColumn() public readonly id!: number; @Column({ nullable: false, default: '', }) public nameCanonical!: string; @OneToMany( () => WorldCharacterName, (worldCharacterName: WorldCharacterNameEntityInterface) => worldCharacterName.entity ) public names!: Promise; @ManyToMany(() => WorkCharacter, (workCharacter: WorkCharacterEntityInterface) => workCharacter.worldCharacters) public workCharacters!: Promise; @ManyToMany(() => World, (world: WorldEntityInterface) => world.worldCharacters) public worlds!: Promise; @ManyToMany(() => WorldCharacter, (worldCharacter: WorldCharacterEntityInterface) => worldCharacter.children) @JoinTable() public parents!: Promise; @ManyToMany(() => WorldCharacter, (worldCharacter: WorldCharacterEntityInterface) => worldCharacter.parents) public children!: Promise; }