import { CryptoModule } from '@lib/crypto/src/crypto.module';
import { ExcelModule } from '@lib/excel/src';
import { SmartroModule } from '@libs/smartro';
import { forwardRef, Module } from '@nestjs/common';
import { AlimtalkModule } from '../alimtalk/alimtalk.module';
import { AuditModule } from '../audit/audit.module';
import { MoneyAdminController } from './money-admin.controller';
import { MoneyPublicController } from './money-public.controller';
import { MoneyController } from './money.controller';
import { MoneyRepository } from './money.repository';
import { MoneyService } from './money.service';

@Module({
  imports: [
    CryptoModule,
    ExcelModule,
    SmartroModule,
    //* 감사 기록. 내구 행은 지급 트랜잭션 **안**에서 그 `tx` 로 쓰고, stdout 줄은 트랜잭션이
    //*  **정상 반환한 뒤에** 낸다. AuditModule 은 imports 가 비어 있어 순환이 생기지 않는다.
    AuditModule,
    forwardRef(() => AlimtalkModule),
  ],
  controllers: [MoneyController, MoneyAdminController, MoneyPublicController],
  providers: [MoneyService, MoneyRepository],
  exports: [MoneyService, MoneyRepository],
})
export class MoneyModule {}
