import { Module } from '@nestjs/common';
import { IpController } from './ip.controller';
import { IpService } from './ip.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { IpEntity } from './entities/ip.entity';
import { CsvImportModule } from '../csv-import/csv-import.module';
import { CityBlockIpv4, CityBlockIpv6 } from '../csv-import/entities/city.entity';
import { GeoName } from '../csv-import/entities/geoname.entity';
import { ApiKeyGuard } from 'common/guards/api-key.guard';
// import { ApiKeyModule } from 'modules/feature/api-key/api-key.module';
// import { RateLimitService } from 'modules/feature/api-key/rate-limit/rate-limit.service';
// import { ApiKeyRepository } from 'modules/feature/api-key/repositories/api-key.repository';
// import { ApiKey } from 'modules/feature/api-key/entities/api-key.entity';
import { RateLimitModule } from 'modules/feature/api-key/rate-limit/rate-limit.module';
import { AsnEntity } from '../csv-import/entities/asn.entity';

@Module({
  imports: [TypeOrmModule.forFeature([IpEntity, CityBlockIpv4, GeoName, AsnEntity, CityBlockIpv6]), CsvImportModule, RateLimitModule],
  controllers: [IpController],
  providers: [IpService, ApiKeyGuard],
  exports: [IpService],
})
export class IpModule {}
