import { Module } from "@nestjs/common"
import { TypeOrmModule } from "@nestjs/typeorm"
import { AddOnsPricing } from "src/modules/add-ons-pricing/entities/add-ons-pricing.entity"
import { AddOnsPricingRepository } from "src/modules/add-ons-pricing/repositories/add-ons-pricing.repository"
import { AddOn } from "src/modules/add-ons/entities/add-ons.entity"
import { AddOnRepository } from "src/modules/add-ons/repositories/add-ons.repository"
import { Auth } from "src/modules/auth/entities/auth.entity"
import { UserLogin } from "src/modules/auth/entities/user-login.entity"
import { UserOldPassword } from "src/modules/auth/entities/user-old-password.entity"
import { AuthRepository } from "src/modules/auth/repositories/auth.repository"
import { UserOldPasswordRepository } from "src/modules/auth/repositories/old-passwords.repository"
import { UserLoginRepository } from "src/modules/auth/repositories/user-login.repository"
import { BusinessVerticalsService } from "src/modules/business-verticals/v1/business-verticals.service"
import { BusinessVertical } from "src/modules/business-verticals/entities/business-verticals.entity"
import { BusinessVerticalRepository } from "src/modules/business-verticals/repositories/business-verticals.repository"
import { CancelReason } from "src/modules/cancel-reasons/entities/cancel-reasons.entity"
import { CancelReasonRepository } from "src/modules/cancel-reasons/repositories/cancel-reasons-repository"
import { ChargeType } from "src/modules/charges-type/entities/charges-type.entity"
import { ChargesTypeRepository } from "src/modules/charges-type/repositories/charges-type.repository"
import { City } from "src/modules/city/entities/city.entity"
import { CityRepository } from "src/modules/city/repositories/city.repository"
import { ClientCompanyContact } from "src/modules/client-company-contacts/entities/client-company-contact.entity"
import { ClientCompanyContactRepository } from "src/modules/client-company-contacts/repositories/client-company-contacts.repository"
import { ClientCompanyContract } from "src/modules/client-contract/entities/client-contract.entity"
import { ClientCompanyContractRepository } from "src/modules/client-contract/repositories/client-contarct.repository"
import { ClientType } from "src/modules/client-type/entities/client-type.entity"
import { ClientTypeRepository } from "src/modules/client-type/repositories/client-type.repository"
import { ClientsCompany } from "src/modules/clients-companies/entities/clients-company.entity"
import { ClientCompanyRepository } from "src/modules/clients-companies/repositories/clients-companies.repository"
import { Country } from "src/modules/country/entities/country.entity"
import { CountryRepository } from "src/modules/country/repositories/country.repository"
import { Currency } from "src/modules/currency/entities/currency.entity"
import { CurrencyRepository } from "src/modules/currency/repositories/currency.repository"
import { CustomerTag } from "src/modules/customers-tags/entities/customer_tags.entity"
import { CustomerTagRepository } from "src/modules/customers-tags/repositories/customer_tags.repository"
import { Customer } from "src/modules/customers/entities/customer.entity"
import { CustomerPhoneNumbers } from "src/modules/customers/entities/customer_phone_number.entity"
import { CustomerRepository } from "src/modules/customers/repositories/customers.repository"
import { PhoneNumbersRepository } from "src/modules/customers/repositories/phone-numbers.repository"
import { Department } from "src/modules/department/entities/department.entity"
import { DepartmentRepository } from "src/modules/department/repositories/department.repository"
import { DriverAvailability } from "src/modules/driver-availability/entities/driver-availability.entity"
import { DriverAvailabilityRepository } from "src/modules/driver-availability/repositories/driver-availability.repository"
import { Escort } from "src/modules/escorts/entities/escort.entity"
import { EscortRepository } from "src/modules/escorts/repositories/escort.repository"
import { DriverFleetHistory } from "src/modules/fleet-management/entities/driver-fleet-history.entity"
import { FleetManagement } from "src/modules/fleet-management/entities/fleet-management.entity"
import { DriverFleetHistoryRepository } from "src/modules/fleet-management/repositories/driver-fleet-history.repository"
import { FleetManagementRepository } from "src/modules/fleet-management/repositories/fleet-management.repository"
import { HospitalContact } from "src/modules/hospital-contacts/entities/hospital-contact.entity"
import { HospitalContactRepository } from "src/modules/hospital-contacts/repositories/hospital-contact.repository"
import { Hospital } from "src/modules/hospitals/entities/hospital.entity"
import { HospitalRepository } from "src/modules/hospitals/repositories/hospital.repository"
import { IncidentImage } from "src/modules/incident-reporting/entities/incident-images.entity"
import { IncidentReporting } from "src/modules/incident-reporting/entities/incident-reporting.entity"
import { IncidentType } from "src/modules/incident-reporting/entities/incident-type.entity"
import { IncidentImageRepository } from "src/modules/incident-reporting/repositories/incident-image.repository"
import { IncidentReportingRepository } from "src/modules/incident-reporting/repositories/incident-report.repository"
import { IncidentTypeRepository } from "src/modules/incident-reporting/repositories/incident-types.repository"
import { InspectionAnswerOption } from "src/modules/inspection-questions/entities/inspection-answer-option.entity"
import { InspectionFleetReport } from "src/modules/inspection-questions/entities/inspection-fleet-report.entity"
import { InspectionQuestion } from "src/modules/inspection-questions/entities/inspection-questions.entity"
import { InspectionFleetAnswer } from "src/modules/inspection-questions/entities/inspection-report-answers.entity"
import { InspectionAnswerOptionRepository } from "src/modules/inspection-questions/repositories/inspection-answer-options.repository"
import { InspectionFleetAnswerRepository } from "src/modules/inspection-questions/repositories/inspection-fleet-answer.repository"
import { InspectionFleetReportRepository } from "src/modules/inspection-questions/repositories/inspection-fleet-report.repository"
import { InspectionQuestionsRepository } from "src/modules/inspection-questions/repositories/inspection-questions.repository"
import { MeetAndGreetPricing } from "src/modules/meet-greet-pricing/entities/meet-greet-pricing.entity"
import { MeetAndGreetPricingRepository } from "src/modules/meet-greet-pricing/repositories/meet-greet-pricing.repository"
import { Modules } from "src/modules/module/entities/module.entity"
import { ModuleRepository } from "src/modules/module/repositories/module.repository"
import { Notification } from "src/modules/notification/entities/notification.entity"
import { NotificationRepository } from "src/modules/notification/repositories/notification.repository"
import { Permission } from "src/modules/permission/entities/permission.entity"
import { PermissionRepository } from "src/modules/permission/repositories/permission.repository"
import { Plan } from "src/modules/plans/entities/plan.entity"
import { PricingPlanRepository } from "src/modules/plans/repositories/plan.repository"
import { Rating } from "src/modules/rating/entities/rating.entity"
import { RatingRepository } from "src/modules/rating/repositories/rating.repository"
import { RolePermission } from "src/modules/role-permission/entities/role-permission.entity"
import { RolePermissionRepository } from "src/modules/role-permission/repositories/role-permission.repository"
import { Role } from "src/modules/role/entities/role.entity"
import { RoleRepository } from "src/modules/role/repositories/role.repository"
import { ServicePricing } from "src/modules/service-pricing/entities/service-pricing.entity"
import { ServicePricingRepository } from "src/modules/service-pricing/repositories/service-pricing.repository"
import { State } from "src/modules/state/entities/state.entity"
import { StateRepository } from "src/modules/state/repositories/state.repository"
import { Address } from "src/modules/team-member/entities/address.entity"
import { IdProof } from "src/modules/team-member/entities/id-proof.entity"
import { Language } from "src/modules/team-member/entities/languages.entity"
import { TeamMember } from "src/modules/team-member/entities/team_member.entity"
import { AddressRepository } from "src/modules/team-member/repositories/address.repository"
import { IdProofRepository } from "src/modules/team-member/repositories/id-proof.repository"
import { LanguagesRepository } from "src/modules/team-member/repositories/languages.repository"
import { TeamMemberRepository } from "src/modules/team-member/repositories/team_member.repository"
import { TripIntermediateStop } from "src/modules/trip-intermediate-stops/entities/trip-intermediate-stop.entity"
import { TripIntermediateStopRepository } from "src/modules/trip-intermediate-stops/repositories/trip-intermediate-stop.repository"
import { TripFleetAssignment } from "src/modules/trips/entities/fleet-trip-management.entity"
import { TripAddonsPricing } from "src/modules/trips/entities/trip-addons-pricing.entity"
import { TripBabySeat } from "src/modules/trips/entities/trip-baby-seat.entity"
import { TripBasePricing } from "src/modules/trips/entities/trip-base-pricing.entity"
import { TripCancellation } from "src/modules/trips/entities/trip-cancellations.entity"
import { TripServicePricing } from "src/modules/trips/entities/trip-service-pricing.entity"
import { TripType } from "src/modules/trips/entities/trip-type.entity"
import { Trip } from "src/modules/trips/entities/trip.entity"
import { TripAddOnsPricingRepository } from "src/modules/trips/repositories/trip-addons-pricing.repository"
import { TripBabySeatRepository } from "src/modules/trips/repositories/trip-baby-repository"
import { TripCancelRepository } from "src/modules/trips/repositories/trip-cancel-repository"
import { TripFleetRepository } from "src/modules/trips/repositories/trip-fleet-repository"
import { TripTypeRepository } from "src/modules/trips/repositories/trip-type.repository"
import { TripRepository } from "src/modules/trips/repositories/trip.repository"
import { TripServicePricingRepository } from "src/modules/trips/repositories/trips-service-pricing.repository"
import { VehicleInsurance } from "src/modules/vehicle-insurance/entities/vehicle-insurance.entity"
import { VehicleInsuranceRepository } from "src/modules/vehicle-insurance/repositories/vehicle-insurance.repository"
import { VehicleMaintenance } from "src/modules/vehicle-maintenance/entities/vehicle-maintenance.entity"
import { VehicleMaintenanceRepository } from "src/modules/vehicle-maintenance/repositories/vehicle-maintenance.repository"
import { VehicleManufacturer } from "src/modules/vehicle-manufacturer/entities/vehicle-manufacturer.entity"
import { VehicleManufacturerRepository } from "src/modules/vehicle-manufacturer/repositories/vehicle-manufacturer.repository"
import { VehicleModel } from "src/modules/vehicle-model/entities/vehicle-model.entity"
import { VehicleModelRepository } from "src/modules/vehicle-model/repositories/vehicle-model.repository"
import { VehiclePricing } from "src/modules/vehicle-pricing/entities/vehicle-pricing.entity"
import { VehiclePricingRepository } from "src/modules/vehicle-pricing/repositories/vehicle-pricing.repository"
import { VehicleStatus } from "src/modules/vehicle-status/entities/vehicle-status.entity"
import { VehicleStatusRepository } from "src/modules/vehicle-status/repositories/vehicle-status.repository"
import { VehicleType } from "src/modules/vehicle-type/entities/vehicle-type.entity"
import { VehicleRepository } from "src/modules/vehicle-type/repositories/vehicle-type.repository"
import { BusinessVerticalSeedService } from "./business-verticals-seed.service"

@Module({
  imports: [
    TypeOrmModule.forFeature([
      BusinessVertical,
      TeamMember,
      Role,
      Department,
      Language,
      Auth,
      Address,
      City,
      State,
      Country,
      Currency,
      Hospital,
      HospitalContact,
      Customer,
      ClientsCompany,
      ClientCompanyContact,
      ClientType,
      ClientCompanyContract,
      VehicleType,
      CustomerTag,
      Escort,
      Trip,
      CustomerPhoneNumbers,
      TripCancellation,
      CancelReason,
      Rating,
      VehicleModel,
      AddOn,
      AddOnsPricing,
      Plan,
      TripAddonsPricing,
      VehicleManufacturer,
      FleetManagement,
      VehicleStatus,
      VehicleInsurance,
      VehicleMaintenance,
      TripFleetAssignment,
      DriverFleetHistory,
      InspectionFleetReport,
      InspectionAnswerOption,
      InspectionQuestion,
      InspectionFleetAnswer,
      IncidentReporting,
      IncidentType,
      IncidentImage,
      VehiclePricing,
      TripBasePricing,
      ServicePricing,
      ChargeType,
      TripServicePricing,
      TripType,
      MeetAndGreetPricing,
      TripIntermediateStop,
      TripBabySeat,
      IdProof,
      DriverAvailability,
      UserLogin,
      Notification,
      UserOldPassword,
      RolePermission,
      Modules,
      Permission,
    ]),
  ],
  providers: [
    BusinessVerticalSeedService,
    BusinessVerticalsService,
    BusinessVerticalRepository,
    TeamMemberRepository,
    RoleRepository,
    DepartmentRepository,
    LanguagesRepository,
    AuthRepository,
    AddressRepository,
    CityRepository,
    StateRepository,
    CountryRepository,
    CurrencyRepository,
    HospitalRepository,
    HospitalContactRepository,
    CustomerRepository,
    ClientCompanyRepository,
    ClientCompanyContactRepository,
    ClientTypeRepository,
    ClientCompanyContractRepository,
    VehicleRepository,
    CustomerTagRepository,
    EscortRepository,
    TripRepository,
    PhoneNumbersRepository,
    TripCancelRepository,
    CancelReasonRepository,
    RatingRepository,
    VehicleModelRepository,
    AddOnRepository,
    AddOnsPricingRepository,
    PricingPlanRepository,
    TripAddOnsPricingRepository,
    VehicleManufacturerRepository,
    FleetManagementRepository,
    VehicleStatusRepository,
    VehicleInsuranceRepository,
    VehicleMaintenanceRepository,
    TripFleetRepository,
    DriverFleetHistoryRepository,
    InspectionFleetReportRepository,
    InspectionAnswerOptionRepository,
    InspectionQuestionsRepository,
    InspectionFleetAnswerRepository,
    IncidentReportingRepository,
    IncidentTypeRepository,
    IncidentImageRepository,
    VehiclePricingRepository,
    ServicePricingRepository,
    ChargesTypeRepository,
    TripServicePricingRepository,
    TripTypeRepository,
    MeetAndGreetPricingRepository,
    TripIntermediateStopRepository,
    TripBabySeatRepository,
    IdProofRepository,
    DriverAvailabilityRepository,
    UserLoginRepository,
    NotificationRepository,
    UserOldPasswordRepository,
    RolePermissionRepository,
    ModuleRepository,
    PermissionRepository,
  ],
  exports: [BusinessVerticalSeedService],
})
export class BusinessVerticalSeedModule {}
