import { Module } from "@nestjs/common";
import { EmailToIdResolver } from "src/common/mappers/email-id.mapper";
import { EmployeesController } from "src/identity-and-account/employees/employees.controller";
import { EmployeesModule } from "src/identity-and-account/employees/employees.module";
import { EmployeesGetService } from "src/identity-and-account/employees/services/employees-get.service";
import { PreferencesController } from "src/identity-and-account/preferences/preferences.controller";
import { PreferencesModule } from "src/identity-and-account/preferences/preferences.module";
import { PreferencesService } from "src/identity-and-account/preferences/preferences.service";
import { ModuleAccessModule } from "src/identity-and-account/user-module-access/module-access.module";
import { ModuleAccessController } from "src/identity-and-account/user-module-access/module-access.controller";
import { AccessGetService } from "src/identity-and-account/user-module-access/services/module-access-get.service";
import { AccessUpdateService } from "src/identity-and-account/user-module-access/services/module-access-update.service";
import { UsersService } from "src/identity-and-account/users-management/services/users.service";
import { UsersModule } from "src/identity-and-account/users-management/users.module";
import { HomePageModule } from "src/identity-and-account/help/help-page.module";
import { EmployeesCreateService } from "src/identity-and-account/employees/services/employees-create.service";
import { EmployeesUpdateService } from "src/identity-and-account/employees/services/employees-update.service";
import { HomePageController } from "src/identity-and-account/help/help-page.controller";
import { HomePageService } from "src/identity-and-account/help/help-page.service";

@Module({
    imports: [
        UsersModule,
        EmployeesModule,
        PreferencesModule,
        ModuleAccessModule,
        HomePageModule,
    ],
    controllers: [
        EmployeesController,
        PreferencesController,
        ModuleAccessController,
        HomePageController,
    ],
    providers: [
        EmployeesGetService,
        EmployeesCreateService,
        EmployeesUpdateService,
        PreferencesService,
        UsersService,
        EmailToIdResolver,
        AccessUpdateService,
        AccessGetService,
        HomePageService,
    ],
})
export class IdentityAndAccountModule { };
