File

lib/common/file/entity/file.entity.ts

Description

The entity stores data about uploaded files

Index

Properties

Properties

code
Type : string
Decorators :
@Index({unique: true})
@Column('varchar', {nullable: true})
icon
Type : MediaEntity
Decorators :
@ManyToOne(undefined, t => t.code)
id
Type : number
Decorators :
@PrimaryGeneratedColumn({zerofill: true})
metadata
Type : FileMetadataEntity
Decorators :
@OneToOne(undefined, t => t.id, {cascade: true, onDelete: 'CASCADE'})
@JoinColumn()
name
Type : string
Decorators :
@Column('varchar', {nullable: true})
path
Type : string
Decorators :
@Column('varchar', {nullable: true})
preview
Type : MediaEntity
Decorators :
@ManyToOne(undefined, t => t.code)
public
Type : boolean
Decorators :
@Column('boolean', {default: false})
size
Type : number
Decorators :
@Column('int', {nullable: true})
tsCreated
Type : Date
Decorators :
@Index()
@CreateDateColumn({name: 'ts_created', type: 'timestamp'})
import {
  Column,
  CreateDateColumn,
  Entity,
  Index,
  JoinColumn,
  ManyToOne,
  OneToOne,
  PrimaryGeneratedColumn,
  TableInheritance,
} from "typeorm";
import { File } from "../file.types";
import { MediaEntity } from "../../media/entity/media.entity";
import { FileMetadataEntity } from "./file-metadata.entity";

/**
 * The entity stores data about uploaded files
 */
@Entity("files")
@TableInheritance({
  column: { type: "varchar", name: "class", nullable: true },
})
export class FileEntity implements File {
  @PrimaryGeneratedColumn({ zerofill: true })
  id: number;

  @Index({ unique: true })
  @Column("varchar", { nullable: true })
  code: string;

  @Column("varchar", { nullable: true })
  name: string;

  @Column("varchar", { nullable: true })
  path: string;

  @Column("boolean", { default: false })
  public: boolean;

  @Column("int", { nullable: true })
  size: number;

  @ManyToOne(() => MediaEntity, (t) => t.code)
  icon: MediaEntity;

  @ManyToOne(() => MediaEntity, (t) => t.code)
  preview: MediaEntity;

  @OneToOne(() => FileMetadataEntity, (t) => t.id, {
    cascade: true,
    onDelete: "CASCADE",
  })
  @JoinColumn()
  metadata: FileMetadataEntity;

  @Index()
  @CreateDateColumn({ name: "ts_created", type: "timestamp" })
  tsCreated: Date;
}

results matching ""

    No results matching ""