diff --git a/.hygen/seeds/create-document/module.ejs.t b/.hygen/seeds/create-document/module.ejs.t index 26bdd0b66..2e02a9240 100644 --- a/.hygen/seeds/create-document/module.ejs.t +++ b/.hygen/seeds/create-document/module.ejs.t @@ -3,7 +3,7 @@ to: src/database/seeds/document/<%= h.inflection.transform(name, ['underscore', --- import { Module } from '@nestjs/common'; import { MongooseModule } from '@nestjs/mongoose'; -import { <%= name %>Schema, <%= name %>SchemaClass } from 'src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/document/entities/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.schema'; +import { <%= name %>Schema, <%= name %>SchemaClass } from '../../../../<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/document/entities/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.schema'; import { <%= name %>SeedService } from './<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>-seed.service'; @Module({ diff --git a/.hygen/seeds/create-document/service.ejs.t b/.hygen/seeds/create-document/service.ejs.t index 1e1b99180..bdd080e60 100644 --- a/.hygen/seeds/create-document/service.ejs.t +++ b/.hygen/seeds/create-document/service.ejs.t @@ -4,7 +4,7 @@ to: src/database/seeds/document/<%= h.inflection.transform(name, ['underscore', import { Injectable } from '@nestjs/common'; import { InjectModel } from '@nestjs/mongoose'; import { Model } from 'mongoose'; -import { <%= name %>SchemaClass } from 'src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/document/entities/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.schema'; +import { <%= name %>SchemaClass } from '../../../../<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/document/entities/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.schema'; @Injectable() export class <%= name %>SeedService { diff --git a/.hygen/seeds/create-relational/module.ejs.t b/.hygen/seeds/create-relational/module.ejs.t index 4ada49a04..20098928f 100644 --- a/.hygen/seeds/create-relational/module.ejs.t +++ b/.hygen/seeds/create-relational/module.ejs.t @@ -3,7 +3,7 @@ to: src/database/seeds/relational/<%= h.inflection.transform(name, ['underscore' --- import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; -import { <%= name %>Entity } from 'src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/relational/entities/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.entity'; +import { <%= name %>Entity } from '../../../../<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/relational/entities/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.entity'; import { <%= name %>SeedService } from './<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>-seed.service'; @Module({ diff --git a/.hygen/seeds/create-relational/service.ejs.t b/.hygen/seeds/create-relational/service.ejs.t index a2319d003..9243c135e 100644 --- a/.hygen/seeds/create-relational/service.ejs.t +++ b/.hygen/seeds/create-relational/service.ejs.t @@ -3,7 +3,7 @@ to: src/database/seeds/relational/<%= h.inflection.transform(name, ['underscore' --- import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { <%= name %>Entity } from 'src/<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/relational/entities/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.entity'; +import { <%= name %>Entity } from '../../../../<%= h.inflection.transform(name, ['pluralize', 'underscore', 'dasherize']) %>/infrastructure/persistence/relational/entities/<%= h.inflection.transform(name, ['underscore', 'dasherize']) %>.entity'; import { Repository } from 'typeorm'; @Injectable() diff --git a/.vscode/settings.json b/.vscode/settings.json index 89c878e5d..a1d2b9477 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,5 @@ { "markdown.extension.toc.levels": "2..6", - "markdown.extension.orderedList.autoRenumber": false + "markdown.extension.orderedList.autoRenumber": false, + "typescript.preferences.importModuleSpecifier": "relative" } diff --git a/docs/database.md b/docs/database.md index f888811df..35878aba8 100644 --- a/docs/database.md +++ b/docs/database.md @@ -36,7 +36,7 @@ // /src/posts/infrastructure/persistence/relational/entities/post.entity.ts import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; - import { EntityRelationalHelper } from 'src/utils/relational-entity-helper'; + import { EntityRelationalHelper } from '../../../../../utils/relational-entity-helper'; @Entity() export class Post extends EntityRelationalHelper { @@ -140,28 +140,28 @@ npm run seed:run:relational npm i --save-dev @faker-js/faker ``` -1. Create `src/database/seeds/user/user.factory.ts`: +1. Create `src/database/seeds/relational/user/user.factory.ts`: ```ts import { faker } from '@faker-js/faker'; - import { RoleEnum } from 'src/roles/roles.enum'; - import { StatusEnum } from 'src/statuses/statuses.enum'; + import { RoleEnum } from '../../../../roles/roles.enum'; + import { StatusEnum } from '../../../../statuses/statuses.enum'; import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; - import { Role } from 'src/roles/infrastructure/persistence/relational/entities/role.entity'; - import { Status } from 'src/statuses/infrastructure/persistence/relational/entities/status.entity'; - import { User } from 'src/users/infrastructure/persistence/relational/entities/user.entity'; + import { RoleEntity } from '../../../../roles/infrastructure/persistence/relational/entities/role.entity'; + import { UserEntity } from '../../../../users/infrastructure/persistence/relational/entities/user.entity'; + import { StatusEntity } from '../../../../statuses/infrastructure/persistence/relational/entities/status.entity'; @Injectable() export class UserFactory { constructor( - @InjectRepository(User) - private repositoryUser: Repository, - @InjectRepository(Role) - private repositoryRole: Repository, - @InjectRepository(Status) - private repositoryStatus: Repository, + @InjectRepository(UserEntity) + private repositoryUser: Repository, + @InjectRepository(RoleEntity) + private repositoryRole: Repository, + @InjectRepository(StatusEntity) + private repositoryStatus: Repository, ) {} createRandomUser() { @@ -186,7 +186,7 @@ npm run seed:run:relational } ``` -1. Make changes in `src/database/seeds/user/user-seed.service.ts`: +1. Make changes in `src/database/seeds/relational/user/user-seed.service.ts`: ```ts // Some code here... @@ -212,19 +212,21 @@ npm run seed:run:relational } ``` -1. Make changes in `src/database/seeds/user/user-seed.module.ts`: +1. Make changes in `src/database/seeds/relational/user/user-seed.module.ts`: ```ts import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; - import { User } from 'src/users/entities/user.entity'; + import { UserSeedService } from './user-seed.service'; import { UserFactory } from './user.factory'; - import { Role } from 'src/roles/infrastructure/persistence/relational/entities/role.entity'; - import { Status } from 'src/statuses/infrastructure/persistence/relational/entities/status.entity'; + + import { UserEntity } from '../../../../users/infrastructure/persistence/relational/entities/user.entity'; + import { RoleEntity } from '../../../../roles/infrastructure/persistence/relational/entities/role.entity'; + import { StatusEntity } from '../../../../statuses/infrastructure/persistence/relational/entities/status.entity'; @Module({ - imports: [TypeOrmModule.forFeature([User, Role, Status])], + imports: [TypeOrmModule.forFeature([UserEntity, Role, Status])], providers: [UserSeedService, UserFactory], exports: [UserSeedService, UserFactory], }) diff --git a/src/auth-apple/auth-apple.service.ts b/src/auth-apple/auth-apple.service.ts index a6ce612b4..0e98508a5 100644 --- a/src/auth-apple/auth-apple.service.ts +++ b/src/auth-apple/auth-apple.service.ts @@ -3,7 +3,7 @@ import appleSigninAuth from 'apple-signin-auth'; import { ConfigService } from '@nestjs/config'; import { SocialInterface } from '../social/interfaces/social.interface'; import { AuthAppleLoginDto } from './dto/auth-apple-login.dto'; -import { AllConfigType } from 'src/config/config.type'; +import { AllConfigType } from '../config/config.type'; @Injectable() export class AuthAppleService { diff --git a/src/auth-apple/config/apple.config.ts b/src/auth-apple/config/apple.config.ts index 2c8dead9d..bdae3867d 100644 --- a/src/auth-apple/config/apple.config.ts +++ b/src/auth-apple/config/apple.config.ts @@ -1,7 +1,8 @@ import { registerAs } from '@nestjs/config'; -import { AppleConfig } from 'src/auth-apple/config/apple-config.type'; + import { IsJSON, IsOptional } from 'class-validator'; import validateConfig from '../../utils/validate-config'; +import { AppleConfig } from './apple-config.type'; class EnvironmentVariablesValidator { @IsJSON() diff --git a/src/auth-facebook/auth-facebook.service.ts b/src/auth-facebook/auth-facebook.service.ts index 0fc9edacb..a2dd867f5 100644 --- a/src/auth-facebook/auth-facebook.service.ts +++ b/src/auth-facebook/auth-facebook.service.ts @@ -4,7 +4,7 @@ import { ConfigService } from '@nestjs/config'; import { SocialInterface } from '../social/interfaces/social.interface'; import { FacebookInterface } from './interfaces/facebook.interface'; import { AuthFacebookLoginDto } from './dto/auth-facebook-login.dto'; -import { AllConfigType } from 'src/config/config.type'; +import { AllConfigType } from '../config/config.type'; @Injectable() export class AuthFacebookService { diff --git a/src/auth-facebook/config/facebook.config.ts b/src/auth-facebook/config/facebook.config.ts index 22af1a151..5bfaf460f 100644 --- a/src/auth-facebook/config/facebook.config.ts +++ b/src/auth-facebook/config/facebook.config.ts @@ -1,7 +1,8 @@ import { registerAs } from '@nestjs/config'; -import { FacebookConfig } from 'src/auth-facebook/config/facebook-config.type'; + import { IsOptional, IsString } from 'class-validator'; import validateConfig from '../../utils/validate-config'; +import { FacebookConfig } from './facebook-config.type'; class EnvironmentVariablesValidator { @IsString() diff --git a/src/auth-google/auth-google.service.ts b/src/auth-google/auth-google.service.ts index cdd4fd867..e09bdd202 100644 --- a/src/auth-google/auth-google.service.ts +++ b/src/auth-google/auth-google.service.ts @@ -3,7 +3,7 @@ import { ConfigService } from '@nestjs/config'; import { OAuth2Client } from 'google-auth-library'; import { SocialInterface } from '../social/interfaces/social.interface'; import { AuthGoogleLoginDto } from './dto/auth-google-login.dto'; -import { AllConfigType } from 'src/config/config.type'; +import { AllConfigType } from '../config/config.type'; @Injectable() export class AuthGoogleService { diff --git a/src/auth-google/config/google.config.ts b/src/auth-google/config/google.config.ts index 9e4b403c3..dc58e3b25 100644 --- a/src/auth-google/config/google.config.ts +++ b/src/auth-google/config/google.config.ts @@ -1,7 +1,8 @@ import { registerAs } from '@nestjs/config'; -import { GoogleConfig } from 'src/auth-google/config/google-config.type'; + import { IsOptional, IsString } from 'class-validator'; import validateConfig from '../../utils/validate-config'; +import { GoogleConfig } from './google-config.type'; class EnvironmentVariablesValidator { @IsString() diff --git a/src/auth-twitter/auth-twitter.service.ts b/src/auth-twitter/auth-twitter.service.ts index 142f07ec1..3a8fe79a2 100644 --- a/src/auth-twitter/auth-twitter.service.ts +++ b/src/auth-twitter/auth-twitter.service.ts @@ -3,7 +3,7 @@ import { ConfigService } from '@nestjs/config'; import Twitter from 'twitter'; import { SocialInterface } from '../social/interfaces/social.interface'; import { AuthTwitterLoginDto } from './dto/auth-twitter-login.dto'; -import { AllConfigType } from 'src/config/config.type'; +import { AllConfigType } from '../config/config.type'; @Injectable() export class AuthTwitterService { diff --git a/src/auth/auth.controller.ts b/src/auth/auth.controller.ts index 65ab9e549..b05309812 100644 --- a/src/auth/auth.controller.ts +++ b/src/auth/auth.controller.ts @@ -22,7 +22,7 @@ import { AuthGuard } from '@nestjs/passport'; import { AuthRegisterLoginDto } from './dto/auth-register-login.dto'; import { LoginResponseType } from './types/login-response.type'; import { NullableType } from '../utils/types/nullable.type'; -import { User } from 'src/users/domain/user'; +import { User } from '../users/domain/user'; @ApiTags('Auth') @Controller({ diff --git a/src/auth/auth.module.ts b/src/auth/auth.module.ts index 8fd15f49e..ac7410e57 100644 --- a/src/auth/auth.module.ts +++ b/src/auth/auth.module.ts @@ -5,10 +5,10 @@ import { PassportModule } from '@nestjs/passport'; import { JwtModule } from '@nestjs/jwt'; import { JwtStrategy } from './strategies/jwt.strategy'; import { AnonymousStrategy } from './strategies/anonymous.strategy'; -import { UsersModule } from 'src/users/users.module'; -import { MailModule } from 'src/mail/mail.module'; -import { SessionModule } from 'src/session/session.module'; import { JwtRefreshStrategy } from './strategies/jwt-refresh.strategy'; +import { MailModule } from '../mail/mail.module'; +import { SessionModule } from '../session/session.module'; +import { UsersModule } from '../users/users.module'; @Module({ imports: [ diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts index c58a2f4c7..b6aa79090 100644 --- a/src/auth/auth.service.ts +++ b/src/auth/auth.service.ts @@ -11,22 +11,22 @@ import { JwtService } from '@nestjs/jwt'; import bcrypt from 'bcryptjs'; import { AuthEmailLoginDto } from './dto/auth-email-login.dto'; import { AuthUpdateDto } from './dto/auth-update.dto'; -import { RoleEnum } from 'src/roles/roles.enum'; -import { StatusEnum } from 'src/statuses/statuses.enum'; import { AuthProvidersEnum } from './auth-providers.enum'; import { SocialInterface } from '../social/interfaces/social.interface'; import { AuthRegisterLoginDto } from './dto/auth-register-login.dto'; -import { MailService } from 'src/mail/mail.service'; import { NullableType } from '../utils/types/nullable.type'; import { LoginResponseType } from './types/login-response.type'; import { ConfigService } from '@nestjs/config'; -import { AllConfigType } from 'src/config/config.type'; import { JwtRefreshPayloadType } from './strategies/types/jwt-refresh-payload.type'; import { JwtPayloadType } from './strategies/types/jwt-payload.type'; -import { User } from 'src/users/domain/user'; -import { Session } from 'src/session/domain/session'; -import { UsersService } from 'src/users/users.service'; -import { SessionService } from 'src/session/session.service'; +import { UsersService } from '../users/users.service'; +import { AllConfigType } from '../config/config.type'; +import { MailService } from '../mail/mail.service'; +import { RoleEnum } from '../roles/roles.enum'; +import { Session } from '../session/domain/session'; +import { SessionService } from '../session/session.service'; +import { StatusEnum } from '../statuses/statuses.enum'; +import { User } from '../users/domain/user'; @Injectable() export class AuthService { diff --git a/src/auth/config/auth.config.ts b/src/auth/config/auth.config.ts index ce3f70e9c..c5c079967 100644 --- a/src/auth/config/auth.config.ts +++ b/src/auth/config/auth.config.ts @@ -1,7 +1,8 @@ import { registerAs } from '@nestjs/config'; -import { AuthConfig } from 'src/auth/config/auth-config.type'; + import { IsString } from 'class-validator'; import validateConfig from '../../utils/validate-config'; +import { AuthConfig } from './auth-config.type'; class EnvironmentVariablesValidator { @IsString() diff --git a/src/auth/dto/auth-update.dto.ts b/src/auth/dto/auth-update.dto.ts index d869faf85..315addb1f 100644 --- a/src/auth/dto/auth-update.dto.ts +++ b/src/auth/dto/auth-update.dto.ts @@ -1,6 +1,6 @@ import { ApiPropertyOptional } from '@nestjs/swagger'; import { IsNotEmpty, IsOptional, MinLength } from 'class-validator'; -import { FileDto } from 'src/files/dto/file.dto'; +import { FileDto } from '../../files/dto/file.dto'; export class AuthUpdateDto { @ApiPropertyOptional({ type: () => FileDto }) diff --git a/src/auth/strategies/jwt-refresh.strategy.ts b/src/auth/strategies/jwt-refresh.strategy.ts index adffd5e64..df8ab6144 100644 --- a/src/auth/strategies/jwt-refresh.strategy.ts +++ b/src/auth/strategies/jwt-refresh.strategy.ts @@ -4,7 +4,7 @@ import { PassportStrategy } from '@nestjs/passport'; import { ConfigService } from '@nestjs/config'; import { JwtRefreshPayloadType } from './types/jwt-refresh-payload.type'; import { OrNeverType } from '../../utils/types/or-never.type'; -import { AllConfigType } from 'src/config/config.type'; +import { AllConfigType } from '../../config/config.type'; @Injectable() export class JwtRefreshStrategy extends PassportStrategy( diff --git a/src/auth/strategies/jwt.strategy.ts b/src/auth/strategies/jwt.strategy.ts index 7fb85c651..2d66ac123 100644 --- a/src/auth/strategies/jwt.strategy.ts +++ b/src/auth/strategies/jwt.strategy.ts @@ -3,8 +3,8 @@ import { Injectable, UnauthorizedException } from '@nestjs/common'; import { PassportStrategy } from '@nestjs/passport'; import { ConfigService } from '@nestjs/config'; import { OrNeverType } from '../../utils/types/or-never.type'; -import { AllConfigType } from 'src/config/config.type'; import { JwtPayloadType } from './types/jwt-payload.type'; +import { AllConfigType } from '../../config/config.type'; @Injectable() export class JwtStrategy extends PassportStrategy(Strategy, 'jwt') { diff --git a/src/auth/strategies/types/jwt-payload.type.ts b/src/auth/strategies/types/jwt-payload.type.ts index 9daeee059..6cf5ef366 100644 --- a/src/auth/strategies/types/jwt-payload.type.ts +++ b/src/auth/strategies/types/jwt-payload.type.ts @@ -1,5 +1,5 @@ -import { Session } from 'src/session/domain/session'; -import { User } from 'src/users/domain/user'; +import { Session } from '../../../session/domain/session'; +import { User } from '../../../users/domain/user'; export type JwtPayloadType = Pick & { sessionId: Session['id']; diff --git a/src/auth/strategies/types/jwt-refresh-payload.type.ts b/src/auth/strategies/types/jwt-refresh-payload.type.ts index 0db55f87e..c05b5a8f9 100644 --- a/src/auth/strategies/types/jwt-refresh-payload.type.ts +++ b/src/auth/strategies/types/jwt-refresh-payload.type.ts @@ -1,4 +1,4 @@ -import { Session } from 'src/session/domain/session'; +import { Session } from '../../../session/domain/session'; export type JwtRefreshPayloadType = { sessionId: Session['id']; diff --git a/src/auth/types/login-response.type.ts b/src/auth/types/login-response.type.ts index 8cc4ec08e..061ee9493 100644 --- a/src/auth/types/login-response.type.ts +++ b/src/auth/types/login-response.type.ts @@ -1,4 +1,4 @@ -import { User } from 'src/users/domain/user'; +import { User } from '../../users/domain/user'; export type LoginResponseType = Readonly<{ token: string; diff --git a/src/database/config/database.config.ts b/src/database/config/database.config.ts index 76b3a9d06..e9cf5499f 100644 --- a/src/database/config/database.config.ts +++ b/src/database/config/database.config.ts @@ -1,5 +1,5 @@ import { registerAs } from '@nestjs/config'; -import { DatabaseConfig } from 'src/database/config/database-config.type'; + import { IsOptional, IsInt, @@ -10,6 +10,7 @@ import { IsBoolean, } from 'class-validator'; import validateConfig from '../../utils/validate-config'; +import { DatabaseConfig } from './database-config.type'; class EnvironmentVariablesValidator { @ValidateIf((envValues) => envValues.DATABASE_URL) diff --git a/src/database/data-source.ts b/src/database/data-source.ts index e7a922cbc..77b5eca69 100644 --- a/src/database/data-source.ts +++ b/src/database/data-source.ts @@ -19,7 +19,7 @@ export const AppDataSource = new DataSource({ migrations: [__dirname + '/migrations/**/*{.ts,.js}'], cli: { entitiesDir: 'src', - migrationsDir: 'src/database/migrations', + subscribersDir: 'subscriber', }, extra: { diff --git a/src/database/mongoose-config.service.ts b/src/database/mongoose-config.service.ts index 791912e13..66d15b66b 100644 --- a/src/database/mongoose-config.service.ts +++ b/src/database/mongoose-config.service.ts @@ -4,7 +4,7 @@ import { MongooseModuleOptions, MongooseOptionsFactory, } from '@nestjs/mongoose'; -import { AllConfigType } from 'src/config/config.type'; +import { AllConfigType } from '../config/config.type'; @Injectable() export class MongooseConfigService implements MongooseOptionsFactory { diff --git a/src/database/seeds/document/seed.module.ts b/src/database/seeds/document/seed.module.ts index 9355332b3..6d24061e4 100644 --- a/src/database/seeds/document/seed.module.ts +++ b/src/database/seeds/document/seed.module.ts @@ -1,10 +1,12 @@ import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; -import appConfig from 'src/config/app.config'; -import databaseConfig from 'src/database/config/database.config'; + import { MongooseModule } from '@nestjs/mongoose'; -import { MongooseConfigService } from 'src/database/mongoose-config.service'; + import { UserSeedModule } from './user/user-seed.module'; +import appConfig from '../../../config/app.config'; +import databaseConfig from '../../config/database.config'; +import { MongooseConfigService } from '../../mongoose-config.service'; @Module({ imports: [ diff --git a/src/database/seeds/document/user/user-seed.module.ts b/src/database/seeds/document/user/user-seed.module.ts index 5c09844ce..de629e839 100644 --- a/src/database/seeds/document/user/user-seed.module.ts +++ b/src/database/seeds/document/user/user-seed.module.ts @@ -1,10 +1,10 @@ import { Module } from '@nestjs/common'; import { MongooseModule } from '@nestjs/mongoose'; +import { UserSeedService } from './user-seed.service'; import { - UserSchema, UserSchemaClass, -} from 'src/users/infrastructure/persistence/document/entities/user.schema'; -import { UserSeedService } from './user-seed.service'; + UserSchema, +} from '../../../../users/infrastructure/persistence/document/entities/user.schema'; @Module({ imports: [ diff --git a/src/database/seeds/document/user/user-seed.service.ts b/src/database/seeds/document/user/user-seed.service.ts index 6d5dbf8c7..d7d0e6a92 100644 --- a/src/database/seeds/document/user/user-seed.service.ts +++ b/src/database/seeds/document/user/user-seed.service.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { InjectModel } from '@nestjs/mongoose'; import bcrypt from 'bcryptjs'; import { Model } from 'mongoose'; -import { RoleEnum } from 'src/roles/roles.enum'; -import { StatusEnum } from 'src/statuses/statuses.enum'; -import { UserSchemaClass } from 'src/users/infrastructure/persistence/document/entities/user.schema'; +import { RoleEnum } from '../../../../roles/roles.enum'; +import { StatusEnum } from '../../../../statuses/statuses.enum'; +import { UserSchemaClass } from '../../../../users/infrastructure/persistence/document/entities/user.schema'; @Injectable() export class UserSeedService { diff --git a/src/database/seeds/relational/role/role-seed.module.ts b/src/database/seeds/relational/role/role-seed.module.ts index 9ae815d2c..977275893 100644 --- a/src/database/seeds/relational/role/role-seed.module.ts +++ b/src/database/seeds/relational/role/role-seed.module.ts @@ -1,7 +1,8 @@ import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; -import { RoleEntity } from 'src/roles/infrastructure/persistence/relational/entities/role.entity'; + import { RoleSeedService } from './role-seed.service'; +import { RoleEntity } from '../../../../roles/infrastructure/persistence/relational/entities/role.entity'; @Module({ imports: [TypeOrmModule.forFeature([RoleEntity])], diff --git a/src/database/seeds/relational/role/role-seed.service.ts b/src/database/seeds/relational/role/role-seed.service.ts index a64cdde7f..ff6b25669 100644 --- a/src/database/seeds/relational/role/role-seed.service.ts +++ b/src/database/seeds/relational/role/role-seed.service.ts @@ -1,8 +1,8 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { RoleEntity } from 'src/roles/infrastructure/persistence/relational/entities/role.entity'; -import { RoleEnum } from 'src/roles/roles.enum'; import { Repository } from 'typeorm'; +import { RoleEntity } from '../../../../roles/infrastructure/persistence/relational/entities/role.entity'; +import { RoleEnum } from '../../../../roles/roles.enum'; @Injectable() export class RoleSeedService { diff --git a/src/database/seeds/relational/seed.module.ts b/src/database/seeds/relational/seed.module.ts index 346dae228..3951c70dc 100644 --- a/src/database/seeds/relational/seed.module.ts +++ b/src/database/seeds/relational/seed.module.ts @@ -1,13 +1,14 @@ import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { TypeOrmModule } from '@nestjs/typeorm'; -import appConfig from 'src/config/app.config'; -import databaseConfig from 'src/database/config/database.config'; + import { DataSource, DataSourceOptions } from 'typeorm'; import { TypeOrmConfigService } from '../../typeorm-config.service'; import { RoleSeedModule } from './role/role-seed.module'; import { StatusSeedModule } from './status/status-seed.module'; import { UserSeedModule } from './user/user-seed.module'; +import databaseConfig from '../../config/database.config'; +import appConfig from '../../../config/app.config'; @Module({ imports: [ diff --git a/src/database/seeds/relational/status/status-seed.module.ts b/src/database/seeds/relational/status/status-seed.module.ts index ddfb55a90..46b13a86b 100644 --- a/src/database/seeds/relational/status/status-seed.module.ts +++ b/src/database/seeds/relational/status/status-seed.module.ts @@ -1,7 +1,7 @@ import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { StatusSeedService } from './status-seed.service'; -import { StatusEntity } from 'src/statuses/infrastructure/persistence/relational/entities/status.entity'; +import { StatusEntity } from '../../../../statuses/infrastructure/persistence/relational/entities/status.entity'; @Module({ imports: [TypeOrmModule.forFeature([StatusEntity])], diff --git a/src/database/seeds/relational/status/status-seed.service.ts b/src/database/seeds/relational/status/status-seed.service.ts index 2e2868b8b..83f948d62 100644 --- a/src/database/seeds/relational/status/status-seed.service.ts +++ b/src/database/seeds/relational/status/status-seed.service.ts @@ -1,8 +1,8 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { StatusEntity } from 'src/statuses/infrastructure/persistence/relational/entities/status.entity'; -import { StatusEnum } from 'src/statuses/statuses.enum'; import { Repository } from 'typeorm'; +import { StatusEntity } from '../../../../statuses/infrastructure/persistence/relational/entities/status.entity'; +import { StatusEnum } from '../../../../statuses/statuses.enum'; @Injectable() export class StatusSeedService { diff --git a/src/database/seeds/relational/user/user-seed.module.ts b/src/database/seeds/relational/user/user-seed.module.ts index 4f9666ab9..d3d7b1129 100644 --- a/src/database/seeds/relational/user/user-seed.module.ts +++ b/src/database/seeds/relational/user/user-seed.module.ts @@ -1,7 +1,8 @@ import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; -import { UserEntity } from 'src/users/infrastructure/persistence/relational/entities/user.entity'; + import { UserSeedService } from './user-seed.service'; +import { UserEntity } from '../../../../users/infrastructure/persistence/relational/entities/user.entity'; @Module({ imports: [TypeOrmModule.forFeature([UserEntity])], diff --git a/src/database/seeds/relational/user/user-seed.service.ts b/src/database/seeds/relational/user/user-seed.service.ts index 4436bf822..7f6bf65c0 100644 --- a/src/database/seeds/relational/user/user-seed.service.ts +++ b/src/database/seeds/relational/user/user-seed.service.ts @@ -1,10 +1,11 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { StatusEnum } from 'src/statuses/statuses.enum'; + import { Repository } from 'typeorm'; import bcrypt from 'bcryptjs'; -import { UserEntity } from 'src/users/infrastructure/persistence/relational/entities/user.entity'; -import { RoleEnum } from 'src/roles/roles.enum'; +import { RoleEnum } from '../../../../roles/roles.enum'; +import { StatusEnum } from '../../../../statuses/statuses.enum'; +import { UserEntity } from '../../../../users/infrastructure/persistence/relational/entities/user.entity'; @Injectable() export class UserSeedService { diff --git a/src/database/typeorm-config.service.ts b/src/database/typeorm-config.service.ts index eee9d9457..45c79bc12 100644 --- a/src/database/typeorm-config.service.ts +++ b/src/database/typeorm-config.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { TypeOrmModuleOptions, TypeOrmOptionsFactory } from '@nestjs/typeorm'; -import { AllConfigType } from 'src/config/config.type'; +import { AllConfigType } from '../config/config.type'; @Injectable() export class TypeOrmConfigService implements TypeOrmOptionsFactory { @@ -27,7 +27,7 @@ export class TypeOrmConfigService implements TypeOrmOptionsFactory { migrations: [__dirname + '/migrations/**/*{.ts,.js}'], cli: { entitiesDir: 'src', - migrationsDir: 'src/database/migrations', + subscribersDir: 'subscriber', }, extra: { diff --git a/src/files/config/file.config.ts b/src/files/config/file.config.ts index 0f1e2d94a..78dc6f128 100644 --- a/src/files/config/file.config.ts +++ b/src/files/config/file.config.ts @@ -1,7 +1,8 @@ import { registerAs } from '@nestjs/config'; -import { FileConfig, FileDriver } from 'src/files/config/file-config.type'; + import { IsEnum, IsString, ValidateIf } from 'class-validator'; import validateConfig from '../../utils/validate-config'; +import { FileDriver, FileConfig } from './file-config.type'; class EnvironmentVariablesValidator { @IsEnum(FileDriver) diff --git a/src/files/domain/file.ts b/src/files/domain/file.ts index 2ca9d4323..2c97d6637 100644 --- a/src/files/domain/file.ts +++ b/src/files/domain/file.ts @@ -3,10 +3,11 @@ import { Allow } from 'class-validator'; import { Transform } from 'class-transformer'; import fileConfig from '../config/file.config'; import { FileConfig, FileDriver } from '../config/file-config.type'; -import appConfig from 'src/config/app.config'; -import { AppConfig } from 'src/config/app-config.type'; + import { GetObjectCommand, S3Client } from '@aws-sdk/client-s3'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; +import { AppConfig } from '../../config/app-config.type'; +import appConfig from '../../config/app.config'; export class FileType { @ApiProperty({ example: 'cbcfa8b8-3a25-4adb-a9c6-e325f0d0f3ae' }) diff --git a/src/files/files.module.ts b/src/files/files.module.ts index 4a2cf6a10..daab7f64e 100644 --- a/src/files/files.module.ts +++ b/src/files/files.module.ts @@ -1,6 +1,5 @@ import { Module } from '@nestjs/common'; -import databaseConfig from 'src/database/config/database.config'; -import { DatabaseConfig } from 'src/database/config/database-config.type'; + import { DocumentFilePersistenceModule } from './infrastructure/persistence/document/document-persistence.module'; import { RelationalFilePersistenceModule } from './infrastructure/persistence/relational/relational-persistence.module'; import { FilesService } from './files.service'; @@ -9,6 +8,8 @@ import { FileConfig, FileDriver } from './config/file-config.type'; import { FilesLocalModule } from './infrastructure/uploader/local/files.module'; import { FilesS3Module } from './infrastructure/uploader/s3/files.module'; import { FilesS3PresignedModule } from './infrastructure/uploader/s3-presigned/files.module'; +import { DatabaseConfig } from '../database/config/database-config.type'; +import databaseConfig from '../database/config/database.config'; const infrastructurePersistenceModule = (databaseConfig() as DatabaseConfig) .isDocumentDatabase diff --git a/src/files/files.service.ts b/src/files/files.service.ts index e756d52a6..066b62519 100644 --- a/src/files/files.service.ts +++ b/src/files/files.service.ts @@ -1,8 +1,9 @@ import { Injectable } from '@nestjs/common'; -import { EntityCondition } from 'src/utils/types/entity-condition.type'; -import { NullableType } from 'src/utils/types/nullable.type'; + import { FileRepository } from './infrastructure/persistence/file.repository'; import { FileType } from './domain/file'; +import { EntityCondition } from '../utils/types/entity-condition.type'; +import { NullableType } from '../utils/types/nullable.type'; @Injectable() export class FilesService { diff --git a/src/files/infrastructure/persistence/document/entities/file.schema.ts b/src/files/infrastructure/persistence/document/entities/file.schema.ts index d07bb91d6..d41570d3b 100644 --- a/src/files/infrastructure/persistence/document/entities/file.schema.ts +++ b/src/files/infrastructure/persistence/document/entities/file.schema.ts @@ -6,11 +6,11 @@ import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; // in your project and return an schema entity directly in response. import { Transform } from 'class-transformer'; import { HydratedDocument } from 'mongoose'; -import { AppConfig } from 'src/config/app-config.type'; -import appConfig from 'src/config/app.config'; -import { FileConfig, FileDriver } from 'src/files/config/file-config.type'; -import fileConfig from 'src/files/config/file.config'; -import { EntityDocumentHelper } from 'src/utils/document-entity-helper'; +import { AppConfig } from '../../../../../config/app-config.type'; +import appConfig from '../../../../../config/app.config'; +import { EntityDocumentHelper } from '../../../../../utils/document-entity-helper'; +import { FileConfig, FileDriver } from '../../../../config/file-config.type'; +import fileConfig from '../../../../config/file.config'; export type FileSchemaDocument = HydratedDocument; diff --git a/src/files/infrastructure/persistence/document/repositories/file.repository.ts b/src/files/infrastructure/persistence/document/repositories/file.repository.ts index 7b7b250d0..5c00477ec 100644 --- a/src/files/infrastructure/persistence/document/repositories/file.repository.ts +++ b/src/files/infrastructure/persistence/document/repositories/file.repository.ts @@ -5,9 +5,10 @@ import { FileSchemaClass } from '../entities/file.schema'; import { InjectModel } from '@nestjs/mongoose'; import { Model } from 'mongoose'; import { FileType } from '../../../../domain/file'; -import { EntityCondition } from 'src/utils/types/entity-condition.type'; -import { NullableType } from 'src/utils/types/nullable.type'; + import { FileMapper } from '../mappers/file.mapper'; +import { EntityCondition } from '../../../../../utils/types/entity-condition.type'; +import { NullableType } from '../../../../../utils/types/nullable.type'; @Injectable() export class FileDocumentRepository implements FileRepository { diff --git a/src/files/infrastructure/persistence/file.repository.ts b/src/files/infrastructure/persistence/file.repository.ts index b23b43993..0ed0a8d15 100644 --- a/src/files/infrastructure/persistence/file.repository.ts +++ b/src/files/infrastructure/persistence/file.repository.ts @@ -1,6 +1,6 @@ -import { EntityCondition } from 'src/utils/types/entity-condition.type'; +import { EntityCondition } from '../../../utils/types/entity-condition.type'; +import { NullableType } from '../../../utils/types/nullable.type'; import { FileType } from '../../domain/file'; -import { NullableType } from 'src/utils/types/nullable.type'; export abstract class FileRepository { abstract create(data: Omit): Promise; diff --git a/src/files/infrastructure/persistence/relational/entities/file.entity.ts b/src/files/infrastructure/persistence/relational/entities/file.entity.ts index 9e3a0ce5f..be3a1f694 100644 --- a/src/files/infrastructure/persistence/relational/entities/file.entity.ts +++ b/src/files/infrastructure/persistence/relational/entities/file.entity.ts @@ -1,15 +1,15 @@ import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; -import { EntityRelationalHelper } from 'src/utils/relational-entity-helper'; // We use class-transformer in ORM entity and domain entity. // We duplicate these rules because you can choose not to use adapters // in your project and return an ORM entity directly in response. import { Transform } from 'class-transformer'; -import fileConfig from 'src/files/config/file.config'; -import { FileConfig, FileDriver } from 'src/files/config/file-config.type'; -import appConfig from 'src/config/app.config'; -import { AppConfig } from 'src/config/app-config.type'; import { GetObjectCommand, S3Client } from '@aws-sdk/client-s3'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; +import { AppConfig } from '../../../../../config/app-config.type'; +import appConfig from '../../../../../config/app.config'; +import { EntityRelationalHelper } from '../../../../../utils/relational-entity-helper'; +import { FileConfig, FileDriver } from '../../../../config/file-config.type'; +import fileConfig from '../../../../config/file.config'; @Entity({ name: 'file' }) export class FileEntity extends EntityRelationalHelper { diff --git a/src/files/infrastructure/persistence/relational/repositories/file.repository.ts b/src/files/infrastructure/persistence/relational/repositories/file.repository.ts index 5ada2ee43..a2aacc9f9 100644 --- a/src/files/infrastructure/persistence/relational/repositories/file.repository.ts +++ b/src/files/infrastructure/persistence/relational/repositories/file.repository.ts @@ -3,10 +3,11 @@ import { InjectRepository } from '@nestjs/typeorm'; import { FileEntity } from '../entities/file.entity'; import { FindOptionsWhere, Repository } from 'typeorm'; import { FileRepository } from '../../file.repository'; -import { EntityCondition } from 'src/utils/types/entity-condition.type'; -import { NullableType } from 'src/utils/types/nullable.type'; + import { FileMapper } from '../mappers/file.mapper'; import { FileType } from '../../../../domain/file'; +import { EntityCondition } from '../../../../../utils/types/entity-condition.type'; +import { NullableType } from '../../../../../utils/types/nullable.type'; @Injectable() export class FileRelationalRepository implements FileRepository { diff --git a/src/files/infrastructure/uploader/local/files.module.ts b/src/files/infrastructure/uploader/local/files.module.ts index a68869713..60a348487 100644 --- a/src/files/infrastructure/uploader/local/files.module.ts +++ b/src/files/infrastructure/uploader/local/files.module.ts @@ -4,12 +4,14 @@ import { MulterModule } from '@nestjs/platform-express'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { diskStorage } from 'multer'; import { randomStringGenerator } from '@nestjs/common/utils/random-string-generator.util'; -import { AllConfigType } from 'src/config/config.type'; + import { FilesLocalService } from './files.service'; -import databaseConfig from 'src/database/config/database.config'; -import { DatabaseConfig } from 'src/database/config/database-config.type'; + import { DocumentFilePersistenceModule } from '../../persistence/document/document-persistence.module'; import { RelationalFilePersistenceModule } from '../../persistence/relational/relational-persistence.module'; +import { AllConfigType } from '../../../../config/config.type'; +import { DatabaseConfig } from '../../../../database/config/database-config.type'; +import databaseConfig from '../../../../database/config/database.config'; const infrastructurePersistenceModule = (databaseConfig() as DatabaseConfig) .isDocumentDatabase diff --git a/src/files/infrastructure/uploader/local/files.service.ts b/src/files/infrastructure/uploader/local/files.service.ts index 839a482f7..e8353897b 100644 --- a/src/files/infrastructure/uploader/local/files.service.ts +++ b/src/files/infrastructure/uploader/local/files.service.ts @@ -1,8 +1,9 @@ import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; -import { AllConfigType } from 'src/config/config.type'; + import { FileRepository } from '../../persistence/file.repository'; -import { FileType } from 'src/files/domain/file'; +import { AllConfigType } from '../../../../config/config.type'; +import { FileType } from '../../../domain/file'; @Injectable() export class FilesLocalService { diff --git a/src/files/infrastructure/uploader/s3-presigned/files.module.ts b/src/files/infrastructure/uploader/s3-presigned/files.module.ts index 0c0821bdd..5c474a8a0 100644 --- a/src/files/infrastructure/uploader/s3-presigned/files.module.ts +++ b/src/files/infrastructure/uploader/s3-presigned/files.module.ts @@ -5,12 +5,14 @@ import { ConfigModule, ConfigService } from '@nestjs/config'; import { randomStringGenerator } from '@nestjs/common/utils/random-string-generator.util'; import { S3Client } from '@aws-sdk/client-s3'; import multerS3 from 'multer-s3'; -import { AllConfigType } from 'src/config/config.type'; + import { FilesS3PresignedService } from './files.service'; -import databaseConfig from 'src/database/config/database.config'; -import { DatabaseConfig } from 'src/database/config/database-config.type'; + import { DocumentFilePersistenceModule } from '../../persistence/document/document-persistence.module'; import { RelationalFilePersistenceModule } from '../../persistence/relational/relational-persistence.module'; +import { AllConfigType } from '../../../../config/config.type'; +import { DatabaseConfig } from '../../../../database/config/database-config.type'; +import databaseConfig from '../../../../database/config/database.config'; const infrastructurePersistenceModule = (databaseConfig() as DatabaseConfig) .isDocumentDatabase diff --git a/src/files/infrastructure/uploader/s3-presigned/files.service.ts b/src/files/infrastructure/uploader/s3-presigned/files.service.ts index fb4476c8b..d99e31200 100644 --- a/src/files/infrastructure/uploader/s3-presigned/files.service.ts +++ b/src/files/infrastructure/uploader/s3-presigned/files.service.ts @@ -1,11 +1,12 @@ import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; import { FileRepository } from '../../persistence/file.repository'; -import { FileType } from 'src/files/domain/file'; + import { FileUploadDto } from './dto/file.dto'; import { PutObjectCommand, S3Client } from '@aws-sdk/client-s3'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; import { randomStringGenerator } from '@nestjs/common/utils/random-string-generator.util'; import { ConfigService } from '@nestjs/config'; +import { FileType } from '../../../domain/file'; @Injectable() export class FilesS3PresignedService { diff --git a/src/files/infrastructure/uploader/s3/files.module.ts b/src/files/infrastructure/uploader/s3/files.module.ts index c42b4cc91..a5f3e6262 100644 --- a/src/files/infrastructure/uploader/s3/files.module.ts +++ b/src/files/infrastructure/uploader/s3/files.module.ts @@ -5,12 +5,14 @@ import { ConfigModule, ConfigService } from '@nestjs/config'; import { randomStringGenerator } from '@nestjs/common/utils/random-string-generator.util'; import { S3Client } from '@aws-sdk/client-s3'; import multerS3 from 'multer-s3'; -import { AllConfigType } from 'src/config/config.type'; + import { FilesS3Service } from './files.service'; -import databaseConfig from 'src/database/config/database.config'; -import { DatabaseConfig } from 'src/database/config/database-config.type'; + import { DocumentFilePersistenceModule } from '../../persistence/document/document-persistence.module'; import { RelationalFilePersistenceModule } from '../../persistence/relational/relational-persistence.module'; +import { AllConfigType } from '../../../../config/config.type'; +import { DatabaseConfig } from '../../../../database/config/database-config.type'; +import databaseConfig from '../../../../database/config/database.config'; const infrastructurePersistenceModule = (databaseConfig() as DatabaseConfig) .isDocumentDatabase diff --git a/src/files/infrastructure/uploader/s3/files.service.ts b/src/files/infrastructure/uploader/s3/files.service.ts index e0b5746ab..0364005b9 100644 --- a/src/files/infrastructure/uploader/s3/files.service.ts +++ b/src/files/infrastructure/uploader/s3/files.service.ts @@ -1,6 +1,6 @@ import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; import { FileRepository } from '../../persistence/file.repository'; -import { FileType } from 'src/files/domain/file'; +import { FileType } from '../../../domain/file'; @Injectable() export class FilesS3Service { diff --git a/src/home/home.service.ts b/src/home/home.service.ts index 1df65861c..1f2bb36bd 100644 --- a/src/home/home.service.ts +++ b/src/home/home.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; -import { AllConfigType } from 'src/config/config.type'; +import { AllConfigType } from '../config/config.type'; @Injectable() export class HomeService { diff --git a/src/mail/config/mail.config.ts b/src/mail/config/mail.config.ts index c35c8dd10..060799b49 100644 --- a/src/mail/config/mail.config.ts +++ b/src/mail/config/mail.config.ts @@ -1,5 +1,5 @@ import { registerAs } from '@nestjs/config'; -import { MailConfig } from 'src/mail/config/mail-config.type'; + import { IsString, IsInt, @@ -10,6 +10,7 @@ import { IsEmail, } from 'class-validator'; import validateConfig from '../../utils/validate-config'; +import { MailConfig } from './mail-config.type'; class EnvironmentVariablesValidator { @IsInt() diff --git a/src/mail/mail.service.ts b/src/mail/mail.service.ts index 84dd57e9c..a204fec3c 100644 --- a/src/mail/mail.service.ts +++ b/src/mail/mail.service.ts @@ -2,10 +2,11 @@ import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { I18nContext } from 'nestjs-i18n'; import { MailData } from './interfaces/mail-data.interface'; -import { AllConfigType } from 'src/config/config.type'; + import { MaybeType } from '../utils/types/maybe.type'; import { MailerService } from '../mailer/mailer.service'; import path from 'path'; +import { AllConfigType } from '../config/config.type'; @Injectable() export class MailService { diff --git a/src/mailer/mailer.service.ts b/src/mailer/mailer.service.ts index 1ced1ecfe..ce24426f3 100644 --- a/src/mailer/mailer.service.ts +++ b/src/mailer/mailer.service.ts @@ -3,7 +3,7 @@ import fs from 'node:fs/promises'; import { ConfigService } from '@nestjs/config'; import nodemailer from 'nodemailer'; import Handlebars from 'handlebars'; -import { AllConfigType } from 'src/config/config.type'; +import { AllConfigType } from '../config/config.type'; @Injectable() export class MailerService { diff --git a/src/roles/infrastructure/persistence/relational/entities/role.entity.ts b/src/roles/infrastructure/persistence/relational/entities/role.entity.ts index e39fe5b22..d2aba0ef1 100644 --- a/src/roles/infrastructure/persistence/relational/entities/role.entity.ts +++ b/src/roles/infrastructure/persistence/relational/entities/role.entity.ts @@ -1,6 +1,6 @@ import { Column, Entity, PrimaryColumn } from 'typeorm'; -import { EntityRelationalHelper } from 'src/utils/relational-entity-helper'; import { Role } from '../../../../domain/role'; +import { EntityRelationalHelper } from '../../../../../utils/relational-entity-helper'; @Entity({ name: 'role', diff --git a/src/session/domain/session.ts b/src/session/domain/session.ts index 72555f286..5a531fec7 100644 --- a/src/session/domain/session.ts +++ b/src/session/domain/session.ts @@ -1,4 +1,4 @@ -import { User } from 'src/users/domain/user'; +import { User } from '../../users/domain/user'; export class Session { id: number | string; diff --git a/src/session/infrastructure/persistence/document/entities/session.schema.ts b/src/session/infrastructure/persistence/document/entities/session.schema.ts index e64c3a6d4..568944ad7 100644 --- a/src/session/infrastructure/persistence/document/entities/session.schema.ts +++ b/src/session/infrastructure/persistence/document/entities/session.schema.ts @@ -1,7 +1,7 @@ import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import mongoose, { now, HydratedDocument } from 'mongoose'; -import { UserSchemaClass } from 'src/users/infrastructure/persistence/document/entities/user.schema'; -import { EntityDocumentHelper } from 'src/utils/document-entity-helper'; +import { UserSchemaClass } from '../../../../../users/infrastructure/persistence/document/entities/user.schema'; +import { EntityDocumentHelper } from '../../../../../utils/document-entity-helper'; export type SessionSchemaDocument = HydratedDocument; diff --git a/src/session/infrastructure/persistence/document/mappers/session.mapper.ts b/src/session/infrastructure/persistence/document/mappers/session.mapper.ts index 61f13c5d2..78a32a77c 100644 --- a/src/session/infrastructure/persistence/document/mappers/session.mapper.ts +++ b/src/session/infrastructure/persistence/document/mappers/session.mapper.ts @@ -1,7 +1,7 @@ -import { UserSchemaClass } from 'src/users/infrastructure/persistence/document/entities/user.schema'; +import { UserSchemaClass } from '../../../../../users/infrastructure/persistence/document/entities/user.schema'; +import { UserMapper } from '../../../../../users/infrastructure/persistence/document/mappers/user.mapper'; import { Session } from '../../../../domain/session'; import { SessionSchemaClass } from '../entities/session.schema'; -import { UserMapper } from 'src/users/infrastructure/persistence/document/mappers/user.mapper'; export class SessionMapper { static toDomain(raw: SessionSchemaClass): Session { diff --git a/src/session/infrastructure/persistence/document/repositories/session.repository.ts b/src/session/infrastructure/persistence/document/repositories/session.repository.ts index dc3d90f7a..f66a02ae1 100644 --- a/src/session/infrastructure/persistence/document/repositories/session.repository.ts +++ b/src/session/infrastructure/persistence/document/repositories/session.repository.ts @@ -5,9 +5,9 @@ import { Session } from '../../../../domain/session'; import { SessionSchemaClass } from '../entities/session.schema'; import { Model } from 'mongoose'; import { InjectModel } from '@nestjs/mongoose'; -import { User } from 'src/users/domain/user'; -import { EntityCondition } from 'src/utils/types/entity-condition.type'; import { SessionMapper } from '../mappers/session.mapper'; +import { User } from '../../../../../users/domain/user'; +import { EntityCondition } from '../../../../../utils/types/entity-condition.type'; @Injectable() export class SessionDocumentRepository implements SessionRepository { diff --git a/src/session/infrastructure/persistence/relational/entities/session.entity.ts b/src/session/infrastructure/persistence/relational/entities/session.entity.ts index c60791762..2a99dec9f 100644 --- a/src/session/infrastructure/persistence/relational/entities/session.entity.ts +++ b/src/session/infrastructure/persistence/relational/entities/session.entity.ts @@ -9,8 +9,9 @@ import { UpdateDateColumn, } from 'typeorm'; import { UserEntity } from '../../../../../users/infrastructure/persistence/relational/entities/user.entity'; -import { EntityRelationalHelper } from 'src/utils/relational-entity-helper'; + import { Session } from '../../../../domain/session'; +import { EntityRelationalHelper } from '../../../../../utils/relational-entity-helper'; @Entity({ name: 'session', diff --git a/src/session/infrastructure/persistence/relational/mappers/session.mapper.ts b/src/session/infrastructure/persistence/relational/mappers/session.mapper.ts index e68f24dcb..aac1b769c 100644 --- a/src/session/infrastructure/persistence/relational/mappers/session.mapper.ts +++ b/src/session/infrastructure/persistence/relational/mappers/session.mapper.ts @@ -1,7 +1,7 @@ -import { UserEntity } from 'src/users/infrastructure/persistence/relational/entities/user.entity'; +import { UserEntity } from '../../../../../users/infrastructure/persistence/relational/entities/user.entity'; +import { UserMapper } from '../../../../../users/infrastructure/persistence/relational/mappers/user.mapper'; import { Session } from '../../../../domain/session'; import { SessionEntity } from '../entities/session.entity'; -import { UserMapper } from 'src/users/infrastructure/persistence/relational/mappers/user.mapper'; export class SessionMapper { static toDomain(raw: SessionEntity): Session { diff --git a/src/session/infrastructure/persistence/relational/repositories/session.repository.ts b/src/session/infrastructure/persistence/relational/repositories/session.repository.ts index 44a3a83de..84218dc95 100644 --- a/src/session/infrastructure/persistence/relational/repositories/session.repository.ts +++ b/src/session/infrastructure/persistence/relational/repositories/session.repository.ts @@ -3,12 +3,14 @@ import { InjectRepository } from '@nestjs/typeorm'; import { FindOptionsWhere, Not, Repository } from 'typeorm'; import { SessionEntity } from '../entities/session.entity'; import { NullableType } from '../../../../../utils/types/nullable.type'; -import { UserEntity } from 'src/users/infrastructure/persistence/relational/entities/user.entity'; + import { SessionRepository } from '../../session.repository'; import { Session } from '../../../../domain/session'; -import { User } from 'src/users/domain/user'; -import { EntityCondition } from 'src/utils/types/entity-condition.type'; + import { SessionMapper } from '../mappers/session.mapper'; +import { User } from '../../../../../users/domain/user'; +import { UserEntity } from '../../../../../users/infrastructure/persistence/relational/entities/user.entity'; +import { EntityCondition } from '../../../../../utils/types/entity-condition.type'; @Injectable() export class SessionRelationalRepository implements SessionRepository { diff --git a/src/session/infrastructure/persistence/session.repository.ts b/src/session/infrastructure/persistence/session.repository.ts index 21517d06b..3cd4e861b 100644 --- a/src/session/infrastructure/persistence/session.repository.ts +++ b/src/session/infrastructure/persistence/session.repository.ts @@ -1,7 +1,7 @@ +import { User } from '../../../users/domain/user'; +import { EntityCondition } from '../../../utils/types/entity-condition.type'; import { NullableType } from '../../../utils/types/nullable.type'; import { Session } from '../../domain/session'; -import { User } from 'src/users/domain/user'; -import { EntityCondition } from 'src/utils/types/entity-condition.type'; export abstract class SessionRepository { abstract findOne( diff --git a/src/session/session.module.ts b/src/session/session.module.ts index 5de1b3ecb..94b59d465 100644 --- a/src/session/session.module.ts +++ b/src/session/session.module.ts @@ -1,9 +1,10 @@ import { Module } from '@nestjs/common'; -import databaseConfig from 'src/database/config/database.config'; -import { DatabaseConfig } from 'src/database/config/database-config.type'; + import { DocumentSessionPersistenceModule } from './infrastructure/persistence/document/document-persistence.module'; import { RelationalSessionPersistenceModule } from './infrastructure/persistence/relational/relational-persistence.module'; import { SessionService } from './session.service'; +import { DatabaseConfig } from '../database/config/database-config.type'; +import databaseConfig from '../database/config/database.config'; const infrastructurePersistenceModule = (databaseConfig() as DatabaseConfig) .isDocumentDatabase diff --git a/src/session/session.service.ts b/src/session/session.service.ts index 2bf8d8dba..4ef128669 100644 --- a/src/session/session.service.ts +++ b/src/session/session.service.ts @@ -1,9 +1,10 @@ import { Injectable } from '@nestjs/common'; -import { User } from 'src/users/domain/user'; -import { EntityCondition } from 'src/utils/types/entity-condition.type'; + import { SessionRepository } from './infrastructure/persistence/session.repository'; import { Session } from './domain/session'; -import { NullableType } from 'src/utils/types/nullable.type'; +import { User } from '../users/domain/user'; +import { EntityCondition } from '../utils/types/entity-condition.type'; +import { NullableType } from '../utils/types/nullable.type'; @Injectable() export class SessionService { diff --git a/src/statuses/infrastructure/persistence/relational/entities/status.entity.ts b/src/statuses/infrastructure/persistence/relational/entities/status.entity.ts index e80d8ca37..dd14fb5f2 100644 --- a/src/statuses/infrastructure/persistence/relational/entities/status.entity.ts +++ b/src/statuses/infrastructure/persistence/relational/entities/status.entity.ts @@ -1,6 +1,7 @@ import { Column, Entity, PrimaryColumn } from 'typeorm'; -import { EntityRelationalHelper } from 'src/utils/relational-entity-helper'; + import { Status } from '../../../../domain/status'; +import { EntityRelationalHelper } from '../../../../../utils/relational-entity-helper'; @Entity({ name: 'status', diff --git a/src/users/domain/user.ts b/src/users/domain/user.ts index 7be95e314..ad8d24f1e 100644 --- a/src/users/domain/user.ts +++ b/src/users/domain/user.ts @@ -1,7 +1,7 @@ import { Exclude, Expose } from 'class-transformer'; -import { FileType } from 'src/files/domain/file'; -import { Role } from 'src/roles/domain/role'; -import { Status } from 'src/statuses/domain/status'; +import { FileType } from '../../files/domain/file'; +import { Role } from '../../roles/domain/role'; +import { Status } from '../../statuses/domain/status'; export class User { id: number | string; diff --git a/src/users/dto/create-user.dto.ts b/src/users/dto/create-user.dto.ts index 9c4db5331..17ab4da14 100644 --- a/src/users/dto/create-user.dto.ts +++ b/src/users/dto/create-user.dto.ts @@ -1,10 +1,10 @@ import { Transform, Type } from 'class-transformer'; import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { IsEmail, IsNotEmpty, IsOptional, MinLength } from 'class-validator'; -import { lowerCaseTransformer } from 'src/utils/transformers/lower-case.transformer'; -import { RoleDto } from 'src/roles/dto/role.dto'; -import { StatusDto } from 'src/statuses/dto/status.dto'; -import { FileDto } from 'src/files/dto/file.dto'; +import { FileDto } from '../../files/dto/file.dto'; +import { RoleDto } from '../../roles/dto/role.dto'; +import { StatusDto } from '../../statuses/dto/status.dto'; +import { lowerCaseTransformer } from '../../utils/transformers/lower-case.transformer'; export class CreateUserDto { @ApiProperty({ example: 'test1@example.com' }) diff --git a/src/users/dto/query-user.dto.ts b/src/users/dto/query-user.dto.ts index abbfe1f97..8c0d1ed1a 100644 --- a/src/users/dto/query-user.dto.ts +++ b/src/users/dto/query-user.dto.ts @@ -7,7 +7,7 @@ import { } from 'class-validator'; import { Transform, Type, plainToInstance } from 'class-transformer'; import { User } from '../domain/user'; -import { RoleDto } from 'src/roles/dto/role.dto'; +import { RoleDto } from '../../roles/dto/role.dto'; export class FilterUserDto { @ApiPropertyOptional({ type: RoleDto }) diff --git a/src/users/dto/update-user.dto.ts b/src/users/dto/update-user.dto.ts index b0b0a0177..cc235cd04 100644 --- a/src/users/dto/update-user.dto.ts +++ b/src/users/dto/update-user.dto.ts @@ -1,13 +1,12 @@ -import { PartialType } from '@nestjs/swagger'; +import { PartialType, ApiPropertyOptional } from '@nestjs/swagger'; import { CreateUserDto } from './create-user.dto'; import { Transform, Type } from 'class-transformer'; -import { ApiPropertyOptional } from '@nestjs/swagger'; import { IsEmail, IsOptional, MinLength } from 'class-validator'; -import { lowerCaseTransformer } from 'src/utils/transformers/lower-case.transformer'; -import { RoleDto } from 'src/roles/dto/role.dto'; -import { StatusDto } from 'src/statuses/dto/status.dto'; -import { FileDto } from 'src/files/dto/file.dto'; +import { FileDto } from '../../files/dto/file.dto'; +import { RoleDto } from '../../roles/dto/role.dto'; +import { StatusDto } from '../../statuses/dto/status.dto'; +import { lowerCaseTransformer } from '../../utils/transformers/lower-case.transformer'; export class UpdateUserDto extends PartialType(CreateUserDto) { @ApiPropertyOptional({ example: 'test1@example.com' }) diff --git a/src/users/infrastructure/persistence/document/entities/user.schema.ts b/src/users/infrastructure/persistence/document/entities/user.schema.ts index 7a160edab..00f0a81ef 100644 --- a/src/users/infrastructure/persistence/document/entities/user.schema.ts +++ b/src/users/infrastructure/persistence/document/entities/user.schema.ts @@ -1,14 +1,15 @@ import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import { now, HydratedDocument } from 'mongoose'; -import { Role } from 'src/roles/domain/role'; -import { Status } from 'src/statuses/domain/status'; -import { AuthProvidersEnum } from 'src/auth/auth-providers.enum'; + // We use class-transformer in schema and domain entity. // We duplicate these rules because you can choose not to use adapters // in your project and return an schema entity directly in response. import { Exclude, Expose, Type } from 'class-transformer'; -import { EntityDocumentHelper } from 'src/utils/document-entity-helper'; -import { FileSchemaClass } from 'src/files/infrastructure/persistence/document/entities/file.schema'; +import { AuthProvidersEnum } from '../../../../../auth/auth-providers.enum'; +import { FileSchemaClass } from '../../../../../files/infrastructure/persistence/document/entities/file.schema'; +import { Role } from '../../../../../roles/domain/role'; +import { Status } from '../../../../../statuses/domain/status'; +import { EntityDocumentHelper } from '../../../../../utils/document-entity-helper'; export type UserSchemaDocument = HydratedDocument; diff --git a/src/users/infrastructure/persistence/document/mappers/user.mapper.ts b/src/users/infrastructure/persistence/document/mappers/user.mapper.ts index fc0d3992e..0c5664523 100644 --- a/src/users/infrastructure/persistence/document/mappers/user.mapper.ts +++ b/src/users/infrastructure/persistence/document/mappers/user.mapper.ts @@ -1,9 +1,9 @@ import { User } from '../../../../domain/user'; import { UserSchemaClass } from '../entities/user.schema'; -import { FileSchemaClass } from 'src/files/infrastructure/persistence/document/entities/file.schema'; -import { Status } from 'src/statuses/domain/status'; -import { Role } from 'src/roles/domain/role'; -import { FileMapper } from 'src/files/infrastructure/persistence/document/mappers/file.mapper'; +import { FileSchemaClass } from '../../../../../files/infrastructure/persistence/document/entities/file.schema'; +import { FileMapper } from '../../../../../files/infrastructure/persistence/document/mappers/file.mapper'; +import { Role } from '../../../../../roles/domain/role'; +import { Status } from '../../../../../statuses/domain/status'; export class UserMapper { static toDomain(raw: UserSchemaClass): User { diff --git a/src/users/infrastructure/persistence/document/repositories/user.repository.ts b/src/users/infrastructure/persistence/document/repositories/user.repository.ts index b08b837cf..884826310 100644 --- a/src/users/infrastructure/persistence/document/repositories/user.repository.ts +++ b/src/users/infrastructure/persistence/document/repositories/user.repository.ts @@ -1,6 +1,5 @@ import { Injectable } from '@nestjs/common'; -import { EntityCondition } from 'src/utils/types/entity-condition.type'; -import { IPaginationOptions } from 'src/utils/types/pagination-options'; + import { NullableType } from '../../../../../utils/types/nullable.type'; import { FilterUserDto, SortUserDto } from '../../../../dto/query-user.dto'; import { User } from '../../../../domain/user'; @@ -9,6 +8,8 @@ import { UserSchemaClass } from '../entities/user.schema'; import { InjectModel } from '@nestjs/mongoose'; import { Model } from 'mongoose'; import { UserMapper } from '../mappers/user.mapper'; +import { EntityCondition } from '../../../../../utils/types/entity-condition.type'; +import { IPaginationOptions } from '../../../../../utils/types/pagination-options'; @Injectable() export class UsersDocumentRepository implements UserRepository { diff --git a/src/users/infrastructure/persistence/relational/entities/user.entity.ts b/src/users/infrastructure/persistence/relational/entities/user.entity.ts index bd1fd2c4e..efb57cbd8 100644 --- a/src/users/infrastructure/persistence/relational/entities/user.entity.ts +++ b/src/users/infrastructure/persistence/relational/entities/user.entity.ts @@ -12,13 +12,15 @@ import { import { RoleEntity } from '../../../../../roles/infrastructure/persistence/relational/entities/role.entity'; import { StatusEntity } from '../../../../../statuses/infrastructure/persistence/relational/entities/status.entity'; import { FileEntity } from '../../../../../files/infrastructure/persistence/relational/entities/file.entity'; -import { EntityRelationalHelper } from 'src/utils/relational-entity-helper'; -import { AuthProvidersEnum } from 'src/auth/auth-providers.enum'; + +import { User } from '../../../../domain/user'; +import { AuthProvidersEnum } from '../../../../../auth/auth-providers.enum'; +import { EntityRelationalHelper } from '../../../../../utils/relational-entity-helper'; + // We use class-transformer in ORM entity and domain entity. // We duplicate these rules because you can choose not to use adapters // in your project and return an ORM entity directly in response. import { Exclude, Expose } from 'class-transformer'; -import { User } from '../../../../domain/user'; @Entity({ name: 'user', diff --git a/src/users/infrastructure/persistence/relational/mappers/user.mapper.ts b/src/users/infrastructure/persistence/relational/mappers/user.mapper.ts index 7999178a8..cb1d5d12b 100644 --- a/src/users/infrastructure/persistence/relational/mappers/user.mapper.ts +++ b/src/users/infrastructure/persistence/relational/mappers/user.mapper.ts @@ -1,9 +1,9 @@ -import { RoleEntity } from 'src/roles/infrastructure/persistence/relational/entities/role.entity'; +import { FileEntity } from '../../../../../files/infrastructure/persistence/relational/entities/file.entity'; +import { FileMapper } from '../../../../../files/infrastructure/persistence/relational/mappers/file.mapper'; +import { RoleEntity } from '../../../../../roles/infrastructure/persistence/relational/entities/role.entity'; +import { StatusEntity } from '../../../../../statuses/infrastructure/persistence/relational/entities/status.entity'; import { User } from '../../../../domain/user'; import { UserEntity } from '../entities/user.entity'; -import { FileEntity } from 'src/files/infrastructure/persistence/relational/entities/file.entity'; -import { StatusEntity } from 'src/statuses/infrastructure/persistence/relational/entities/status.entity'; -import { FileMapper } from 'src/files/infrastructure/persistence/relational/mappers/file.mapper'; export class UserMapper { static toDomain(raw: UserEntity): User { diff --git a/src/users/infrastructure/persistence/relational/repositories/user.repository.ts b/src/users/infrastructure/persistence/relational/repositories/user.repository.ts index 873d26b0c..3b71771ff 100644 --- a/src/users/infrastructure/persistence/relational/repositories/user.repository.ts +++ b/src/users/infrastructure/persistence/relational/repositories/user.repository.ts @@ -1,7 +1,6 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { EntityCondition } from 'src/utils/types/entity-condition.type'; -import { IPaginationOptions } from 'src/utils/types/pagination-options'; + import { FindOptionsWhere, Repository } from 'typeorm'; import { UserEntity } from '../entities/user.entity'; import { NullableType } from '../../../../../utils/types/nullable.type'; @@ -9,6 +8,8 @@ import { FilterUserDto, SortUserDto } from '../../../../dto/query-user.dto'; import { User } from '../../../../domain/user'; import { UserRepository } from '../../user.repository'; import { UserMapper } from '../mappers/user.mapper'; +import { EntityCondition } from '../../../../../utils/types/entity-condition.type'; +import { IPaginationOptions } from '../../../../../utils/types/pagination-options'; @Injectable() export class UsersRelationalRepository implements UserRepository { diff --git a/src/users/infrastructure/persistence/user.repository.ts b/src/users/infrastructure/persistence/user.repository.ts index 033918185..10ef8ef40 100644 --- a/src/users/infrastructure/persistence/user.repository.ts +++ b/src/users/infrastructure/persistence/user.repository.ts @@ -1,9 +1,10 @@ +import { DeepPartial } from 'typeorm'; +import { EntityCondition } from '../../../utils/types/entity-condition.type'; +import { NullableType } from '../../../utils/types/nullable.type'; +import { IPaginationOptions } from '../../../utils/types/pagination-options'; import { User } from '../../domain/user'; -import { NullableType } from 'src/utils/types/nullable.type'; + import { FilterUserDto, SortUserDto } from '../../dto/query-user.dto'; -import { IPaginationOptions } from 'src/utils/types/pagination-options'; -import { EntityCondition } from 'src/utils/types/entity-condition.type'; -import { DeepPartial } from 'src/utils/types/deep-partial.type'; export abstract class UserRepository { abstract create( diff --git a/src/users/users.controller.ts b/src/users/users.controller.ts index e9961801a..dbd41a747 100644 --- a/src/users/users.controller.ts +++ b/src/users/users.controller.ts @@ -18,13 +18,14 @@ import { ApiBearerAuth, ApiParam, ApiTags } from '@nestjs/swagger'; import { Roles } from '../roles/roles.decorator'; import { RoleEnum } from '../roles/roles.enum'; import { AuthGuard } from '@nestjs/passport'; -import { RolesGuard } from 'src/roles/roles.guard'; -import { infinityPagination } from 'src/utils/infinity-pagination'; + import { InfinityPaginationResultType } from '../utils/types/infinity-pagination-result.type'; import { NullableType } from '../utils/types/nullable.type'; import { QueryUserDto } from './dto/query-user.dto'; import { User } from './domain/user'; import { UsersService } from './users.service'; +import { RolesGuard } from '../roles/roles.guard'; +import { infinityPagination } from '../utils/infinity-pagination'; @ApiBearerAuth() @Roles(RoleEnum.admin) diff --git a/src/users/users.module.ts b/src/users/users.module.ts index 649165fa5..7c27f60cd 100644 --- a/src/users/users.module.ts +++ b/src/users/users.module.ts @@ -1,12 +1,13 @@ import { Module } from '@nestjs/common'; import { UsersController } from './users.controller'; -import { FilesModule } from 'src/files/files.module'; -import databaseConfig from 'src/database/config/database.config'; -import { DatabaseConfig } from 'src/database/config/database-config.type'; + import { UsersService } from './users.service'; import { DocumentUserPersistenceModule } from './infrastructure/persistence/document/document-persistence.module'; import { RelationalUserPersistenceModule } from './infrastructure/persistence/relational/relational-persistence.module'; +import { DatabaseConfig } from '../database/config/database-config.type'; +import databaseConfig from '../database/config/database.config'; +import { FilesModule } from '../files/files.module'; const infrastructurePersistenceModule = (databaseConfig() as DatabaseConfig) .isDocumentDatabase diff --git a/src/users/users.service.ts b/src/users/users.service.ts index 8b96eb2cb..ae5032c1e 100644 --- a/src/users/users.service.ts +++ b/src/users/users.service.ts @@ -1,17 +1,17 @@ import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; -import { EntityCondition } from 'src/utils/types/entity-condition.type'; -import { IPaginationOptions } from 'src/utils/types/pagination-options'; import { CreateUserDto } from './dto/create-user.dto'; import { NullableType } from '../utils/types/nullable.type'; import { FilterUserDto, SortUserDto } from './dto/query-user.dto'; import { UserRepository } from './infrastructure/persistence/user.repository'; -import { DeepPartial } from 'src/utils/types/deep-partial.type'; import { User } from './domain/user'; -import { StatusEnum } from 'src/statuses/statuses.enum'; -import { RoleEnum } from 'src/roles/roles.enum'; -import { FilesService } from 'src/files/files.service'; import bcrypt from 'bcryptjs'; -import { AuthProvidersEnum } from 'src/auth/auth-providers.enum'; +import { DeepPartial } from 'typeorm'; +import { AuthProvidersEnum } from '../auth/auth-providers.enum'; +import { FilesService } from '../files/files.service'; +import { RoleEnum } from '../roles/roles.enum'; +import { StatusEnum } from '../statuses/statuses.enum'; +import { EntityCondition } from '../utils/types/entity-condition.type'; +import { IPaginationOptions } from '../utils/types/pagination-options'; @Injectable() export class UsersService {