import { Module } from "@nestjs/common";
import { UsersService } from "./application/users.service.js";
import { UserAuthRepository } from "./infra/user-auth.repository.js";
import { UserProfileAggregator } from "./infra/user-profile.service.js";
import { UsersController } from "./users.controller.js";
import { WhmcsModule } from "@bff/integrations/whmcs/whmcs.module.js";
import { SalesforceModule } from "@bff/integrations/salesforce/salesforce.module.js";
import { MappingsModule } from "@bff/modules/id-mappings/mappings.module.js";
import { PrismaModule } from "@bff/infra/database/prisma.module.js";

@Module({
  imports: [PrismaModule, WhmcsModule, SalesforceModule, MappingsModule],
  controllers: [UsersController],
  providers: [UsersService, UserAuthRepository, UserProfileAggregator],
  exports: [UsersService, UserAuthRepository, UserProfileAggregator],
})
export class UsersModule {}
