import { Module } from "@nestjs/common"
import { TypeOrmModule } from "@nestjs/typeorm"
import { StripeSettings } from "./entities/stripe-settings.entity"
import { StripeSettingsController } from "./stripe-settings.controller"
import { StripeSettingsService } from "./stripe-settings.service"
import { StripeSettingsRepository } from "./repository/stripe-settings.repository"
import { AuthService } from "../auth/auth.service"
import { AuthRepository } from "../auth/repositories/auth.repository"
import { UserLoginRepository } from "../auth/repositories/user-login.repository"
import { User } from "../users/entity/users.entity"
import { UserLogin } from "../auth/entities/user-login.entity"
import { SendSms } from "../auth/entities/send_sms.entity"
import { PasswordReset } from "../password/entities/password-resets.entity"
import { SendSmsRepository } from "../auth/repositories/send-sms.repository"
import { PasswordResetRepository } from "../password/repository/password-resets.repository"
import { IntroductionRepository } from "../introductions/repository/introductions.repository"
import { Introduction } from "../introductions/entities/introductions.entity"
import { SubscriptionPlan } from "../subscription-plans/entities/subscription-plan.entity"
import { Subscription } from "../subscriptions/entities/subscription.entity"
import { SubscriptionRepository } from "../subscriptions/repository/subscription.repository"
import { SubscriptionPlanRepository } from "../subscription-plans/repository/subscription-plan.repository"

@Module({
  imports: [
    TypeOrmModule.forFeature([
      StripeSettings,
      User,
      UserLogin,
      SendSms,
      PasswordReset,
      Introduction,
      SubscriptionPlan,
      Subscription,
    ]),
  ],
  controllers: [StripeSettingsController],
  providers: [
    StripeSettingsService,
    StripeSettingsRepository,
    SubscriptionPlanRepository,
    AuthService,
    AuthRepository,
    UserLoginRepository,
    SendSmsRepository,
    PasswordResetRepository,
    IntroductionRepository,
    SubscriptionRepository,
  ],
  exports: [StripeSettingsService, StripeSettingsRepository],
})
export class StripeSettingsModule {}
