24 lines
700 B
TypeScript
24 lines
700 B
TypeScript
import { UUID } from 'crypto';
|
|
import { BookOriginType } from 'src/shared/enums/book_origin_type';
|
|
import { Column, Entity, JoinColumn, ManyToOne, OneToOne, PrimaryColumn, Unique } from 'typeorm';
|
|
import { BookEntity } from './book.entity';
|
|
|
|
@Entity("book_origins")
|
|
@Unique(['bookOriginId', 'type', 'value'])
|
|
export class BookOriginEntity {
|
|
@PrimaryColumn({ name: 'book_origin_id' })
|
|
readonly bookOriginId: UUID;
|
|
|
|
@Column({ name: 'book_id' })
|
|
readonly bookId: UUID;
|
|
|
|
@Column({ name: 'origin_type' })
|
|
type: BookOriginType;
|
|
|
|
@Column({ name: 'origin_value' })
|
|
value: string;
|
|
|
|
@OneToOne(type => BookEntity, book => book.metadata)
|
|
@JoinColumn({ name: 'book_id' })
|
|
book: BookEntity;
|
|
} |