import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo';
import * as path from 'path';
import { resolvers } from './resolvers';
import { SharedModule } from '../shared/shared.module';
import { pgRepositoryProviders } from '../pg-adapter/pg-repository-providers';

let playground = true;

if (process.env.NODE_ENV === 'production') {
  playground = false;
}

@Module({
  imports: [
    GraphQLModule.forRoot<ApolloDriverConfig>({
      driver: ApolloDriver,
      playground,
      autoSchemaFile: path.join(process.cwd(), 'src/schema.gql'),
    }),
    SharedModule,
  ],
  providers: [...resolvers, ...pgRepositoryProviders],
})
export class GraphQlAdapterModule {}
