immich/server/src/schema/index.ts

235 lines
7.6 KiB
TypeScript
Raw Normal View History

2025-05-07 17:14:20 -04:00
import { asset_face_source_type, asset_visibility_enum, assets_status_enum } from 'src/schema/enums';
import {
2025-07-14 10:13:06 -04:00
album_delete_audit,
album_user_after_insert,
2025-07-14 10:13:06 -04:00
album_user_delete_audit,
asset_delete_audit,
asset_face_audit,
2025-08-27 14:31:23 -04:00
asset_metadata_audit,
f_concat_ws,
f_unaccent,
immich_uuid_v7,
ll_to_earth_public,
2025-07-14 10:13:06 -04:00
memory_asset_delete_audit,
memory_delete_audit,
partner_delete_audit,
person_delete_audit,
2025-07-14 10:13:06 -04:00
stack_delete_audit,
updated_at,
2025-07-14 10:13:06 -04:00
user_delete_audit,
user_metadata_audit,
} from 'src/schema/functions';
import { ActivityTable } from 'src/schema/tables/activity.table';
import { AlbumAssetAuditTable } from 'src/schema/tables/album-asset-audit.table';
import { AlbumAssetTable } from 'src/schema/tables/album-asset.table';
import { AlbumAuditTable } from 'src/schema/tables/album-audit.table';
import { AlbumUserAuditTable } from 'src/schema/tables/album-user-audit.table';
import { AlbumUserTable } from 'src/schema/tables/album-user.table';
import { AlbumTable } from 'src/schema/tables/album.table';
2025-06-30 13:19:16 -04:00
import { ApiKeyTable } from 'src/schema/tables/api-key.table';
import { AssetAuditTable } from 'src/schema/tables/asset-audit.table';
2025-07-14 10:13:06 -04:00
import { AssetExifTable } from 'src/schema/tables/asset-exif.table';
import { AssetFaceAuditTable } from 'src/schema/tables/asset-face-audit.table';
import { AssetFaceTable } from 'src/schema/tables/asset-face.table';
2025-07-14 10:13:06 -04:00
import { AssetFileTable } from 'src/schema/tables/asset-file.table';
import { AssetJobStatusTable } from 'src/schema/tables/asset-job-status.table';
2025-08-27 14:31:23 -04:00
import { AssetMetadataAuditTable } from 'src/schema/tables/asset-metadata-audit.table';
import { AssetMetadataTable } from 'src/schema/tables/asset-metadata.table';
import { AssetOcrTable } from 'src/schema/tables/asset-ocr.table';
import { AssetTable } from 'src/schema/tables/asset.table';
import { AuditTable } from 'src/schema/tables/audit.table';
import { FaceSearchTable } from 'src/schema/tables/face-search.table';
import { GeodataPlacesTable } from 'src/schema/tables/geodata-places.table';
import { LibraryTable } from 'src/schema/tables/library.table';
2025-06-27 12:20:13 -04:00
import { MemoryAssetAuditTable } from 'src/schema/tables/memory-asset-audit.table';
import { MemoryAssetTable } from 'src/schema/tables/memory-asset.table';
import { MemoryAuditTable } from 'src/schema/tables/memory-audit.table';
import { MemoryTable } from 'src/schema/tables/memory.table';
import { MoveTable } from 'src/schema/tables/move.table';
import { NaturalEarthCountriesTable } from 'src/schema/tables/natural-earth-countries.table';
import { NotificationTable } from 'src/schema/tables/notification.table';
import { OcrSearchTable } from 'src/schema/tables/ocr-search.table';
import { PartnerAuditTable } from 'src/schema/tables/partner-audit.table';
import { PartnerTable } from 'src/schema/tables/partner.table';
import { PersonAuditTable } from 'src/schema/tables/person-audit.table';
import { PersonTable } from 'src/schema/tables/person.table';
import { SessionTable } from 'src/schema/tables/session.table';
import { SharedLinkAssetTable } from 'src/schema/tables/shared-link-asset.table';
import { SharedLinkTable } from 'src/schema/tables/shared-link.table';
import { SmartSearchTable } from 'src/schema/tables/smart-search.table';
2025-06-30 15:26:41 -04:00
import { StackAuditTable } from 'src/schema/tables/stack-audit.table';
import { StackTable } from 'src/schema/tables/stack.table';
import { SessionSyncCheckpointTable } from 'src/schema/tables/sync-checkpoint.table';
import { SystemMetadataTable } from 'src/schema/tables/system-metadata.table';
import { TagAssetTable } from 'src/schema/tables/tag-asset.table';
import { TagClosureTable } from 'src/schema/tables/tag-closure.table';
2025-06-30 13:19:16 -04:00
import { TagTable } from 'src/schema/tables/tag.table';
import { UserAuditTable } from 'src/schema/tables/user-audit.table';
import { UserMetadataAuditTable } from 'src/schema/tables/user-metadata-audit.table';
import { UserMetadataTable } from 'src/schema/tables/user-metadata.table';
import { UserTable } from 'src/schema/tables/user.table';
import { VersionHistoryTable } from 'src/schema/tables/version-history.table';
2025-06-30 13:19:16 -04:00
import { Database, Extensions, Generated, Int8 } from 'src/sql-tools';
@Extensions(['uuid-ossp', 'unaccent', 'cube', 'earthdistance', 'pg_trgm', 'plpgsql'])
@Database({ name: 'immich' })
export class ImmichDatabase {
tables = [
ActivityTable,
AlbumAssetTable,
AlbumAssetAuditTable,
AlbumAuditTable,
AlbumUserAuditTable,
AlbumUserTable,
AlbumTable,
2025-06-30 13:19:16 -04:00
ApiKeyTable,
AssetAuditTable,
AssetFaceTable,
AssetFaceAuditTable,
2025-08-27 14:31:23 -04:00
AssetMetadataTable,
AssetMetadataAuditTable,
AssetJobStatusTable,
AssetOcrTable,
AssetTable,
AssetFileTable,
AuditTable,
2025-07-14 10:13:06 -04:00
AssetExifTable,
FaceSearchTable,
GeodataPlacesTable,
LibraryTable,
MemoryTable,
2025-06-27 12:20:13 -04:00
MemoryAuditTable,
MemoryAssetTable,
MemoryAssetAuditTable,
MoveTable,
NaturalEarthCountriesTable,
NotificationTable,
OcrSearchTable,
PartnerAuditTable,
PartnerTable,
PersonTable,
PersonAuditTable,
SessionTable,
SharedLinkAssetTable,
SharedLinkTable,
SmartSearchTable,
StackTable,
2025-06-30 15:26:41 -04:00
StackAuditTable,
SessionSyncCheckpointTable,
SystemMetadataTable,
2025-06-30 13:19:16 -04:00
TagTable,
TagAssetTable,
TagClosureTable,
UserAuditTable,
UserMetadataTable,
UserMetadataAuditTable,
UserTable,
VersionHistoryTable,
];
functions = [
immich_uuid_v7,
updated_at,
f_concat_ws,
f_unaccent,
ll_to_earth_public,
2025-07-14 10:13:06 -04:00
user_delete_audit,
partner_delete_audit,
asset_delete_audit,
album_delete_audit,
album_user_after_insert,
2025-07-14 10:13:06 -04:00
album_user_delete_audit,
memory_delete_audit,
memory_asset_delete_audit,
stack_delete_audit,
person_delete_audit,
2025-07-14 10:13:06 -04:00
user_metadata_audit,
2025-08-27 14:31:23 -04:00
asset_metadata_audit,
asset_face_audit,
];
2025-05-07 17:14:20 -04:00
enum = [assets_status_enum, asset_face_source_type, asset_visibility_enum];
}
2025-06-30 13:19:16 -04:00
export interface Migrations {
id: Generated<number>;
name: string;
timestamp: Int8;
}
export interface DB {
activity: ActivityTable;
2025-07-14 10:13:06 -04:00
album: AlbumTable;
album_audit: AlbumAuditTable;
album_asset: AlbumAssetTable;
album_asset_audit: AlbumAssetAuditTable;
album_user: AlbumUserTable;
album_user_audit: AlbumUserAuditTable;
api_key: ApiKeyTable;
asset: AssetTable;
2025-09-03 18:50:27 -04:00
asset_audit: AssetAuditTable;
2025-07-14 10:13:06 -04:00
asset_exif: AssetExifTable;
asset_face: AssetFaceTable;
asset_face_audit: AssetFaceAuditTable;
2025-07-14 10:13:06 -04:00
asset_file: AssetFileTable;
2025-08-27 14:31:23 -04:00
asset_metadata: AssetMetadataTable;
asset_metadata_audit: AssetMetadataAuditTable;
2025-06-30 13:19:16 -04:00
asset_job_status: AssetJobStatusTable;
2025-06-16 13:23:00 -04:00
asset_ocr: AssetOcrTable;
ocr_search: OcrSearchTable;
2025-07-14 10:13:06 -04:00
2025-06-30 13:19:16 -04:00
audit: AuditTable;
2025-07-14 10:13:06 -04:00
2025-06-30 13:19:16 -04:00
face_search: FaceSearchTable;
2025-07-14 10:13:06 -04:00
2025-06-30 13:19:16 -04:00
geodata_places: GeodataPlacesTable;
2025-07-14 10:13:06 -04:00
library: LibraryTable;
memory: MemoryTable;
memory_audit: MemoryAuditTable;
memory_asset: MemoryAssetTable;
memory_asset_audit: MemoryAssetAuditTable;
2025-06-30 13:19:16 -04:00
migrations: Migrations;
2025-07-14 10:13:06 -04:00
notification: NotificationTable;
2025-06-30 13:19:16 -04:00
move_history: MoveTable;
2025-07-14 10:13:06 -04:00
2025-06-30 13:19:16 -04:00
naturalearth_countries: NaturalEarthCountriesTable;
2025-07-14 10:13:06 -04:00
partner: PartnerTable;
partner_audit: PartnerAuditTable;
2025-06-30 13:19:16 -04:00
person: PersonTable;
person_audit: PersonAuditTable;
2025-07-14 10:13:06 -04:00
session: SessionTable;
session_sync_checkpoint: SessionSyncCheckpointTable;
shared_link: SharedLinkTable;
shared_link_asset: SharedLinkAssetTable;
2025-06-30 13:19:16 -04:00
smart_search: SmartSearchTable;
2025-07-14 10:13:06 -04:00
stack: StackTable;
stack_audit: StackAuditTable;
2025-06-30 13:19:16 -04:00
system_metadata: SystemMetadataTable;
2025-07-14 10:13:06 -04:00
tag: TagTable;
2025-06-30 13:19:16 -04:00
tag_asset: TagAssetTable;
2025-07-14 10:13:06 -04:00
tag_closure: TagClosureTable;
user: UserTable;
user_audit: UserAuditTable;
2025-06-30 13:19:16 -04:00
user_metadata: UserMetadataTable;
user_metadata_audit: UserMetadataAuditTable;
2025-07-14 10:13:06 -04:00
2025-06-30 13:19:16 -04:00
version_history: VersionHistoryTable;
}