import { Module } from "@nestjs/common"
import { TypeOrmModule } from "@nestjs/typeorm"
import { CompanySubscription } from "../company/entities/company-subscription.entity"
import { Company } from "../company/entities/company.entity"
import { CompanySubscriptionRepository } from "../company/repositories/company-subscription.repository"
import { Employee } from "../employees/entities/employee.entity"
import { EmployeeRepository } from "../employees/repositories/employee.repository"
import { RolePermission } from "../role-permissions/entities/role-permission.entity"
import { RolePermissionRepository } from "../role-permissions/repositories/role-permission.repository"
import { RolePermissionsService } from "../role-permissions/role-permissions.service"
import { Role } from "../role/entities/role.entity"
import { RoleRepository } from "../role/repositories/role.repository"
import { RoleService } from "../role/role.service"
import { MisBusinessKpis } from "./entities/mis-business-kpis.entity"
import { MisController } from "./mis.controller"
import { MisService } from "./mis.service"
import { MisBusinessKpiRepository } from "./repositories/business-kpi.repository"
import { MisReport } from "./entities/mis-report.entity"
import { MisReportRepository } from "./repositories/mis-report.repository"
import { MisReportRatingFeedback } from "./entities/mis-report-rating-feedback.entity"
import { MisReportRatingFeedbackRepository } from "./repositories/mis-report-rating-feedback.repository"
import { BusinessKpiRating } from "./entities/business-kpi-rating.entity"
import { BusinessKpiRatingRepository } from "./repositories/business-kpi-rating.repository"
import { CompanySetting } from "../company/entities/company-settings.entity"
import { CompanySettingsRepository } from "../company/repositories/company-settings.repository"

@Module({
  imports: [
    TypeOrmModule.forFeature([
      MisBusinessKpis,
      Employee,
      Role,
      RolePermission,
      Company,
      CompanySubscription,
      CompanySetting,
      MisReport,
      MisReportRatingFeedback,
      BusinessKpiRating,
    ]),
  ],
  controllers: [MisController],
  providers: [
    MisService,
    EmployeeRepository,
    RoleService,
    RoleRepository,
    RolePermissionsService,
    RolePermissionRepository,
    CompanySubscriptionRepository,
    CompanySettingsRepository,
    MisBusinessKpiRepository,
    MisReportRepository,
    MisReportRatingFeedbackRepository,
    BusinessKpiRatingRepository,
  ],
  exports: [
    TypeOrmModule,
    MisService,
    MisBusinessKpiRepository,
    MisReportRepository,
    MisReportRatingFeedbackRepository,
    BusinessKpiRatingRepository,
  ],
})
export class MisModule {}
