mirror of
https://github.com/immich-app/immich.git
synced 2025-05-24 01:12:58 -04:00
56 lines
1.4 KiB
TypeScript
56 lines
1.4 KiB
TypeScript
import { UpdatedAtTrigger, UpdateIdColumn } from 'src/decorators';
|
|
import { AssetOrder } from 'src/enum';
|
|
import { AssetTable } from 'src/schema/tables/asset.table';
|
|
import { UserTable } from 'src/schema/tables/user.table';
|
|
import {
|
|
Column,
|
|
CreateDateColumn,
|
|
DeleteDateColumn,
|
|
ForeignKeyColumn,
|
|
PrimaryGeneratedColumn,
|
|
Table,
|
|
UpdateDateColumn,
|
|
} from 'src/sql-tools';
|
|
|
|
@Table({ name: 'albums', primaryConstraintName: 'PK_7f71c7b5bc7c87b8f94c9a93a00' })
|
|
@UpdatedAtTrigger('albums_updated_at')
|
|
export class AlbumTable {
|
|
@PrimaryGeneratedColumn()
|
|
id!: string;
|
|
|
|
@ForeignKeyColumn(() => UserTable, { onDelete: 'CASCADE', onUpdate: 'CASCADE', nullable: false })
|
|
ownerId!: string;
|
|
|
|
@Column({ default: 'Untitled Album' })
|
|
albumName!: string;
|
|
|
|
@CreateDateColumn()
|
|
createdAt!: Date;
|
|
|
|
@ForeignKeyColumn(() => AssetTable, {
|
|
nullable: true,
|
|
onDelete: 'SET NULL',
|
|
onUpdate: 'CASCADE',
|
|
comment: 'Asset ID to be used as thumbnail',
|
|
})
|
|
albumThumbnailAssetId!: string;
|
|
|
|
@UpdateDateColumn()
|
|
updatedAt!: Date;
|
|
|
|
@Column({ type: 'text', default: '' })
|
|
description!: string;
|
|
|
|
@DeleteDateColumn()
|
|
deletedAt!: Date | null;
|
|
|
|
@Column({ type: 'boolean', default: true })
|
|
isActivityEnabled!: boolean;
|
|
|
|
@Column({ default: AssetOrder.DESC })
|
|
order!: AssetOrder;
|
|
|
|
@UpdateIdColumn({ indexName: 'IDX_albums_update_id' })
|
|
updateId?: string;
|
|
}
|