import { Module } from '@nestjs/common';
import { AchievementsService } from './achievements.service';
import { AchievementsController } from './achievements.controller';
import { AchievementRepository } from './achievements.repository';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Achievement } from './entities/achievement.entity';
import { ApiLog } from 'src/api-logs/entities/api-log.entity';
import { UserRepository } from 'src/user/user.repository';
import { UserEntity } from 'src/user/entities/user.entity';
import { AppUserRepository } from 'src/app_users/app_users.repository';
import { AppUser } from 'src/app_users/entities/app_user.entity';
import { GroupsRepository } from 'src/groups/groups.repository';
import { Group } from 'src/groups/entities/group.entity';
import { AppUserStepsRepository } from 'src/app_users_steps/app_users_steps.repository';
import { AppUsersStep } from 'src/app_users_steps/entities/app_users_step.entity';
import { UserAchievement } from './entities/user-achievement.entity';
import { StreakRepository } from 'src/streaks/streaks.repository';
import { Streak } from 'src/streaks/entities/streak.entity';
import { UserStreak } from 'src/streaks/entities/user-streak.entity';

@Module({
  imports: [
    TypeOrmModule.forFeature([
      Achievement,
      ApiLog,
      UserEntity,
      AppUser,
      Group,
      AppUsersStep,
      UserAchievement,
      Streak,
      UserStreak,
    ]),
  ],
  controllers: [AchievementsController],
  providers: [
    AchievementsService,
    AchievementRepository,
    UserRepository,
    AppUserRepository,
    GroupsRepository,
    AppUserStepsRepository,
    StreakRepository,
  ],
})
export class AchievementsModule {}
