import { UpdatedAtTrigger, UpdateIdColumn } from 'src/decorators'; import { UserTable } from 'src/schema/tables/user.table'; import { Column, CreateDateColumn, DeleteDateColumn, ForeignKeyColumn, Generated, PrimaryGeneratedColumn, Table, Timestamp, UpdateDateColumn, } from 'src/sql-tools'; @Table('library') @UpdatedAtTrigger('library_updatedAt') export class LibraryTable { @PrimaryGeneratedColumn() id!: Generated; @Column() name!: string; @ForeignKeyColumn(() => UserTable, { onDelete: 'CASCADE', onUpdate: 'CASCADE', nullable: false }) ownerId!: string; @Column({ type: 'text', array: true }) importPaths!: string[]; @Column({ type: 'text', array: true }) exclusionPatterns!: string[]; @CreateDateColumn() createdAt!: Generated; @UpdateDateColumn() updatedAt!: Generated; @DeleteDateColumn() deletedAt!: Timestamp | null; @Column({ type: 'timestamp with time zone', nullable: true }) refreshedAt!: Timestamp | null; @UpdateIdColumn({ index: true }) updateId!: Generated; }