mirror of
https://github.com/immich-app/immich.git
synced 2026-05-12 10:38:24 -04:00
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com> Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
54 lines
1.2 KiB
TypeScript
54 lines
1.2 KiB
TypeScript
import {
|
|
Column,
|
|
CreateDateColumn,
|
|
DeleteDateColumn,
|
|
ForeignKeyColumn,
|
|
Generated,
|
|
PrimaryGeneratedColumn,
|
|
Table,
|
|
Timestamp,
|
|
UpdateDateColumn,
|
|
} from '@immich/sql-tools';
|
|
import { UpdatedAtTrigger, UpdateIdColumn } from 'src/decorators';
|
|
import { AssetOrder } from 'src/enum';
|
|
import { AssetTable } from 'src/schema/tables/asset.table';
|
|
|
|
@Table({ name: 'album' })
|
|
@UpdatedAtTrigger('album_updatedAt')
|
|
export class AlbumTable {
|
|
@PrimaryGeneratedColumn()
|
|
id!: Generated<string>;
|
|
|
|
@Column({ default: 'Untitled Album' })
|
|
albumName!: Generated<string>;
|
|
|
|
@CreateDateColumn()
|
|
createdAt!: Generated<Timestamp>;
|
|
|
|
@ForeignKeyColumn(() => AssetTable, {
|
|
nullable: true,
|
|
onDelete: 'SET NULL',
|
|
onUpdate: 'CASCADE',
|
|
comment: 'Asset ID to be used as thumbnail',
|
|
})
|
|
albumThumbnailAssetId!: string | null;
|
|
|
|
@UpdateDateColumn()
|
|
updatedAt!: Generated<Timestamp>;
|
|
|
|
@Column({ type: 'text', default: '' })
|
|
description!: Generated<string>;
|
|
|
|
@DeleteDateColumn()
|
|
deletedAt!: Timestamp | null;
|
|
|
|
@Column({ type: 'boolean', default: true })
|
|
isActivityEnabled!: Generated<boolean>;
|
|
|
|
@Column({ default: AssetOrder.Desc })
|
|
order!: Generated<AssetOrder>;
|
|
|
|
@UpdateIdColumn({ index: true })
|
|
updateId!: Generated<string>;
|
|
}
|