import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { BrandRegisterController } from './brand-register.controller';
import { BrandRegisterService } from './brand-register.services';
import { BrandRegisterRepository } from './brand-register.repository';
import { HttpModule } from '@nestjs/axios';
import { JwtModule } from '@nestjs/jwt';
import { Constants } from '../../common/constants';
import { PassportModule } from '@nestjs/passport';
import { SendMailService } from '../../common/config/send-mail.service';
import { RecaptchaService } from '../../common/config/recaptcha.service';

// import { CommonStrategy } from './strategies/common.strategy';
// import { CommonGuard } from '../auth/guards/common.guard';

// import { UserStrategy } from './strategies/brand.strategy';
// import { UserGuard } from './guards/brand.guard';
import { BrandStrategy } from '../auth/strategies/brand.strategy';
import { BrandGuard } from '../auth/guards/brand.guard';

// import { AdminStrategy } from './strategies/admin.strategy';
// import { AdminGuard } from './guards/admin.guard';

// entities
import { Users } from '../../entities/users.entity';
import { BrandIndustries } from '../../entities/brand-industries.entity';
import { Categories } from 'src/entities/categories.entity';
import { Settings } from 'src/entities/settings.entity';
import { UsersModule } from 'src/common/services/users/users.module';
import { EncryptionModule } from 'src/common/services/encryption/encryption.module';
import { PaymentModule } from '../payment/payment.module';
import { CommonModule } from '../common/common.module';
import { WhatsAppModule } from 'src/common/services/whatsapp/whatsapp.module';

@Module({
  imports: [
    JwtModule.register({
      secret: Constants.jwt_secret,
      signOptions: { expiresIn: '7d' },
    }),
    PassportModule,
    HttpModule,
    UsersModule,
    EncryptionModule,
    PaymentModule,
    CommonModule,
    WhatsAppModule,
    TypeOrmModule.forFeature([Users, BrandIndustries, Categories, Settings])
  ],
  controllers: [BrandRegisterController],
  providers: [BrandRegisterService, BrandRegisterRepository, BrandStrategy, BrandGuard, SendMailService, RecaptchaService],
})
export class BrandRegisterModule { }
