import { Sequelize, SequelizeOptions } from 'sequelize-typescript';
import {
  CustomerBaseModel,
  CustomerIndividualModel,
  CustomerBusinessModel,
  BusinessContactModel,
  ObjectAddressModel,
  CustomerRegisteredSystemModel,
  CustomerSyncLogModel,
  CustomerSyncPolicyModel,
} from './models';

let sequelize: Sequelize;

function init(sequelizeOptions: SequelizeOptions) {
  sequelize = new Sequelize(sequelizeOptions);

  sequelize.addModels([
    CustomerBaseModel,
    CustomerIndividualModel,
    CustomerBusinessModel,
    BusinessContactModel,
    ObjectAddressModel,
    CustomerRegisteredSystemModel,
    CustomerSyncLogModel,
    CustomerSyncPolicyModel,
  ]);
}

function getConnection() {
  return sequelize;
}

export { init, getConnection };
