import { Sequelize, SequelizeOptions } from 'sequelize-typescript';
import { ApplicationLog } from '@tomei/log';

let sequelize: Sequelize;

function init(sequelizeOptions: SequelizeOptions) {
  try {
    sequelize = new Sequelize(sequelizeOptions);

    sequelize.addModels([__dirname + '/models']);
  } catch (error) {
    ApplicationLog.error({
      error,
      source: 'live-price',
      className: 'Database',
      methodName: 'init',
    });
    throw error;
  }
}

function getConnection() {
  if (!sequelize) {
    const error = new Error(
      'Database connection not initialized. Call init() first.',
    );
    ApplicationLog.error({
      error,
      source: 'live-price',
      className: 'Database',
      methodName: 'getConnection',
    });
    throw error;
  }
  return sequelize;
}

export { init, getConnection };
