import { Module } from '@nestjs/common';
import { CustomerBaseSyncService } from '../components/customer-base-sync-service/customer-base-sync-service';
import { CustomerBaseWriter } from '../components/customer-base-writer/customer-base-writer';
import { SyncLogger } from '../components/sync-logger/sync-logger';
import { getConnection } from '../database';

export const CB_SEQUELIZE = Symbol('CB_SEQUELIZE');

@Module({
  providers: [
    { provide: CB_SEQUELIZE, useFactory: () => getConnection() },
    {
      provide: CustomerBaseWriter,
      useFactory: (seq) => new CustomerBaseWriter(seq),
      inject: [CB_SEQUELIZE],
    },
    SyncLogger,
    CustomerBaseSyncService,
  ],
  exports: [CustomerBaseSyncService],
})
export class CustomerBaseModule {}
