import { Global, Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { FeatureFlagModule } from 'src/engine/core-modules/feature-flag/feature-flag.module'; import { TwentyConfigModule } from 'src/engine/core-modules/twenty-config/twenty-config.module'; import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity'; import { DataSourceModule } from 'src/engine/metadata-modules/data-source/data-source.module'; import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity'; import { PermissionsModule } from 'src/engine/metadata-modules/permissions/permissions.module'; import { UserWorkspaceRoleEntity } from 'src/engine/metadata-modules/role/user-workspace-role.entity'; import { WorkspaceFeatureFlagsMapCacheModule } from 'src/engine/metadata-modules/workspace-feature-flags-map-cache/workspace-feature-flags-map-cache.module'; import { WorkspaceMetadataCacheModule } from 'src/engine/metadata-modules/workspace-metadata-cache/workspace-metadata-cache.module'; import { WorkspacePermissionsCacheModule } from 'src/engine/metadata-modules/workspace-permissions-cache/workspace-permissions-cache.module'; import { entitySchemaFactories } from 'src/engine/twenty-orm/factories'; import { EntitySchemaFactory } from 'src/engine/twenty-orm/factories/entity-schema.factory'; import { TwentyORMGlobalManager } from 'src/engine/twenty-orm/twenty-orm-global.manager'; import { TwentyORMManager } from 'src/engine/twenty-orm/twenty-orm.manager'; import { WorkspaceCacheStorageModule } from 'src/engine/workspace-cache-storage/workspace-cache-storage.module'; import { PgPoolSharedModule } from './pg-shared-pool/pg-shared-pool.module'; @Global() @Module({ imports: [ TypeOrmModule.forFeature( [ObjectMetadataEntity, UserWorkspaceRoleEntity, Workspace], 'core', ), DataSourceModule, WorkspaceCacheStorageModule, WorkspaceMetadataCacheModule, PermissionsModule, WorkspaceFeatureFlagsMapCacheModule, WorkspacePermissionsCacheModule, FeatureFlagModule, TwentyConfigModule, PgPoolSharedModule, ], providers: [ ...entitySchemaFactories, TwentyORMManager, TwentyORMGlobalManager, ], exports: [ EntitySchemaFactory, TwentyORMManager, TwentyORMGlobalManager, PgPoolSharedModule, ], }) export class TwentyORMModule {}