1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2025-01-14 14:43:17 +08:00
pigallery2/backend/model/sql/enitites/DirectoryEntity.ts

41 lines
1.0 KiB
TypeScript
Raw Normal View History

2018-03-30 15:30:30 -04:00
import {Column, Entity, ManyToOne, OneToMany, PrimaryGeneratedColumn} from 'typeorm';
import {DirectoryDTO} from '../../../../common/entities/DirectoryDTO';
import {PhotoEntity} from './PhotoEntity';
2016-12-27 20:55:51 +01:00
2017-02-05 16:19:35 +01:00
@Entity()
export class DirectoryEntity implements DirectoryDTO {
2016-12-27 20:55:51 +01:00
2017-07-15 17:48:29 +02:00
@PrimaryGeneratedColumn()
id: number;
2016-12-27 20:55:51 +01:00
2017-07-21 19:14:22 +02:00
@Column()
2017-07-15 17:48:29 +02:00
name: string;
2016-12-27 20:55:51 +01:00
2017-07-21 19:14:22 +02:00
@Column()
2017-07-15 17:48:29 +02:00
path: string;
2016-12-27 20:55:51 +01:00
2017-12-19 11:19:48 -05:00
/**
* last time the directory was modified (from outside, eg.: a new photo was added)
*/
2017-10-19 12:08:07 -04:00
@Column('bigint')
2017-07-19 20:47:09 +02:00
public lastModified: number;
2016-12-27 20:55:51 +01:00
2017-12-19 11:19:48 -05:00
/**
* Last time the directory was fully scanned, not only for a few photos to create a preview
*/
2018-03-30 15:30:30 -04:00
@Column({type: 'bigint', nullable: true})
public lastScanned: number;
2016-12-28 15:35:27 +01:00
2017-07-21 19:14:22 +02:00
isPartial?: boolean;
2018-03-30 15:30:30 -04:00
@ManyToOne(type => DirectoryEntity, directory => directory.directories, {onDelete: 'CASCADE'})
2017-07-15 17:48:29 +02:00
public parent: DirectoryEntity;
2016-12-27 20:55:51 +01:00
2017-07-15 17:48:29 +02:00
@OneToMany(type => DirectoryEntity, dir => dir.parent)
public directories: Array<DirectoryEntity>;
2016-12-27 20:55:51 +01:00
2017-07-15 17:48:29 +02:00
@OneToMany(type => PhotoEntity, photo => photo.directory)
public photos: Array<PhotoEntity>;
2016-12-27 20:55:51 +01:00
2017-07-15 17:48:29 +02:00
}