chore: migrate database files (#8126)

This commit is contained in:
Jason Rasmussen 2024-03-20 16:02:51 -05:00 committed by GitHub
parent 84f7ca855a
commit c1402eee8e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
310 changed files with 358 additions and 362 deletions

View file

@ -1,6 +1,6 @@
import { Command, CommandRunner } from 'nest-commander';
import { UserService } from 'src/domain/user/user.service';
import { UserEntity } from 'src/infra/entities/user.entity';
import { UserEntity } from 'src/entities/user.entity';
@Command({
name: 'list-users',

View file

@ -4,7 +4,7 @@ import { QueueOptions } from 'bullmq';
import { RedisOptions } from 'ioredis';
import Joi from 'joi';
import { QueueName } from 'src/domain/job/job.constants';
import { LogLevel } from 'src/infra/entities/system-config.entity';
import { LogLevel } from 'src/entities/system-config.entity';
const WHEN_DB_URL_SET = Joi.when('DB_URL', {
is: Joi.exist(),

View file

@ -1,6 +1,6 @@
import { BadRequestException, UnauthorizedException } from '@nestjs/common';
import { AuthDto } from 'src/domain/auth/auth.dto';
import { SharedLinkEntity } from 'src/infra/entities/shared-link.entity';
import { SharedLinkEntity } from 'src/entities/shared-link.entity';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { setDifference, setIsEqual, setUnion } from 'src/utils';

View file

@ -1,9 +1,9 @@
import { dirname, join, resolve } from 'node:path';
import { SystemConfigCore } from 'src/cores/system-config.core';
import { APP_MEDIA_LOCATION } from 'src/domain/domain.constant';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { AssetPathType, PathType, PersonPathType } from 'src/infra/entities/move.entity';
import { PersonEntity } from 'src/infra/entities/person.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { AssetPathType, PathType, PersonPathType } from 'src/entities/move.entity';
import { PersonEntity } from 'src/entities/person.entity';
import { ImmichLogger } from 'src/infra/logger';
import { IAssetRepository } from 'src/interfaces/asset.repository';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';

View file

@ -20,7 +20,7 @@ import {
TranscodeHWAccel,
TranscodePolicy,
VideoCodec,
} from 'src/infra/entities/system-config.entity';
} from 'src/entities/system-config.entity';
import { ImmichLogger } from 'src/infra/logger';
import { ISystemConfigRepository } from 'src/interfaces/system-config.repository';

View file

@ -1,8 +1,8 @@
import { BadRequestException, ForbiddenException } from '@nestjs/common';
import sanitize from 'sanitize-filename';
import { UserResponseDto } from 'src/domain/user/response-dto/user-response.dto';
import { LibraryType } from 'src/infra/entities/library.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
import { LibraryType } from 'src/entities/library.entity';
import { UserEntity } from 'src/entities/user.entity';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
import { ILibraryRepository } from 'src/interfaces/library.repository';
import { IUserRepository } from 'src/interfaces/user.repository';

View file

@ -1,7 +1,7 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsEnum, IsNotEmpty, IsString, ValidateIf } from 'class-validator';
import { UserDto, mapSimpleUser } from 'src/domain/user/response-dto/user-response.dto';
import { ActivityEntity } from 'src/infra/entities/activity.entity';
import { ActivityEntity } from 'src/entities/activity.entity';
import { Optional, ValidateUUID } from 'src/validation';
export enum ReactionType {

View file

@ -12,7 +12,7 @@ import {
mapActivity,
} from 'src/domain/activity/activity.dto';
import { AuthDto } from 'src/domain/auth/auth.dto';
import { ActivityEntity } from 'src/infra/entities/activity.entity';
import { ActivityEntity } from 'src/entities/activity.entity';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { IActivityRepository } from 'src/interfaces/activity.repository';

View file

@ -2,7 +2,7 @@ import { ApiProperty } from '@nestjs/swagger';
import { AssetResponseDto, mapAsset } from 'src/domain/asset/response-dto/asset-response.dto';
import { AuthDto } from 'src/domain/auth/auth.dto';
import { UserResponseDto, mapUser } from 'src/domain/user/response-dto/user-response.dto';
import { AlbumEntity, AssetOrder } from 'src/infra/entities/album.entity';
import { AlbumEntity, AssetOrder } from 'src/entities/album.entity';
import { Optional } from 'src/validation';
export class AlbumResponseDto {

View file

@ -14,9 +14,9 @@ import { AlbumInfoDto } from 'src/domain/album/dto/album.dto';
import { GetAlbumsDto } from 'src/domain/album/dto/get-albums.dto';
import { BulkIdErrorReason, BulkIdResponseDto, BulkIdsDto } from 'src/domain/asset/response-dto/asset-ids-response.dto';
import { AuthDto } from 'src/domain/auth/auth.dto';
import { AlbumEntity } from 'src/infra/entities/album.entity';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
import { AlbumEntity } from 'src/entities/album.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { UserEntity } from 'src/entities/user.entity';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { AlbumAssetCount, AlbumInfoOptions, IAlbumRepository } from 'src/interfaces/album.repository';
import { IAssetRepository } from 'src/interfaces/asset.repository';

View file

@ -1,6 +1,6 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsEnum, IsString } from 'class-validator';
import { AssetOrder } from 'src/infra/entities/album.entity';
import { AssetOrder } from 'src/entities/album.entity';
import { Optional, ValidateBoolean, ValidateUUID } from 'src/validation';
export class UpdateAlbumDto {

View file

@ -1,7 +1,7 @@
import { BadRequestException, Inject, Injectable } from '@nestjs/common';
import { APIKeyCreateDto, APIKeyCreateResponseDto, APIKeyResponseDto } from 'src/domain/api-key/api-key.dto';
import { AuthDto } from 'src/domain/auth/auth.dto';
import { APIKeyEntity } from 'src/infra/entities/api-key.entity';
import { APIKeyEntity } from 'src/entities/api-key.entity';
import { IKeyRepository } from 'src/interfaces/api-key.repository';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';

View file

@ -5,7 +5,7 @@ import { AssetJobName } from 'src/domain/asset/dto/asset-ids.dto';
import { AssetStatsResponseDto } from 'src/domain/asset/dto/asset-statistics.dto';
import { mapAsset } from 'src/domain/asset/response-dto/asset-response.dto';
import { JobName } from 'src/domain/job/job.constants';
import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity';
import { AssetEntity, AssetType } from 'src/entities/asset.entity';
import { IAssetStackRepository } from 'src/interfaces/asset-stack.repository';
import { AssetStats, IAssetRepository, TimeBucketSize } from 'src/interfaces/asset.repository';
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository';

View file

@ -25,8 +25,8 @@ import { AuthDto } from 'src/domain/auth/auth.dto';
import { mimeTypes } from 'src/domain/domain.constant';
import { JOBS_ASSET_PAGINATION_SIZE, JobName } from 'src/domain/job/job.constants';
import { IAssetDeletionJob, ISidecarWriteJob } from 'src/domain/job/job.interface';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { LibraryType } from 'src/infra/entities/library.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { LibraryType } from 'src/entities/library.entity';
import { ImmichLogger } from 'src/infra/logger';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { IAssetStackRepository } from 'src/interfaces/asset-stack.repository';

View file

@ -1,5 +1,5 @@
import { ApiProperty } from '@nestjs/swagger';
import { AssetType } from 'src/infra/entities/asset.entity';
import { AssetType } from 'src/entities/asset.entity';
import { AssetStats } from 'src/interfaces/asset.repository';
import { ValidateBoolean } from 'src/validation';

View file

@ -1,6 +1,6 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsEnum, IsNotEmpty, IsString } from 'class-validator';
import { AssetOrder } from 'src/infra/entities/album.entity';
import { AssetOrder } from 'src/entities/album.entity';
import { TimeBucketSize } from 'src/interfaces/asset.repository';
import { Optional, ValidateBoolean, ValidateUUID } from 'src/validation';

View file

@ -5,8 +5,8 @@ import { AuthDto } from 'src/domain/auth/auth.dto';
import { PersonWithFacesResponseDto, mapFacesWithoutPerson, mapPerson } from 'src/domain/person/person.dto';
import { TagResponseDto, mapTag } from 'src/domain/tag/tag-response.dto';
import { UserResponseDto, mapUser } from 'src/domain/user/response-dto/user-response.dto';
import { AssetFaceEntity } from 'src/infra/entities/asset-face.entity';
import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity';
import { AssetFaceEntity } from 'src/entities/asset-face.entity';
import { AssetEntity, AssetType } from 'src/entities/asset.entity';
export class SanitizedAssetResponseDto {
id!: string;

View file

@ -1,5 +1,5 @@
import { ApiProperty } from '@nestjs/swagger';
import { ExifEntity } from 'src/infra/entities/exif.entity';
import { ExifEntity } from 'src/entities/exif.entity';
export class ExifResponseDto {
make?: string | null = null;

View file

@ -1,4 +1,4 @@
import { SmartInfoEntity } from 'src/infra/entities/smart-info.entity';
import { SmartInfoEntity } from 'src/entities/smart-info.entity';
export class SmartInfoResponseDto {
tags?: string[] | null;

View file

@ -1,8 +1,8 @@
import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsArray, IsEnum, IsString, IsUUID, ValidateNested } from 'class-validator';
import { EntityType } from 'src/infra/entities/audit.entity';
import { AssetPathType, PathType, PersonPathType, UserPathType } from 'src/infra/entities/move.entity';
import { EntityType } from 'src/entities/audit.entity';
import { AssetPathType, PathType, PersonPathType, UserPathType } from 'src/entities/move.entity';
import { Optional, ValidateDate, ValidateUUID } from 'src/validation';
const PathEnum = Object.values({ ...AssetPathType, ...PersonPathType, ...UserPathType });

View file

@ -1,5 +1,5 @@
import { AuditService } from 'src/domain/audit/audit.service';
import { DatabaseAction, EntityType } from 'src/infra/entities/audit.entity';
import { DatabaseAction, EntityType } from 'src/entities/audit.entity';
import { IAssetRepository } from 'src/interfaces/asset.repository';
import { IAuditRepository } from 'src/interfaces/audit.repository';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';

View file

@ -14,8 +14,8 @@ import {
import { AuthDto } from 'src/domain/auth/auth.dto';
import { AUDIT_LOG_MAX_DURATION } from 'src/domain/domain.constant';
import { JOBS_ASSET_PAGINATION_SIZE } from 'src/domain/job/job.constants';
import { DatabaseAction } from 'src/infra/entities/audit.entity';
import { AssetPathType, PersonPathType, UserPathType } from 'src/infra/entities/move.entity';
import { DatabaseAction } from 'src/entities/audit.entity';
import { AssetPathType, PersonPathType, UserPathType } from 'src/entities/move.entity';
import { ImmichLogger } from 'src/infra/logger';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { IAssetRepository } from 'src/interfaces/asset.repository';

View file

@ -1,10 +1,10 @@
import { ApiProperty } from '@nestjs/swagger';
import { Transform } from 'class-transformer';
import { IsEmail, IsNotEmpty, IsString, MinLength } from 'class-validator';
import { APIKeyEntity } from 'src/infra/entities/api-key.entity';
import { SharedLinkEntity } from 'src/infra/entities/shared-link.entity';
import { UserTokenEntity } from 'src/infra/entities/user-token.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
import { APIKeyEntity } from 'src/entities/api-key.entity';
import { SharedLinkEntity } from 'src/entities/shared-link.entity';
import { UserTokenEntity } from 'src/entities/user-token.entity';
import { UserEntity } from 'src/entities/user.entity';
export class AuthDto {
user!: UserEntity;

View file

@ -5,7 +5,7 @@ import { Socket } from 'socket.io';
import { AuthType } from 'src/domain/auth/auth.constant';
import { AuthDto, SignUpDto } from 'src/domain/auth/auth.dto';
import { AuthService } from 'src/domain/auth/auth.service';
import { UserEntity } from 'src/infra/entities/user.entity';
import { UserEntity } from 'src/entities/user.entity';
import { IKeyRepository } from 'src/interfaces/api-key.repository';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
import { ILibraryRepository } from 'src/interfaces/library.repository';

View file

@ -37,8 +37,8 @@ import {
mapUserToken,
} from 'src/domain/auth/auth.dto';
import { UserResponseDto, mapUser } from 'src/domain/user/response-dto/user-response.dto';
import { SystemConfig } from 'src/infra/entities/system-config.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
import { SystemConfig } from 'src/entities/system-config.entity';
import { UserEntity } from 'src/entities/user.entity';
import { ImmichLogger } from 'src/infra/logger';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { IKeyRepository } from 'src/interfaces/api-key.repository';

View file

@ -1,7 +1,7 @@
import { Duration } from 'luxon';
import { readFileSync } from 'node:fs';
import { extname, join } from 'node:path';
import { AssetType } from 'src/infra/entities/asset.entity';
import { AssetType } from 'src/entities/asset.entity';
export const AUDIT_LOG_MAX_DURATION = Duration.fromObject({ days: 100 });
export const ONE_HOUR = Duration.fromObject({ hours: 1 });

View file

@ -5,7 +5,7 @@ import { AssetIdsDto } from 'src/domain/asset/dto/asset-ids.dto';
import { AuthDto } from 'src/domain/auth/auth.dto';
import { mimeTypes } from 'src/domain/domain.constant';
import { DownloadArchiveInfo, DownloadInfoDto, DownloadResponseDto } from 'src/domain/download/download.dto';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { IAssetRepository } from 'src/interfaces/asset.repository';
import { IStorageRepository, ImmichReadStream } from 'src/interfaces/storage.repository';

View file

@ -2,7 +2,7 @@ import { BadRequestException } from '@nestjs/common';
import { FeatureFlag, SystemConfigCore } from 'src/cores/system-config.core';
import { JobCommand, JobName, QueueName } from 'src/domain/job/job.constants';
import { JobService } from 'src/domain/job/job.service';
import { SystemConfig, SystemConfigKey } from 'src/infra/entities/system-config.entity';
import { SystemConfig, SystemConfigKey } from 'src/entities/system-config.entity';
import { IAssetRepository } from 'src/interfaces/asset.repository';
import { ICommunicationRepository } from 'src/interfaces/communication.repository';
import { IJobRepository, JobHandler, JobItem, JobStatus } from 'src/interfaces/job.repository';

View file

@ -3,7 +3,7 @@ import { FeatureFlag, SystemConfigCore } from 'src/cores/system-config.core';
import { mapAsset } from 'src/domain/asset/response-dto/asset-response.dto';
import { ConcurrentQueueName, JobCommand, JobName, QueueName } from 'src/domain/job/job.constants';
import { AllJobStatusResponseDto, JobCommandDto, JobStatusDto } from 'src/domain/job/job.dto';
import { AssetType } from 'src/infra/entities/asset.entity';
import { AssetType } from 'src/entities/asset.entity';
import { ImmichLogger } from 'src/infra/logger';
import { IAssetRepository } from 'src/interfaces/asset.repository';
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository';

View file

@ -1,6 +1,6 @@
import { ApiProperty } from '@nestjs/swagger';
import { ArrayMaxSize, ArrayUnique, IsEnum, IsNotEmpty, IsString } from 'class-validator';
import { LibraryEntity, LibraryType } from 'src/infra/entities/library.entity';
import { LibraryEntity, LibraryType } from 'src/entities/library.entity';
import { Optional, ValidateBoolean, ValidateUUID } from 'src/validation';
export class CreateLibraryDto {

View file

@ -7,10 +7,10 @@ import { JobName } from 'src/domain/job/job.constants';
import { ILibraryFileJob, ILibraryRefreshJob } from 'src/domain/job/job.interface';
import { mapLibrary } from 'src/domain/library/library.dto';
import { LibraryService } from 'src/domain/library/library.service';
import { AssetType } from 'src/infra/entities/asset.entity';
import { LibraryType } from 'src/infra/entities/library.entity';
import { SystemConfig, SystemConfigKey } from 'src/infra/entities/system-config.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
import { AssetType } from 'src/entities/asset.entity';
import { LibraryType } from 'src/entities/library.entity';
import { SystemConfig, SystemConfigKey } from 'src/entities/system-config.entity';
import { UserEntity } from 'src/entities/user.entity';
import { IAssetRepository } from 'src/interfaces/asset.repository';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
import { IDatabaseRepository } from 'src/interfaces/database.repository';

View file

@ -23,8 +23,8 @@ import {
ValidateLibraryResponseDto,
mapLibrary,
} from 'src/domain/library/library.dto';
import { AssetType } from 'src/infra/entities/asset.entity';
import { LibraryEntity, LibraryType } from 'src/infra/entities/library.entity';
import { AssetType } from 'src/entities/asset.entity';
import { LibraryEntity, LibraryType } from 'src/entities/library.entity';
import { ImmichLogger } from 'src/infra/logger';
import { IAssetRepository, WithProperty } from 'src/interfaces/asset.repository';
import { InternalEvent, InternalEventMap } from 'src/interfaces/communication.repository';

View file

@ -1,8 +1,8 @@
import { Stats } from 'node:fs';
import { JobName } from 'src/domain/job/job.constants';
import { MediaService } from 'src/domain/media/media.service';
import { AssetType } from 'src/infra/entities/asset.entity';
import { ExifEntity } from 'src/infra/entities/exif.entity';
import { AssetType } from 'src/entities/asset.entity';
import { ExifEntity } from 'src/entities/exif.entity';
import {
AudioCodec,
Colorspace,
@ -11,7 +11,7 @@ import {
TranscodeHWAccel,
TranscodePolicy,
VideoCodec,
} from 'src/infra/entities/system-config.entity';
} from 'src/entities/system-config.entity';
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
import { IJobRepository, JobStatus } from 'src/interfaces/job.repository';

View file

@ -14,8 +14,8 @@ import {
VP9Config,
} from 'src/domain/media/media.util';
import { SystemConfigFFmpegDto } from 'src/domain/system-config/dto/system-config-ffmpeg.dto';
import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity';
import { AssetPathType } from 'src/infra/entities/move.entity';
import { AssetEntity, AssetType } from 'src/entities/asset.entity';
import { AssetPathType } from 'src/entities/move.entity';
import {
AudioCodec,
Colorspace,
@ -23,7 +23,7 @@ import {
TranscodePolicy,
TranscodeTarget,
VideoCodec,
} from 'src/infra/entities/system-config.entity';
} from 'src/entities/system-config.entity';
import { ImmichLogger } from 'src/infra/logger';
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';

View file

@ -1,11 +1,5 @@
import { SystemConfigFFmpegDto } from 'src/domain/system-config/dto/system-config-ffmpeg.dto';
import {
CQMode,
ToneMapping,
TranscodeHWAccel,
TranscodeTarget,
VideoCodec,
} from 'src/infra/entities/system-config.entity';
import { CQMode, ToneMapping, TranscodeHWAccel, TranscodeTarget, VideoCodec } from 'src/entities/system-config.entity';
import {
AudioStreamInfo,
BitrateDistribution,

View file

@ -5,9 +5,9 @@ import { Stats } from 'node:fs';
import { constants } from 'node:fs/promises';
import { JobName } from 'src/domain/job/job.constants';
import { MetadataService, Orientation } from 'src/domain/metadata/metadata.service';
import { AssetType } from 'src/infra/entities/asset.entity';
import { ExifEntity } from 'src/infra/entities/exif.entity';
import { SystemConfigKey } from 'src/infra/entities/system-config.entity';
import { AssetType } from 'src/entities/asset.entity';
import { ExifEntity } from 'src/entities/exif.entity';
import { SystemConfigKey } from 'src/entities/system-config.entity';
import { IAlbumRepository } from 'src/interfaces/album.repository';
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository';
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository';

View file

@ -10,8 +10,8 @@ import { StorageCore } from 'src/cores/storage.core';
import { FeatureFlag, SystemConfigCore } from 'src/cores/system-config.core';
import { JOBS_ASSET_PAGINATION_SIZE, JobName, QueueName } from 'src/domain/job/job.constants';
import { IBaseJob, IEntityJob, ISidecarWriteJob } from 'src/domain/job/job.interface';
import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity';
import { ExifEntity } from 'src/infra/entities/exif.entity';
import { AssetEntity, AssetType } from 'src/entities/asset.entity';
import { ExifEntity } from 'src/entities/exif.entity';
import { ImmichLogger } from 'src/infra/logger';
import { IAlbumRepository } from 'src/interfaces/album.repository';
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository';

View file

@ -1,7 +1,7 @@
import { BadRequestException } from '@nestjs/common';
import { PartnerResponseDto } from 'src/domain/partner/partner.dto';
import { PartnerService } from 'src/domain/partner/partner.service';
import { UserAvatarColor } from 'src/infra/entities/user.entity';
import { UserAvatarColor } from 'src/entities/user.entity';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { IPartnerRepository, PartnerDirection } from 'src/interfaces/partner.repository';
import { authStub } from 'test/fixtures/auth.stub';

View file

@ -3,7 +3,7 @@ import { AccessCore, Permission } from 'src/cores/access.core';
import { AuthDto } from 'src/domain/auth/auth.dto';
import { PartnerResponseDto, UpdatePartnerDto } from 'src/domain/partner/partner.dto';
import { mapUser } from 'src/domain/user/response-dto/user-response.dto';
import { PartnerEntity } from 'src/infra/entities/partner.entity';
import { PartnerEntity } from 'src/entities/partner.entity';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { IPartnerRepository, PartnerDirection, PartnerIds } from 'src/interfaces/partner.repository';

View file

@ -2,8 +2,8 @@ import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsArray, IsNotEmpty, IsString, MaxDate, ValidateNested } from 'class-validator';
import { AuthDto } from 'src/domain/auth/auth.dto';
import { AssetFaceEntity } from 'src/infra/entities/asset-face.entity';
import { PersonEntity } from 'src/infra/entities/person.entity';
import { AssetFaceEntity } from 'src/entities/asset-face.entity';
import { PersonEntity } from 'src/entities/person.entity';
import { Optional, ValidateBoolean, ValidateDate, ValidateUUID } from 'src/validation';
export class PersonCreateDto {

View file

@ -3,8 +3,8 @@ import { BulkIdErrorReason } from 'src/domain/asset/response-dto/asset-ids-respo
import { JobName } from 'src/domain/job/job.constants';
import { PersonResponseDto, mapFaces, mapPerson } from 'src/domain/person/person.dto';
import { PersonService } from 'src/domain/person/person.service';
import { AssetFaceEntity } from 'src/infra/entities/asset-face.entity';
import { Colorspace, SystemConfigKey } from 'src/infra/entities/system-config.entity';
import { AssetFaceEntity } from 'src/entities/asset-face.entity';
import { Colorspace, SystemConfigKey } from 'src/entities/system-config.entity';
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
import { IJobRepository, JobStatus } from 'src/interfaces/job.repository';

View file

@ -24,8 +24,8 @@ import {
mapFaces,
mapPerson,
} from 'src/domain/person/person.dto';
import { PersonPathType } from 'src/infra/entities/move.entity';
import { PersonEntity } from 'src/infra/entities/person.entity';
import { PersonPathType } from 'src/entities/move.entity';
import { PersonEntity } from 'src/entities/person.entity';
import { ImmichLogger } from 'src/infra/logger';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository';

View file

@ -1,9 +1,9 @@
import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsEnum, IsInt, IsNotEmpty, IsString, Max, Min } from 'class-validator';
import { AssetOrder } from 'src/infra/entities/album.entity';
import { AssetType } from 'src/infra/entities/asset.entity';
import { GeodataPlacesEntity } from 'src/infra/entities/geodata-places.entity';
import { AssetOrder } from 'src/entities/album.entity';
import { AssetType } from 'src/entities/asset.entity';
import { GeodataPlacesEntity } from 'src/entities/geodata-places.entity';
import { Optional, ValidateBoolean, ValidateDate, ValidateUUID } from 'src/validation';
class BaseSearchDto {

View file

@ -1,7 +1,7 @@
import { mapAsset } from 'src/domain/asset/response-dto/asset-response.dto';
import { SearchDto } from 'src/domain/search/dto/search.dto';
import { SearchService } from 'src/domain/search/search.service';
import { SystemConfigKey } from 'src/infra/entities/system-config.entity';
import { SystemConfigKey } from 'src/entities/system-config.entity';
import { IAssetRepository } from 'src/interfaces/asset.repository';
import { IMachineLearningRepository } from 'src/interfaces/machine-learning.repository';
import { IMetadataRepository } from 'src/interfaces/metadata.repository';

View file

@ -14,8 +14,8 @@ import {
mapPlaces,
} from 'src/domain/search/dto/search.dto';
import { SearchResponseDto } from 'src/domain/search/response-dto/search-response.dto';
import { AssetOrder } from 'src/infra/entities/album.entity';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { AssetOrder } from 'src/entities/album.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { IAssetRepository } from 'src/interfaces/asset.repository';
import { IMachineLearningRepository } from 'src/interfaces/machine-learning.repository';
import { IMetadataRepository } from 'src/interfaces/metadata.repository';

View file

@ -1,6 +1,6 @@
import { serverVersion } from 'src/domain/domain.constant';
import { ServerInfoService } from 'src/domain/server-info/server-info.service';
import { SystemMetadataKey } from 'src/infra/entities/system-metadata.entity';
import { SystemMetadataKey } from 'src/entities/system-metadata.entity';
import { ICommunicationRepository } from 'src/interfaces/communication.repository';
import { IServerInfoRepository } from 'src/interfaces/server-info.repository';
import { IStorageRepository } from 'src/interfaces/storage.repository';

View file

@ -12,7 +12,7 @@ import {
ServerStatsResponseDto,
UsageByUserDto,
} from 'src/domain/server-info/server-info.dto';
import { SystemMetadataKey } from 'src/infra/entities/system-metadata.entity';
import { SystemMetadataKey } from 'src/entities/system-metadata.entity';
import { ImmichLogger } from 'src/infra/logger';
import { ClientEvent, ICommunicationRepository } from 'src/interfaces/communication.repository';
import { IServerInfoRepository } from 'src/interfaces/server-info.repository';

View file

@ -2,7 +2,7 @@ import { ApiProperty } from '@nestjs/swagger';
import _ from 'lodash';
import { AlbumResponseDto, mapAlbumWithoutAssets } from 'src/domain/album/album-response.dto';
import { AssetResponseDto, mapAsset } from 'src/domain/asset/response-dto/asset-response.dto';
import { SharedLinkEntity, SharedLinkType } from 'src/infra/entities/shared-link.entity';
import { SharedLinkEntity, SharedLinkType } from 'src/entities/shared-link.entity';
export class SharedLinkResponseDto {
id!: string;

View file

@ -1,6 +1,6 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsEnum, IsString } from 'class-validator';
import { SharedLinkType } from 'src/infra/entities/shared-link.entity';
import { SharedLinkType } from 'src/entities/shared-link.entity';
import { Optional, ValidateBoolean, ValidateDate, ValidateUUID } from 'src/validation';
export class SharedLinkCreateDto {

View file

@ -2,7 +2,7 @@ import { BadRequestException, ForbiddenException, UnauthorizedException } from '
import _ from 'lodash';
import { AssetIdErrorReason } from 'src/domain/asset/response-dto/asset-ids-response.dto';
import { SharedLinkService } from 'src/domain/shared-link/shared-link.service';
import { SharedLinkType } from 'src/infra/entities/shared-link.entity';
import { SharedLinkType } from 'src/entities/shared-link.entity';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository';
import { albumStub } from 'test/fixtures/album.stub';

View file

@ -9,8 +9,8 @@ import {
mapSharedLinkWithoutMetadata,
} from 'src/domain/shared-link/shared-link-response.dto';
import { SharedLinkCreateDto, SharedLinkEditDto, SharedLinkPasswordDto } from 'src/domain/shared-link/shared-link.dto';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { SharedLinkEntity, SharedLinkType } from 'src/infra/entities/shared-link.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { SharedLinkEntity, SharedLinkType } from 'src/entities/shared-link.entity';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
import { ISharedLinkRepository } from 'src/interfaces/shared-link.repository';

View file

@ -1,8 +1,8 @@
import { JobName } from 'src/domain/job/job.constants';
import { cleanModelName, getCLIPModelInfo } from 'src/domain/smart-info/smart-info.constant';
import { SmartInfoService } from 'src/domain/smart-info/smart-info.service';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { SystemConfigKey } from 'src/infra/entities/system-config.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { SystemConfigKey } from 'src/entities/system-config.entity';
import { IAssetRepository, WithoutProperty } from 'src/interfaces/asset.repository';
import { IDatabaseRepository } from 'src/interfaces/database.repository';
import { IJobRepository } from 'src/interfaces/job.repository';

View file

@ -2,8 +2,8 @@ import { when } from 'jest-when';
import { Stats } from 'node:fs';
import { SystemConfigCore, defaults } from 'src/cores/system-config.core';
import { StorageTemplateService } from 'src/domain/storage-template/storage-template.service';
import { AssetPathType } from 'src/infra/entities/move.entity';
import { SystemConfig, SystemConfigKey } from 'src/infra/entities/system-config.entity';
import { AssetPathType } from 'src/entities/move.entity';
import { SystemConfig, SystemConfigKey } from 'src/entities/system-config.entity';
import { IAlbumRepository } from 'src/interfaces/album.repository';
import { IAssetRepository } from 'src/interfaces/asset.repository';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';

View file

@ -17,9 +17,9 @@ import {
supportedWeekTokens,
supportedYearTokens,
} from 'src/domain/system-config/system-config.constants';
import { AssetEntity, AssetType } from 'src/infra/entities/asset.entity';
import { AssetPathType } from 'src/infra/entities/move.entity';
import { SystemConfig } from 'src/infra/entities/system-config.entity';
import { AssetEntity, AssetType } from 'src/entities/asset.entity';
import { AssetPathType } from 'src/entities/move.entity';
import { SystemConfig } from 'src/entities/system-config.entity';
import { ImmichLogger } from 'src/infra/logger';
import { IAlbumRepository } from 'src/interfaces/album.repository';
import { IAssetRepository } from 'src/interfaces/asset.repository';

View file

@ -8,7 +8,7 @@ import {
TranscodeHWAccel,
TranscodePolicy,
VideoCodec,
} from 'src/infra/entities/system-config.entity';
} from 'src/entities/system-config.entity';
import { ValidateBoolean } from 'src/validation';
export class SystemConfigFFmpegDto {

View file

@ -1,6 +1,6 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsEnum } from 'class-validator';
import { LogLevel } from 'src/infra/entities/system-config.entity';
import { LogLevel } from 'src/entities/system-config.entity';
import { ValidateBoolean } from 'src/validation';
export class SystemConfigLoggingDto {

View file

@ -1,7 +1,7 @@
import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsEnum, IsInt, Max, Min } from 'class-validator';
import { Colorspace } from 'src/infra/entities/system-config.entity';
import { Colorspace } from 'src/entities/system-config.entity';
export class SystemConfigThumbnailDto {
@IsInt()

View file

@ -16,7 +16,7 @@ import { SystemConfigThemeDto } from 'src/domain/system-config/dto/system-config
import { SystemConfigThumbnailDto } from 'src/domain/system-config/dto/system-config-thumbnail.dto';
import { SystemConfigTrashDto } from 'src/domain/system-config/dto/system-config-trash.dto';
import { SystemConfigUserDto } from 'src/domain/system-config/dto/system-config-user.dto';
import { SystemConfig } from 'src/infra/entities/system-config.entity';
import { SystemConfig } from 'src/entities/system-config.entity';
export class SystemConfigDto implements SystemConfig {
@Type(() => SystemConfigFFmpegDto)

View file

@ -14,7 +14,7 @@ import {
TranscodeHWAccel,
TranscodePolicy,
VideoCodec,
} from 'src/infra/entities/system-config.entity';
} from 'src/entities/system-config.entity';
import { ImmichLogger } from 'src/infra/logger';
import { ICommunicationRepository, ServerEvent } from 'src/interfaces/communication.repository';
import { ISearchRepository } from 'src/interfaces/search.repository';

View file

@ -15,7 +15,7 @@ import {
supportedWeekTokens,
supportedYearTokens,
} from 'src/domain/system-config/system-config.constants';
import { LogLevel, SystemConfig } from 'src/infra/entities/system-config.entity';
import { LogLevel, SystemConfig } from 'src/entities/system-config.entity';
import { ImmichLogger } from 'src/infra/logger';
import {
ClientEvent,

View file

@ -1,5 +1,5 @@
import { ApiProperty } from '@nestjs/swagger';
import { TagEntity, TagType } from 'src/infra/entities/tag.entity';
import { TagEntity, TagType } from 'src/entities/tag.entity';
export class TagResponseDto {
id!: string;

View file

@ -1,6 +1,6 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsEnum, IsNotEmpty, IsString } from 'class-validator';
import { TagType } from 'src/infra/entities/tag.entity';
import { TagType } from 'src/entities/tag.entity';
import { Optional } from 'src/validation';
export class CreateTagDto {

View file

@ -2,7 +2,7 @@ import { BadRequestException } from '@nestjs/common';
import { when } from 'jest-when';
import { AssetIdErrorReason } from 'src/domain/asset/response-dto/asset-ids-response.dto';
import { TagService } from 'src/domain/tag/tag.service';
import { TagType } from 'src/infra/entities/tag.entity';
import { TagType } from 'src/entities/tag.entity';
import { ITagRepository } from 'src/interfaces/tag.repository';
import { assetStub } from 'test/fixtures/asset.stub';
import { authStub } from 'test/fixtures/auth.stub';

View file

@ -1,7 +1,7 @@
import { ApiProperty } from '@nestjs/swagger';
import { Transform } from 'class-transformer';
import { IsEmail, IsEnum, IsNotEmpty, IsNumber, IsPositive, IsString, IsUUID } from 'class-validator';
import { UserAvatarColor } from 'src/infra/entities/user.entity';
import { UserAvatarColor } from 'src/entities/user.entity';
import { Optional, ValidateBoolean, toEmail, toSanitized } from 'src/validation';
export class UpdateUserDto {

View file

@ -1,6 +1,6 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsEnum } from 'class-validator';
import { UserAvatarColor, UserEntity, UserStatus } from 'src/infra/entities/user.entity';
import { UserAvatarColor, UserEntity, UserStatus } from 'src/entities/user.entity';
export const getRandomAvatarColor = (user: UserEntity): UserAvatarColor => {
const values = Object.values(UserAvatarColor);

View file

@ -9,7 +9,7 @@ import { JobName } from 'src/domain/job/job.constants';
import { UpdateUserDto } from 'src/domain/user/dto/update-user.dto';
import { mapUser } from 'src/domain/user/response-dto/user-response.dto';
import { UserService } from 'src/domain/user/user.service';
import { UserEntity, UserStatus } from 'src/infra/entities/user.entity';
import { UserEntity, UserStatus } from 'src/entities/user.entity';
import { IAlbumRepository } from 'src/interfaces/album.repository';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';
import { IJobRepository } from 'src/interfaces/job.repository';

View file

@ -15,7 +15,7 @@ import {
mapCreateProfileImageResponse,
} from 'src/domain/user/response-dto/create-profile-image-response.dto';
import { UserResponseDto, mapUser } from 'src/domain/user/response-dto/user-response.dto';
import { UserEntity, UserStatus } from 'src/infra/entities/user.entity';
import { UserEntity, UserStatus } from 'src/entities/user.entity';
import { ImmichLogger } from 'src/infra/logger';
import { IAlbumRepository } from 'src/interfaces/album.repository';
import { ICryptoRepository } from 'src/interfaces/crypto.repository';

View file

@ -1,6 +1,6 @@
import { AlbumEntity } from 'src/infra/entities/album.entity';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
import { AlbumEntity } from 'src/entities/album.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { UserEntity } from 'src/entities/user.entity';
import {
Check,
Column,

View file

@ -1,6 +1,6 @@
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { SharedLinkEntity } from 'src/infra/entities/shared-link.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { SharedLinkEntity } from 'src/entities/shared-link.entity';
import { UserEntity } from 'src/entities/user.entity';
import {
Column,
CreateDateColumn,

View file

@ -1,4 +1,4 @@
import { UserEntity } from 'src/infra/entities/user.entity';
import { UserEntity } from 'src/entities/user.entity';
import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
@Entity('api_keys')

View file

@ -1,5 +1,5 @@
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { PersonEntity } from 'src/infra/entities/person.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { PersonEntity } from 'src/entities/person.entity';
import { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn } from 'typeorm';
@Entity('asset_faces', { synchronize: false })

View file

@ -1,4 +1,4 @@
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { Column, Entity, JoinColumn, OneToOne, PrimaryColumn } from 'typeorm';
@Entity('asset_job_status')

View file

@ -1,4 +1,4 @@
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { Column, Entity, JoinColumn, OneToMany, OneToOne, PrimaryGeneratedColumn } from 'typeorm';
@Entity('asset_stack')

View file

@ -1,14 +1,14 @@
import { AlbumEntity } from 'src/infra/entities/album.entity';
import { AssetFaceEntity } from 'src/infra/entities/asset-face.entity';
import { AssetJobStatusEntity } from 'src/infra/entities/asset-job-status.entity';
import { AssetStackEntity } from 'src/infra/entities/asset-stack.entity';
import { ExifEntity } from 'src/infra/entities/exif.entity';
import { LibraryEntity } from 'src/infra/entities/library.entity';
import { SharedLinkEntity } from 'src/infra/entities/shared-link.entity';
import { SmartInfoEntity } from 'src/infra/entities/smart-info.entity';
import { SmartSearchEntity } from 'src/infra/entities/smart-search.entity';
import { TagEntity } from 'src/infra/entities/tag.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
import { AlbumEntity } from 'src/entities/album.entity';
import { AssetFaceEntity } from 'src/entities/asset-face.entity';
import { AssetJobStatusEntity } from 'src/entities/asset-job-status.entity';
import { AssetStackEntity } from 'src/entities/asset-stack.entity';
import { ExifEntity } from 'src/entities/exif.entity';
import { LibraryEntity } from 'src/entities/library.entity';
import { SharedLinkEntity } from 'src/entities/shared-link.entity';
import { SmartInfoEntity } from 'src/entities/smart-info.entity';
import { SmartSearchEntity } from 'src/entities/smart-search.entity';
import { TagEntity } from 'src/entities/tag.entity';
import { UserEntity } from 'src/entities/user.entity';
import {
Column,
CreateDateColumn,

View file

@ -1,4 +1,4 @@
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { Index, JoinColumn, OneToOne, PrimaryColumn } from 'typeorm';
import { Column } from 'typeorm/decorator/columns/Column.js';
import { Entity } from 'typeorm/decorator/entity/Entity.js';

View file

@ -0,0 +1,47 @@
import { ActivityEntity } from 'src/entities/activity.entity';
import { AlbumEntity } from 'src/entities/album.entity';
import { APIKeyEntity } from 'src/entities/api-key.entity';
import { AssetFaceEntity } from 'src/entities/asset-face.entity';
import { AssetJobStatusEntity } from 'src/entities/asset-job-status.entity';
import { AssetStackEntity } from 'src/entities/asset-stack.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { AuditEntity } from 'src/entities/audit.entity';
import { ExifEntity } from 'src/entities/exif.entity';
import { GeodataPlacesEntity } from 'src/entities/geodata-places.entity';
import { LibraryEntity } from 'src/entities/library.entity';
import { MoveEntity } from 'src/entities/move.entity';
import { PartnerEntity } from 'src/entities/partner.entity';
import { PersonEntity } from 'src/entities/person.entity';
import { SharedLinkEntity } from 'src/entities/shared-link.entity';
import { SmartInfoEntity } from 'src/entities/smart-info.entity';
import { SmartSearchEntity } from 'src/entities/smart-search.entity';
import { SystemConfigEntity } from 'src/entities/system-config.entity';
import { SystemMetadataEntity } from 'src/entities/system-metadata.entity';
import { TagEntity } from 'src/entities/tag.entity';
import { UserTokenEntity } from 'src/entities/user-token.entity';
import { UserEntity } from 'src/entities/user.entity';
export const databaseEntities = [
ActivityEntity,
AlbumEntity,
APIKeyEntity,
AssetEntity,
AssetStackEntity,
AssetFaceEntity,
AssetJobStatusEntity,
AuditEntity,
ExifEntity,
GeodataPlacesEntity,
MoveEntity,
PartnerEntity,
PersonEntity,
SharedLinkEntity,
SmartInfoEntity,
SmartSearchEntity,
SystemConfigEntity,
SystemMetadataEntity,
TagEntity,
UserEntity,
UserTokenEntity,
LibraryEntity,
];

View file

@ -1,5 +1,5 @@
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { UserEntity } from 'src/entities/user.entity';
import {
Column,
CreateDateColumn,

View file

@ -1,4 +1,4 @@
import { UserEntity } from 'src/infra/entities/user.entity';
import { UserEntity } from 'src/entities/user.entity';
import { Column, CreateDateColumn, Entity, JoinColumn, ManyToOne, PrimaryColumn, UpdateDateColumn } from 'typeorm';
@Entity('partners')

View file

@ -1,5 +1,5 @@
import { AssetFaceEntity } from 'src/infra/entities/asset-face.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
import { AssetFaceEntity } from 'src/entities/asset-face.entity';
import { UserEntity } from 'src/entities/user.entity';
import {
Check,
Column,

View file

@ -1,6 +1,6 @@
import { AlbumEntity } from 'src/infra/entities/album.entity';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
import { AlbumEntity } from 'src/entities/album.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { UserEntity } from 'src/entities/user.entity';
import {
Column,
CreateDateColumn,

View file

@ -1,4 +1,4 @@
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { Column, Entity, JoinColumn, OneToOne, PrimaryColumn } from 'typeorm';
@Entity('smart_info', { synchronize: false })

View file

@ -1,4 +1,4 @@
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { Column, Entity, Index, JoinColumn, OneToOne, PrimaryColumn } from 'typeorm';
@Entity('smart_search', { synchronize: false })

View file

@ -1,5 +1,5 @@
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { UserEntity } from 'src/entities/user.entity';
import { Column, Entity, ManyToMany, ManyToOne, PrimaryGeneratedColumn, Unique } from 'typeorm';
@Entity('tags')

View file

@ -1,4 +1,4 @@
import { UserEntity } from 'src/infra/entities/user.entity';
import { UserEntity } from 'src/entities/user.entity';
import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
@Entity('user_token')

View file

@ -1,5 +1,5 @@
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { TagEntity } from 'src/infra/entities/tag.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { TagEntity } from 'src/entities/tag.entity';
import {
Column,
CreateDateColumn,

View file

@ -1,6 +1,6 @@
import { CommandFactory } from 'nest-commander';
import { LogLevel } from 'src/entities/system-config.entity';
import { AppModule } from 'src/immich-admin/app.module';
import { LogLevel } from 'src/infra/entities/system-config.entity';
export async function bootstrap() {
process.env.LOG_LEVEL = LogLevel.WARN;

View file

@ -1,12 +1,12 @@
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { AssetEntity } from 'src/entities/asset.entity';
import { ExifEntity } from 'src/entities/exif.entity';
import { AssetSearchDto } from 'src/immich/api-v1/asset/dto/asset-search.dto';
import { CheckExistingAssetsDto } from 'src/immich/api-v1/asset/dto/check-existing-assets.dto';
import { SearchPropertiesDto } from 'src/immich/api-v1/asset/dto/search-properties.dto';
import { CuratedLocationsResponseDto } from 'src/immich/api-v1/asset/response-dto/curated-locations-response.dto';
import { CuratedObjectsResponseDto } from 'src/immich/api-v1/asset/response-dto/curated-objects-response.dto';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { ExifEntity } from 'src/infra/entities/exif.entity';
import { OptionalBetween } from 'src/infra/infra.utils';
import { In } from 'typeorm/find-options/operator/In.js';
import { Repository } from 'typeorm/repository/Repository.js';

View file

@ -1,11 +1,11 @@
import { when } from 'jest-when';
import { JobName } from 'src/domain/job/job.constants';
import { ASSET_CHECKSUM_CONSTRAINT, AssetEntity, AssetType } from 'src/entities/asset.entity';
import { ExifEntity } from 'src/entities/exif.entity';
import { IAssetRepositoryV1 } from 'src/immich/api-v1/asset/asset-repository';
import { AssetService } from 'src/immich/api-v1/asset/asset.service';
import { CreateAssetDto } from 'src/immich/api-v1/asset/dto/create-asset.dto';
import { AssetRejectReason, AssetUploadAction } from 'src/immich/api-v1/asset/response-dto/asset-check-response.dto';
import { ASSET_CHECKSUM_CONSTRAINT, AssetEntity, AssetType } from 'src/infra/entities/asset.entity';
import { ExifEntity } from 'src/infra/entities/exif.entity';
import { IAssetRepository } from 'src/interfaces/asset.repository';
import { IJobRepository } from 'src/interfaces/job.repository';
import { ILibraryRepository } from 'src/interfaces/library.repository';

View file

@ -11,6 +11,8 @@ import { AssetResponseDto, mapAsset } from 'src/domain/asset/response-dto/asset-
import { AuthDto } from 'src/domain/auth/auth.dto';
import { mimeTypes } from 'src/domain/domain.constant';
import { JobName } from 'src/domain/job/job.constants';
import { ASSET_CHECKSUM_CONSTRAINT, AssetEntity, AssetType } from 'src/entities/asset.entity';
import { LibraryType } from 'src/entities/library.entity';
import { IAssetRepositoryV1 } from 'src/immich/api-v1/asset/asset-repository';
import { AssetBulkUploadCheckDto } from 'src/immich/api-v1/asset/dto/asset-check.dto';
import { AssetSearchDto } from 'src/immich/api-v1/asset/dto/asset-search.dto';
@ -27,8 +29,6 @@ import { AssetFileUploadResponseDto } from 'src/immich/api-v1/asset/response-dto
import { CheckExistingAssetsResponseDto } from 'src/immich/api-v1/asset/response-dto/check-existing-assets-response.dto';
import { CuratedLocationsResponseDto } from 'src/immich/api-v1/asset/response-dto/curated-locations-response.dto';
import { CuratedObjectsResponseDto } from 'src/immich/api-v1/asset/response-dto/curated-objects-response.dto';
import { ASSET_CHECKSUM_CONSTRAINT, AssetEntity, AssetType } from 'src/infra/entities/asset.entity';
import { LibraryType } from 'src/infra/entities/library.entity';
import { ImmichLogger } from 'src/infra/logger';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { IAssetRepository } from 'src/interfaces/asset.repository';

View file

@ -24,12 +24,12 @@ import { TagController } from 'src/controllers/tag.controller';
import { TrashController } from 'src/controllers/trash.controller';
import { UserController } from 'src/controllers/user.controller';
import { DomainModule } from 'src/domain/domain.module';
import { AssetEntity } from 'src/entities/asset.entity';
import { ExifEntity } from 'src/entities/exif.entity';
import { AssetRepositoryV1, IAssetRepositoryV1 } from 'src/immich/api-v1/asset/asset-repository';
import { AssetController as AssetControllerV1 } from 'src/immich/api-v1/asset/asset.controller';
import { AssetService as AssetServiceV1 } from 'src/immich/api-v1/asset/asset.service';
import { AppService } from 'src/immich/app.service';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { ExifEntity } from 'src/infra/entities/exif.entity';
import { InfraModule } from 'src/infra/infra.module';
import { AuthGuard } from 'src/middleware/auth.guard';
import { ErrorInterceptor } from 'src/middleware/error.interceptor';

View file

@ -16,11 +16,11 @@ const urlOrParts = url
/* eslint unicorn/prefer-module: "off" -- We can fix this when migrating to ESM*/
export const databaseConfig: PostgresConnectionOptions = {
type: 'postgres',
entities: [__dirname + '/entities/*.entity.{js,ts}'],
synchronize: false,
migrations: [__dirname + '/migrations/*.{js,ts}'],
subscribers: [__dirname + '/subscribers/*.{js,ts}'],
entities: [__dirname + '/../entities/*.entity.{js,ts}'],
migrations: [__dirname + '/../migrations/*.{js,ts}'],
subscribers: [__dirname + '/../subscribers/*.{js,ts}'],
migrationsRun: false,
synchronize: false,
connectTimeoutMS: 10_000, // 10 seconds
parseInt8: true,
...urlOrParts,

View file

@ -1,47 +0,0 @@
import { ActivityEntity } from 'src/infra/entities/activity.entity';
import { AlbumEntity } from 'src/infra/entities/album.entity';
import { APIKeyEntity } from 'src/infra/entities/api-key.entity';
import { AssetFaceEntity } from 'src/infra/entities/asset-face.entity';
import { AssetJobStatusEntity } from 'src/infra/entities/asset-job-status.entity';
import { AssetStackEntity } from 'src/infra/entities/asset-stack.entity';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { AuditEntity } from 'src/infra/entities/audit.entity';
import { ExifEntity } from 'src/infra/entities/exif.entity';
import { GeodataPlacesEntity } from 'src/infra/entities/geodata-places.entity';
import { LibraryEntity } from 'src/infra/entities/library.entity';
import { MoveEntity } from 'src/infra/entities/move.entity';
import { PartnerEntity } from 'src/infra/entities/partner.entity';
import { PersonEntity } from 'src/infra/entities/person.entity';
import { SharedLinkEntity } from 'src/infra/entities/shared-link.entity';
import { SmartInfoEntity } from 'src/infra/entities/smart-info.entity';
import { SmartSearchEntity } from 'src/infra/entities/smart-search.entity';
import { SystemConfigEntity } from 'src/infra/entities/system-config.entity';
import { SystemMetadataEntity } from 'src/infra/entities/system-metadata.entity';
import { TagEntity } from 'src/infra/entities/tag.entity';
import { UserTokenEntity } from 'src/infra/entities/user-token.entity';
import { UserEntity } from 'src/infra/entities/user.entity';
export const databaseEntities = [
ActivityEntity,
AlbumEntity,
APIKeyEntity,
AssetEntity,
AssetStackEntity,
AssetFaceEntity,
AssetJobStatusEntity,
AuditEntity,
ExifEntity,
GeodataPlacesEntity,
MoveEntity,
PartnerEntity,
PersonEntity,
SharedLinkEntity,
SmartInfoEntity,
SmartSearchEntity,
SystemConfigEntity,
SystemMetadataEntity,
TagEntity,
UserEntity,
UserTokenEntity,
LibraryEntity,
];

View file

@ -6,36 +6,9 @@ import { ScheduleModule, SchedulerRegistry } from '@nestjs/schedule';
import { TypeOrmModule } from '@nestjs/typeorm';
import { OpenTelemetryModule } from 'nestjs-otel';
import { bullConfig, bullQueues, immichAppConfig } from 'src/config';
import { databaseEntities } from 'src/entities';
import { databaseConfig } from 'src/infra/database.config';
import { databaseEntities } from 'src/infra/entities';
import { otelConfig } from 'src/infra/instrumentation';
import { AccessRepository } from 'src/infra/repositories/access.repository';
import { ActivityRepository } from 'src/infra/repositories/activity.repository';
import { AlbumRepository } from 'src/infra/repositories/album.repository';
import { ApiKeyRepository } from 'src/infra/repositories/api-key.repository';
import { AssetStackRepository } from 'src/infra/repositories/asset-stack.repository';
import { AssetRepository } from 'src/infra/repositories/asset.repository';
import { AuditRepository } from 'src/infra/repositories/audit.repository';
import { CommunicationRepository } from 'src/infra/repositories/communication.repository';
import { CryptoRepository } from 'src/infra/repositories/crypto.repository';
import { DatabaseRepository } from 'src/infra/repositories/database.repository';
import { FilesystemProvider } from 'src/infra/repositories/filesystem.provider';
import { JobRepository } from 'src/infra/repositories/job.repository';
import { LibraryRepository } from 'src/infra/repositories/library.repository';
import { MachineLearningRepository } from 'src/infra/repositories/machine-learning.repository';
import { MediaRepository } from 'src/infra/repositories/media.repository';
import { MetadataRepository } from 'src/infra/repositories/metadata.repository';
import { MoveRepository } from 'src/infra/repositories/move.repository';
import { PartnerRepository } from 'src/infra/repositories/partner.repository';
import { PersonRepository } from 'src/infra/repositories/person.repository';
import { SearchRepository } from 'src/infra/repositories/search.repository';
import { ServerInfoRepository } from 'src/infra/repositories/server-info.repository';
import { SharedLinkRepository } from 'src/infra/repositories/shared-link.repository';
import { SystemConfigRepository } from 'src/infra/repositories/system-config.repository';
import { SystemMetadataRepository } from 'src/infra/repositories/system-metadata.repository';
import { TagRepository } from 'src/infra/repositories/tag.repository';
import { UserTokenRepository } from 'src/infra/repositories/user-token.repository';
import { UserRepository } from 'src/infra/repositories/user.repository';
import { IAccessRepository } from 'src/interfaces/access.repository';
import { IActivityRepository } from 'src/interfaces/activity.repository';
import { IAlbumRepository } from 'src/interfaces/album.repository';
@ -63,6 +36,33 @@ import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.reposi
import { ITagRepository } from 'src/interfaces/tag.repository';
import { IUserTokenRepository } from 'src/interfaces/user-token.repository';
import { IUserRepository } from 'src/interfaces/user.repository';
import { AccessRepository } from 'src/repositories/access.repository';
import { ActivityRepository } from 'src/repositories/activity.repository';
import { AlbumRepository } from 'src/repositories/album.repository';
import { ApiKeyRepository } from 'src/repositories/api-key.repository';
import { AssetStackRepository } from 'src/repositories/asset-stack.repository';
import { AssetRepository } from 'src/repositories/asset.repository';
import { AuditRepository } from 'src/repositories/audit.repository';
import { CommunicationRepository } from 'src/repositories/communication.repository';
import { CryptoRepository } from 'src/repositories/crypto.repository';
import { DatabaseRepository } from 'src/repositories/database.repository';
import { FilesystemProvider } from 'src/repositories/filesystem.provider';
import { JobRepository } from 'src/repositories/job.repository';
import { LibraryRepository } from 'src/repositories/library.repository';
import { MachineLearningRepository } from 'src/repositories/machine-learning.repository';
import { MediaRepository } from 'src/repositories/media.repository';
import { MetadataRepository } from 'src/repositories/metadata.repository';
import { MoveRepository } from 'src/repositories/move.repository';
import { PartnerRepository } from 'src/repositories/partner.repository';
import { PersonRepository } from 'src/repositories/person.repository';
import { SearchRepository } from 'src/repositories/search.repository';
import { ServerInfoRepository } from 'src/repositories/server-info.repository';
import { SharedLinkRepository } from 'src/repositories/shared-link.repository';
import { SystemConfigRepository } from 'src/repositories/system-config.repository';
import { SystemMetadataRepository } from 'src/repositories/system-metadata.repository';
import { TagRepository } from 'src/repositories/tag.repository';
import { UserTokenRepository } from 'src/repositories/user-token.repository';
import { UserRepository } from 'src/repositories/user.repository';
const providers: Provider[] = [
{ provide: IActivityRepository, useClass: ActivityRepository },

View file

@ -1,5 +1,5 @@
import _ from 'lodash';
import { AssetEntity } from 'src/infra/entities/asset.entity';
import { AssetEntity } from 'src/entities/asset.entity';
import { AssetSearchBuilderOptions } from 'src/interfaces/search.repository';
import { Paginated, PaginatedBuilderOptions, PaginationMode, PaginationOptions, PaginationResult } from 'src/utils';
import {

View file

@ -1,6 +1,6 @@
import { ConsoleLogger } from '@nestjs/common';
import { isLogLevelEnabled } from '@nestjs/common/services/utils/is-log-level-enabled.util';
import { LogLevel } from 'src/infra/entities/system-config.entity';
import { LogLevel } from 'src/entities/system-config.entity';
const LOG_LEVELS = [LogLevel.VERBOSE, LogLevel.DEBUG, LogLevel.LOG, LogLevel.WARN, LogLevel.ERROR, LogLevel.FATAL];

Some files were not shown because too many files have changed in this diff Show more