import { Module } from "@nestjs/common"
import { TypeOrmModule } from "@nestjs/typeorm"
import { Auth } from "../../../modules/auth/entities/auth.entity"
import { AuthModule } from "../../../modules/auth/auth.module"
import { AdminSeedService } from "./admin-seed.service"
import { AuthService } from "../../../modules/auth/v1/auth.service"
import { UserLoginRepository } from "../../../modules/auth/repositories/user-login.repository"
import { Role } from "../../../modules/role/entities/role.entity"
import { AuthRepository } from "../../../modules/auth/repositories/auth.repository"
import { UserLogin } from "../../../modules/auth/entities/user-login.entity"
import { UserOldPassword } from "src/modules/auth/entities/user-old-password.entity"
import { UserOldPasswordRepository } from "src/modules/auth/repositories/old-passwords.repository"
import { RolePermissionRepository } from "src/modules/role-permission/repositories/role-permission.repository"
import { RolePermission } from "src/modules/role-permission/entities/role-permission.entity"
import { TeamMemberRepository } from "src/modules/team-member/repositories/team_member.repository"
import { TeamMember } from "src/modules/team-member/entities/team_member.entity"
import { TeamMemberModule } from "src/modules/team-member/team-member.module"
import { ChargeType } from "src/modules/charges-type/entities/charges-type.entity"
import { TripServicePricing } from "src/modules/trips/entities/trip-service-pricing.entity"
import { AddOn } from "src/modules/add-ons/entities/add-ons.entity"
import { TripAddonsPricing } from "src/modules/trips/entities/trip-addons-pricing.entity"
import { VehicleType } from "src/modules/vehicle-type/entities/vehicle-type.entity"
import { TripBasePricing } from "src/modules/trips/entities/trip-base-pricing.entity"
import { RoleRepository } from "src/modules/role/repositories/role.repository"

@Module({
  imports: [
    TypeOrmModule.forFeature([
      Auth,
      Role,
      UserLogin,
      UserOldPassword,
      RolePermission,
      TeamMember,
      RolePermission,
      ChargeType,
      TripServicePricing,
      AddOn,
      TripAddonsPricing,
      VehicleType,
      TripBasePricing,
      Role,
    ]),
    AuthModule,
    TeamMemberModule,
  ],
  providers: [
    AdminSeedService,
    AuthService,
    UserLoginRepository,
    AuthRepository,
    UserOldPasswordRepository,
    RolePermissionRepository,
    TeamMemberRepository,
    RoleRepository,
  ],
  exports: [AdminSeedService],
})
export class AdminSeedModule {}
