Files
immich/server/src/schema/tables/album-asset.table.ts

39 lines
1.2 KiB
TypeScript
Raw Normal View History

import { UpdatedAtTrigger, UpdateIdColumn } from 'src/decorators';
import { album_assets_delete_audit } from 'src/schema/functions';
2025-03-29 09:26:24 -04:00
import { AlbumTable } from 'src/schema/tables/album.table';
import { AssetTable } from 'src/schema/tables/asset.table';
2025-06-30 13:19:16 -04:00
import {
AfterDeleteTrigger,
CreateDateColumn,
ForeignKeyColumn,
Generated,
Table,
Timestamp,
UpdateDateColumn,
} from 'src/sql-tools';
2025-03-28 10:40:09 -04:00
@Table({ name: 'albums_assets_assets', primaryConstraintName: 'PK_c67bc36fa845fb7b18e0e398180' })
@UpdatedAtTrigger('album_assets_updated_at')
@AfterDeleteTrigger({
scope: 'statement',
function: album_assets_delete_audit,
referencingOldTableAs: 'old',
when: 'pg_trigger_depth() <= 1',
})
2025-03-28 10:40:09 -04:00
export class AlbumAssetTable {
2025-04-17 14:41:06 -04:00
@ForeignKeyColumn(() => AlbumTable, { onDelete: 'CASCADE', onUpdate: 'CASCADE', nullable: false, primary: true })
albumsId!: string;
2025-03-28 10:40:09 -04:00
2025-04-17 14:41:06 -04:00
@ForeignKeyColumn(() => AssetTable, { onDelete: 'CASCADE', onUpdate: 'CASCADE', nullable: false, primary: true })
assetsId!: string;
2025-03-28 10:40:09 -04:00
@CreateDateColumn()
2025-06-30 13:19:16 -04:00
createdAt!: Generated<Timestamp>;
@UpdateDateColumn()
2025-06-30 13:19:16 -04:00
updatedAt!: Generated<Timestamp>;
@UpdateIdColumn({ indexName: 'IDX_album_assets_update_id' })
2025-06-30 13:19:16 -04:00
updateId!: Generated<string>;
2025-03-28 10:40:09 -04:00
}