1
0
mirror of https://github.com/immich-app/immich.git synced 2025-06-18 03:57:43 +02:00
Files
immich/server/src/types.ts

34 lines
1.5 KiB
TypeScript
Raw Normal View History

import { UserEntity } from 'src/entities/user.entity';
import { Permission } from 'src/enum';
2025-01-21 11:09:24 -05:00
import { AccessRepository } from 'src/repositories/access.repository';
2025-01-15 23:31:26 -05:00
import { ActivityRepository } from 'src/repositories/activity.repository';
2025-01-21 11:45:59 -05:00
import { ApiKeyRepository } from 'src/repositories/api-key.repository';
import { AuditRepository } from 'src/repositories/audit.repository';
import { ConfigRepository } from 'src/repositories/config.repository';
2025-01-21 13:26:13 -05:00
import { ViewRepository } from 'src/repositories/view-repository';
export type AuthApiKey = {
id: string;
key: string;
user: UserEntity;
permissions: Permission[];
};
2025-01-15 23:31:26 -05:00
export type RepositoryInterface<T extends object> = Pick<T, keyof T>;
export type IActivityRepository = RepositoryInterface<ActivityRepository>;
2025-01-21 11:09:24 -05:00
export type IAccessRepository = { [K in keyof AccessRepository]: RepositoryInterface<AccessRepository[K]> };
2025-01-21 11:45:59 -05:00
export type IApiKeyRepository = RepositoryInterface<ApiKeyRepository>;
export type IAuditRepository = RepositoryInterface<AuditRepository>;
export type IConfigRepository = RepositoryInterface<ConfigRepository>;
2025-01-21 13:26:13 -05:00
export type IViewRepository = RepositoryInterface<ViewRepository>;
2025-01-15 23:31:26 -05:00
export type ActivityItem =
| Awaited<ReturnType<IActivityRepository['create']>>
| Awaited<ReturnType<IActivityRepository['search']>>[0];
2025-01-21 11:45:59 -05:00
export type ApiKeyItem =
| Awaited<ReturnType<IApiKeyRepository['create']>>
| NonNullable<Awaited<ReturnType<IApiKeyRepository['getById']>>>
| Awaited<ReturnType<IApiKeyRepository['getByUserId']>>[0];