import { Module } from '@nestjs/common';
import { PrismaModule } from './prisma/prisma.module';
import { TelegramModule } from './telegram/telegram.module';
import { GraphQLModule } from '@nestjs/graphql';
import { ResolverModule } from './resolvers/resolver.module';
import { GroupAuthGuard } from './auth/group-auth.guard';
import { ImageController } from './images.controller';
import { WebAuthGuard } from './auth/web-auth.guard';

@Module({
    imports: [
        TelegramModule,
        PrismaModule,
        ResolverModule,
        GraphQLModule.forRoot({
            autoSchemaFile: true,
            playground: true,
            subscriptions: {
                'graphql-ws': true,
                'subscriptions-transport-ws': true,
            },
            context: (ctx) => ({
                req: ctx.request || ctx.req,
            }),
        }),
    ],
    providers: [GroupAuthGuard, WebAuthGuard],
    controllers: [ImageController],
})
export class AppModule {}