import { Module } from "@nestjs/common";
import { MongooseModule } from "@nestjs/mongoose";
import { StrengthController } from "./strength.controller";
import { StrengthService } from "./strength.service";
import {
  ManualPerformance,
  ManualPerformanceSchema,
} from "./schemas/manual-performance.schema";
import {
  Performance,
  PerformanceSchema,
} from "src/performance/schemas/performance.schema";
import {
  WorkoutSession,
  WorkoutSessionSchema,
} from "src/workout-session/schemas/workout-session.schema";
import { Exercise, ExerciseSchema } from "src/exercise/schemas/exercise.schema";
import {
  ExerciseCategory,
  ExerciseCategorySchema,
} from "src/exercise/schemas/exercise-category.schema";
import { User, UserSchema } from "src/user/schemas/user.schema";
import { ResponseService } from "src/common/service/response.service";
import { TranslationService } from "src/common/service/translation.service";
import { JwtUtilsService } from "src/common/service/jwt.util.service";

@Module({
  controllers: [StrengthController],
  providers: [
    StrengthService,
    ResponseService,
    TranslationService,
    JwtUtilsService,
  ],
  imports: [
    MongooseModule.forFeature([
      { name: ManualPerformance.name, schema: ManualPerformanceSchema },
      { name: Performance.name, schema: PerformanceSchema },
      { name: WorkoutSession.name, schema: WorkoutSessionSchema },
      { name: Exercise.name, schema: ExerciseSchema },
      { name: ExerciseCategory.name, schema: ExerciseCategorySchema },
      { name: User.name, schema: UserSchema },
    ]),
  ],
  exports: [StrengthService],
})
export class StrengthModule {}
