import { Module } from "@nestjs/common"
import { TypeOrmModule } from "@nestjs/typeorm"
import { RoleSeedService } from "./role-seed.service"
import { Role } from "../../../modules/role/entities/role.entity"
import { RoleModule } from "../../../modules/role/role.module"
import { RoleService } from "../../../modules/role/v1/role.service"
import { RoleRepository } from "../../../modules/role/repositories/role.repository"
import { RolePermission } from "src/modules/role-permission/entities/role-permission.entity"
import { Permission } from "src/modules/permission/entities/permission.entity"
import { TeamMember } from "src/modules/team-member/entities/team_member.entity"
import { Department } from "src/modules/department/entities/department.entity"
import { BusinessVerticalRepository } from "src/modules/business-verticals/repositories/business-verticals.repository"
import { BusinessVertical } from "src/modules/business-verticals/entities/business-verticals.entity"
import { Address } from "src/modules/team-member/entities/address.entity"
import { City } from "src/modules/city/entities/city.entity"
import { State } from "src/modules/state/entities/state.entity"
import { Country } from "src/modules/country/entities/country.entity"
import { Currency } from "src/modules/currency/entities/currency.entity"
import { IdProof } from "src/modules/team-member/entities/id-proof.entity"
import { Modules } from "src/modules/module/entities/module.entity"
import { Auth } from "src/modules/auth/entities/auth.entity"
import { AuthService } from "src/modules/auth/v1/auth.service"
import { AuthRepository } from "src/modules/auth/repositories/auth.repository"
import { UserLogin } from "src/modules/auth/entities/user-login.entity"
import { UserLoginRepository } from "src/modules/auth/repositories/user-login.repository"
import { UserOldPasswordRepository } from "src/modules/auth/repositories/old-passwords.repository"
import { RolePermissionRepository } from "src/modules/role-permission/repositories/role-permission.repository"
import { UserOldPassword } from "src/modules/auth/entities/user-old-password.entity"

@Module({
  imports: [
    TypeOrmModule.forFeature([
      Role,
      RolePermission,
      Permission,
      TeamMember,
      Department,
      BusinessVertical,
      Address,
      City,
      State,
      Country,
      Currency,
      IdProof,
      Modules,
      Auth,
      UserLogin,
      UserOldPassword,
    ]),
    RoleModule,
  ],
  providers: [
    RoleSeedService,
    RoleService,
    RoleRepository,
    BusinessVerticalRepository,
    AuthService,
    AuthRepository,
    UserLoginRepository,
    UserOldPasswordRepository,
    RolePermissionRepository,
  ],
  exports: [RoleSeedService],
})
export class RoleSeedModule {}
