2022-02-10 20:40:11 -06:00
|
|
|
import { Index, JoinColumn, OneToOne } from 'typeorm';
|
|
|
|
|
import { Column } from 'typeorm/decorator/columns/Column';
|
|
|
|
|
import { PrimaryGeneratedColumn } from 'typeorm/decorator/columns/PrimaryGeneratedColumn';
|
|
|
|
|
import { Entity } from 'typeorm/decorator/entity/Entity';
|
|
|
|
|
import { AssetEntity } from './asset.entity';
|
|
|
|
|
|
|
|
|
|
@Entity('exif')
|
|
|
|
|
export class ExifEntity {
|
|
|
|
|
@PrimaryGeneratedColumn()
|
2022-06-25 19:53:06 +02:00
|
|
|
id!: string;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
|
|
|
|
@Index({ unique: true })
|
|
|
|
|
@Column({ type: 'uuid' })
|
2022-06-25 19:53:06 +02:00
|
|
|
assetId!: string;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
2022-06-25 19:53:06 +02:00
|
|
|
@Column({ type: 'varchar', nullable: true })
|
|
|
|
|
make!: string | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
2022-06-25 19:53:06 +02:00
|
|
|
@Column({ type: 'varchar', nullable: true })
|
|
|
|
|
model!: string | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
2022-06-25 19:53:06 +02:00
|
|
|
@Column({ type: 'varchar', nullable: true })
|
|
|
|
|
imageName!: string | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
2022-06-25 19:53:06 +02:00
|
|
|
@Column({ type: 'integer', nullable: true })
|
|
|
|
|
exifImageWidth!: number | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
2022-06-25 19:53:06 +02:00
|
|
|
@Column({ type: 'integer', nullable: true })
|
|
|
|
|
exifImageHeight!: number | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
2022-06-25 19:53:06 +02:00
|
|
|
@Column({ type: 'integer', nullable: true })
|
|
|
|
|
fileSizeInByte!: number | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
2022-06-25 19:53:06 +02:00
|
|
|
@Column({ type: 'varchar', nullable: true })
|
|
|
|
|
orientation!: string | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
|
|
|
|
@Column({ type: 'timestamptz', nullable: true })
|
2022-06-25 19:53:06 +02:00
|
|
|
dateTimeOriginal!: Date | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
|
|
|
|
@Column({ type: 'timestamptz', nullable: true })
|
2022-06-25 19:53:06 +02:00
|
|
|
modifyDate!: Date | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
2022-06-25 19:53:06 +02:00
|
|
|
@Column({ type: 'varchar', nullable: true })
|
|
|
|
|
lensModel!: string | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
|
|
|
|
@Column({ type: 'float8', nullable: true })
|
2022-06-25 19:53:06 +02:00
|
|
|
fNumber!: number | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
|
|
|
|
@Column({ type: 'float8', nullable: true })
|
2022-06-25 19:53:06 +02:00
|
|
|
focalLength!: number | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
2022-06-25 19:53:06 +02:00
|
|
|
@Column({ type: 'integer', nullable: true })
|
|
|
|
|
iso!: number | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
|
|
|
|
@Column({ type: 'float', nullable: true })
|
2022-06-25 19:53:06 +02:00
|
|
|
exposureTime!: number | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
|
|
|
|
@Column({ type: 'float', nullable: true })
|
2022-06-25 19:53:06 +02:00
|
|
|
latitude!: number | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
|
|
|
|
@Column({ type: 'float', nullable: true })
|
2022-06-25 19:53:06 +02:00
|
|
|
longitude!: number | null;
|
2022-02-10 20:40:11 -06:00
|
|
|
|
2022-06-25 19:53:06 +02:00
|
|
|
@Column({ type: 'varchar', nullable: true })
|
|
|
|
|
city!: string | null;
|
2022-03-10 16:09:03 -06:00
|
|
|
|
2022-06-25 19:53:06 +02:00
|
|
|
@Column({ type: 'varchar', nullable: true })
|
|
|
|
|
state!: string | null;
|
2022-03-10 16:09:03 -06:00
|
|
|
|
2022-06-25 19:53:06 +02:00
|
|
|
@Column({ type: 'varchar', nullable: true })
|
|
|
|
|
country!: string | null;
|
2022-03-10 16:09:03 -06:00
|
|
|
|
2022-02-10 20:40:11 -06:00
|
|
|
@OneToOne(() => AssetEntity, { onDelete: 'CASCADE', nullable: true })
|
|
|
|
|
@JoinColumn({ name: 'assetId', referencedColumnName: 'id' })
|
2022-06-25 19:53:06 +02:00
|
|
|
asset?: ExifEntity;
|
2022-02-10 20:40:11 -06:00
|
|
|
}
|