immich/server/src/schema/tables/api-key.table.ts

42 lines
936 B
TypeScript
Raw Normal View History

2025-03-28 10:40:09 -04:00
import {
Column,
CreateDateColumn,
ForeignKeyColumn,
2025-06-30 13:19:16 -04:00
Generated,
2025-03-28 10:40:09 -04:00
PrimaryGeneratedColumn,
Table,
2025-06-30 13:19:16 -04:00
Timestamp,
2025-03-28 10:40:09 -04:00
UpdateDateColumn,
} from '@immich/sql-tools';
import { UpdatedAtTrigger, UpdateIdColumn } from 'src/decorators';
import { Permission } from 'src/enum';
import { UserTable } from 'src/schema/tables/user.table';
2025-03-28 10:40:09 -04:00
2025-07-14 10:13:06 -04:00
@Table('api_key')
@UpdatedAtTrigger('api_key_updatedAt')
2025-06-30 13:19:16 -04:00
export class ApiKeyTable {
@PrimaryGeneratedColumn()
id!: Generated<string>;
2025-03-28 10:40:09 -04:00
@Column()
name!: string;
@Column({ type: 'bytea', index: true })
key!: Buffer;
2025-03-28 10:40:09 -04:00
@ForeignKeyColumn(() => UserTable, { onUpdate: 'CASCADE', onDelete: 'CASCADE' })
userId!: string;
2025-03-28 10:40:09 -04:00
@CreateDateColumn()
2025-06-30 13:19:16 -04:00
createdAt!: Generated<Timestamp>;
2025-03-28 10:40:09 -04:00
@UpdateDateColumn()
2025-06-30 13:19:16 -04:00
updatedAt!: Generated<Timestamp>;
@Column({ array: true, type: 'character varying' })
permissions!: Permission[];
2025-07-14 10:13:06 -04:00
@UpdateIdColumn({ index: true })
2025-06-30 13:19:16 -04:00
updateId!: Generated<string>;
2025-03-28 10:40:09 -04:00
}