universo-platform-3d
77 строк · 2.4 Кб
1import { SpaceObjectModule } from './../space-object/space-object.module'
2import { LoggerModule } from './../util/logger/logger.module'
3import { forwardRef, Module } from '@nestjs/common'
4import { AssetService } from './asset.service'
5import { AssetController } from './asset.controller'
6import { Asset, AssetSchema } from './asset.schema'
7import { MongooseModule } from '@nestjs/mongoose'
8import { FileUploadModule } from '../util/file-upload/file-upload.module'
9import { AssetSearch } from './asset.search'
10import { PaginationService } from '../util/pagination/pagination.service'
11import { AssetGateway } from './asset.gateway'
12import { Material, MaterialSchema } from './material.schema'
13import { Texture, TextureSchema } from './texture.schema'
14import { MapAsset, MapSchema } from './map.schema'
15import {
16SpaceObject,
17SpaceObjectSchema
18} from '../space-object/space-object.schema'
19import { RoleModule } from '../roles/role.module'
20import {
21PurchaseOption,
22PurchaseOptionSchema
23} from '../marketplace/purchase-option.subdocument.schema'
24import { UserModule } from '../user/user.module'
25import { AuthGuardFirebase } from '../auth/auth.guard'
26import { StorageModule } from '../storage/storage.module'
27import { StripeModule } from '../stripe/stripe.module'
28import { GodotModule } from '../godot-server/godot.module'
29
30@Module({
31imports: [
32MongooseModule.forFeature([
33{ name: PurchaseOption.name, schema: PurchaseOptionSchema }
34]),
35LoggerModule,
36RoleModule,
37forwardRef(() => SpaceObjectModule), // to fix circular dependency
38GodotModule,
39MongooseModule.forFeature([
40{
41name: Asset.name,
42schema: AssetSchema,
43discriminators: [
44{
45name: Material.name,
46schema: MaterialSchema
47},
48{
49name: Texture.name,
50schema: TextureSchema
51},
52{
53name: MapAsset.name,
54schema: MapSchema
55}
56]
57}
58]),
59MongooseModule.forFeature([
60{ name: SpaceObject.name, schema: SpaceObjectSchema }
61]),
62forwardRef(() => UserModule),
63forwardRef(() => FileUploadModule),
64StorageModule // to fix circular dependency
65],
66controllers: [AssetController],
67providers: [
68AssetService,
69AssetSearch,
70PaginationService,
71AssetGateway,
72PurchaseOption,
73AuthGuardFirebase
74],
75exports: [AssetService]
76})
77export class AssetModule {}
78