immich/server/src/schema/tables/album.table.ts
Daniel Dietzler 4bfb8b36c2
chore!: migrate album owner to album_user (#27467)
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-04-22 16:52:23 +02:00

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>;
}