mirror of
https://github.com/immich-app/immich.git
synced 2025-05-31 04:05:39 -04:00
* Added EXIF extracting in the backend * Added EXIF displaying on `image_viewer_page.dart` * Added Icon for backup option not enable
68 lines
1.6 KiB
TypeScript
68 lines
1.6 KiB
TypeScript
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()
|
|
id: string;
|
|
|
|
@Index({ unique: true })
|
|
@Column({ type: 'uuid' })
|
|
assetId: string;
|
|
|
|
@Column({ nullable: true })
|
|
make: string;
|
|
|
|
@Column({ nullable: true })
|
|
model: string;
|
|
|
|
@Column({ nullable: true })
|
|
imageName: string;
|
|
|
|
@Column({ nullable: true })
|
|
exifImageWidth: number;
|
|
|
|
@Column({ nullable: true })
|
|
exifImageHeight: number;
|
|
|
|
@Column({ nullable: true })
|
|
fileSizeInByte: number;
|
|
|
|
@Column({ nullable: true })
|
|
orientation: string;
|
|
|
|
@Column({ type: 'timestamptz', nullable: true })
|
|
dateTimeOriginal: Date;
|
|
|
|
@Column({ type: 'timestamptz', nullable: true })
|
|
modifyDate: Date;
|
|
|
|
@Column({ nullable: true })
|
|
lensModel: string;
|
|
|
|
@Column({ type: 'float8', nullable: true })
|
|
fNumber: number;
|
|
|
|
@Column({ type: 'float8', nullable: true })
|
|
focalLength: number;
|
|
|
|
@Column({ nullable: true })
|
|
iso: number;
|
|
|
|
@Column({ type: 'float', nullable: true })
|
|
exposureTime: number;
|
|
|
|
@Column({ type: 'float', nullable: true })
|
|
latitude: number;
|
|
|
|
@Column({ type: 'float', nullable: true })
|
|
longitude: number;
|
|
|
|
@OneToOne(() => AssetEntity, { onDelete: 'CASCADE', nullable: true })
|
|
@JoinColumn({ name: 'assetId', referencedColumnName: 'id' })
|
|
asset: ExifEntity;
|
|
}
|