50 lines
1.6 KiB
JavaScript
50 lines
1.6 KiB
JavaScript
const { Sequelize } = require('sequelize');
|
|
const config = require('../config/database');
|
|
|
|
const env = process.env.NODE_ENV || 'development';
|
|
const dbConfig = config[env];
|
|
|
|
// Initialize Sequelize
|
|
const sequelize = new Sequelize(
|
|
dbConfig.database,
|
|
dbConfig.username,
|
|
dbConfig.password,
|
|
{
|
|
host: dbConfig.host,
|
|
port: dbConfig.port,
|
|
dialect: dbConfig.dialect,
|
|
logging: dbConfig.logging,
|
|
pool: dbConfig.pool,
|
|
dialectOptions: dbConfig.dialectOptions
|
|
}
|
|
);
|
|
|
|
const db = {};
|
|
|
|
// Import models
|
|
db.User = require('./User')(sequelize, Sequelize.DataTypes);
|
|
db.Application = require('./Application')(sequelize, Sequelize.DataTypes);
|
|
db.Resignation = require('./Resignation')(sequelize, Sequelize.DataTypes);
|
|
db.ConstitutionalChange = require('./ConstitutionalChange')(sequelize, Sequelize.DataTypes);
|
|
db.RelocationRequest = require('./RelocationRequest')(sequelize, Sequelize.DataTypes);
|
|
db.Outlet = require('./Outlet')(sequelize, Sequelize.DataTypes);
|
|
db.Worknote = require('./Worknote')(sequelize, Sequelize.DataTypes);
|
|
db.Document = require('./Document')(sequelize, Sequelize.DataTypes);
|
|
db.AuditLog = require('./AuditLog')(sequelize, Sequelize.DataTypes);
|
|
db.FinancePayment = require('./FinancePayment')(sequelize, Sequelize.DataTypes);
|
|
db.FnF = require('./FnF')(sequelize, Sequelize.DataTypes);
|
|
db.Region = require('./Region')(sequelize, Sequelize.DataTypes);
|
|
db.Zone = require('./Zone')(sequelize, Sequelize.DataTypes);
|
|
|
|
// Define associations
|
|
Object.keys(db).forEach(modelName => {
|
|
if (db[modelName].associate) {
|
|
db[modelName].associate(db);
|
|
}
|
|
});
|
|
|
|
db.sequelize = sequelize;
|
|
db.Sequelize = Sequelize;
|
|
|
|
module.exports = db;
|