import { Module } from "@nestjs/common";
import { MongooseModule } from "@nestjs/mongoose";
import { WorkoutSessionController } from "./workout-session.controller";
import { WorkoutSessionService } from "./workout-session.service";
import {
  WorkoutSession,
  WorkoutSessionSchema,
} from "./schemas/workout-session.schema";
import {
  TrainingPlan,
  TrainingPlanSchema,
} from "src/training-plan/schemas/training-plan.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 {
  Performance,
  PerformanceSchema,
} from "src/performance/schemas/performance.schema";
import {
  ManualPerformance,
  ManualPerformanceSchema,
} from "src/strength/schemas/manual-performance.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({
  imports: [
    MongooseModule.forFeature([
      { name: WorkoutSession.name, schema: WorkoutSessionSchema },
      { name: TrainingPlan.name, schema: TrainingPlanSchema },
      { name: Exercise.name, schema: ExerciseSchema },
      { name: ExerciseCategory.name, schema: ExerciseCategorySchema },
      { name: User.name, schema: UserSchema },
      { name: Performance.name, schema: PerformanceSchema },
      { name: ManualPerformance.name, schema: ManualPerformanceSchema },
    ]),
  ],
  controllers: [WorkoutSessionController],
  providers: [
    WorkoutSessionService,
    ResponseService,
    TranslationService,
    JwtUtilsService,
  ],
  exports: [WorkoutSessionService],
})
export class WorkoutSessionModule {}
