import { Module } from '@nestjs/common';
import { PrismaModule } from '@core/database/prisma/prisma.module';
import { OrganizationModule } from '@modules/organization/organization.module';
import { NotificationModule } from '@core/messaging/notification/notification.module';

// Controllers
import {
  CycleController,
  KpiController,
  Evaluation360Controller,
  CalibrationController,
  GradeConfigController,
  ResultController,
  AnalyticsController,
  Evaluation360TemplateController,
  StrategicObjectiveController,
} from './controllers';

// Services
import {
  CycleService,
  KpiService,
  Evaluation360Service,
  CalibrationService,
  GradeConfigService,
  ResultService,
  AnalyticsService,
  Evaluation360TemplateService,
  StrategicObjectiveService,
} from './services';

@Module({
  imports: [PrismaModule, OrganizationModule, NotificationModule],
  controllers: [
    CycleController,
    KpiController,
    Evaluation360Controller,
    CalibrationController,
    GradeConfigController,
    ResultController,
    AnalyticsController,
    Evaluation360TemplateController,
    StrategicObjectiveController,
  ],
  providers: [
    CycleService,
    KpiService,
    Evaluation360Service,
    CalibrationService,
    GradeConfigService,
    ResultService,
    AnalyticsService,
    Evaluation360TemplateService,
    StrategicObjectiveService,
  ],
  exports: [
    CycleService,
    KpiService,
    Evaluation360Service,
    CalibrationService,
    GradeConfigService,
    ResultService,
    AnalyticsService,
    Evaluation360TemplateService,
    StrategicObjectiveService,
  ],
})
export class PerformanceModule {}
