import { Module } from "@nestjs/common"
import { TypeOrmModule } from "@nestjs/typeorm"
import { Transaction } from "./entities/transaction.entity"
import { TransactionController } from "./transaction.controller"
import { TransactionService } from "./transaction.service"
import { TransactionRepository } from "./repository/transaction.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 { Subscription } from "../subscriptions/entities/subscription.entity"
import { SubscriptionRepository } from "../subscriptions/repository/subscription.repository"

@Module({
  imports: [
    TypeOrmModule.forFeature([
      Transaction,
      User,
      UserLogin,
      SendSms,
      PasswordReset,
      Introduction,
      Subscription,
    ]),
  ],
  controllers: [TransactionController],
  providers: [
    TransactionService,
    TransactionRepository,
    AuthService,
    AuthRepository,
    UserLoginRepository,
    SendSmsRepository,
    PasswordResetRepository,
    IntroductionRepository,
    SubscriptionRepository,
  ],
  exports: [TransactionService, TransactionRepository],
})
export class TransactionModule {}
