Picsur/backend/src/database/entities/images/image.entity.ts
2022-09-18 16:05:37 +02:00

47 lines
1,005 B
TypeScript

import { EImage } from 'picsur-shared/dist/entities/image.entity';
import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm';
import { EImageDerivativeBackend } from './image-derivative.entity';
import { EImageFileBackend } from './image-file.entity';
@Entity()
export class EImageBackend implements EImage {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({
nullable: false,
type: 'uuid',
})
user_id: string;
@Column({
type: 'timestamptz',
nullable: false,
})
created: Date;
@Column({
nullable: false,
default: 'image',
})
file_name: string;
@Column({
type: 'timestamptz',
nullable: true,
})
expires_at: Date | null;
@Column({
nullable: true,
select: false,
})
delete_key?: string;
@OneToMany(() => EImageDerivativeBackend, (derivative) => derivative.image_id)
derivatives: EImageDerivativeBackend[];
@OneToMany(() => EImageFileBackend, (file) => file.image_id)
files: EImageFileBackend[];
}