3772 lines
86 KiB
JavaScript
3772 lines
86 KiB
JavaScript
module.exports = {
|
|
/**
|
|
* @param {QueryInterface} queryInterface
|
|
* @param {Sequelize} Sequelize
|
|
* @returns {Promise<void>}
|
|
*/
|
|
async up(queryInterface, Sequelize) {
|
|
/**
|
|
* @type {Transaction}
|
|
*/
|
|
const transaction = await queryInterface.sequelize.transaction();
|
|
try {
|
|
await queryInterface.createTable(
|
|
'users',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'audit_logs',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'data_connections',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'fin_accounts',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'fin_ap',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'fin_ar',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'fin_budgets',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'fin_customers',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'fin_forecasts',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'fin_transactions',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'fin_vendors',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'hr_applicants',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'hr_attendance',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'hr_employees',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'hr_payroll',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'hr_positions',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'hr_reqs',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'ops_incidents',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'ops_inventory',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'ops_lines',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'ops_orders',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'ops_plants',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'ops_production_log',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'ops_shipments',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'roles',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'permissions',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.createTable(
|
|
'organizations',
|
|
{
|
|
id: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
defaultValue: Sequelize.DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
createdById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
updatedById: {
|
|
type: Sequelize.DataTypes.UUID,
|
|
references: {
|
|
key: 'id',
|
|
model: 'users',
|
|
},
|
|
},
|
|
createdAt: { type: Sequelize.DataTypes.DATE },
|
|
updatedAt: { type: Sequelize.DataTypes.DATE },
|
|
deletedAt: { type: Sequelize.DataTypes.DATE },
|
|
importHash: {
|
|
type: Sequelize.DataTypes.STRING(255),
|
|
allowNull: true,
|
|
unique: true,
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'firstName',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'lastName',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'phoneNumber',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'email',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'disabled',
|
|
{
|
|
type: Sequelize.DataTypes.BOOLEAN,
|
|
|
|
defaultValue: false,
|
|
allowNull: false,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'password',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'emailVerified',
|
|
{
|
|
type: Sequelize.DataTypes.BOOLEAN,
|
|
|
|
defaultValue: false,
|
|
allowNull: false,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'emailVerificationToken',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'emailVerificationTokenExpiresAt',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'passwordResetToken',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'passwordResetTokenExpiresAt',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'provider',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'audit_logs',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'audit_logs',
|
|
'userId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'users',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'audit_logs',
|
|
'action',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'audit_logs',
|
|
'entity',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'audit_logs',
|
|
'entity_id',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'audit_logs',
|
|
'diff_json',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'data_connections',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'data_connections',
|
|
'type',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['Snowflake', 'BigQuery', 'Redshift', 'Postgres'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'data_connections',
|
|
'name',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'data_connections',
|
|
'config_json',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'data_connections',
|
|
'status',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['Active', 'Inactive'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'data_connections',
|
|
'last_sync_at',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_accounts',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_accounts',
|
|
'code',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_accounts',
|
|
'name',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_accounts',
|
|
'type',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['asset', 'liability', 'equity', 'revenue', 'expense'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_accounts',
|
|
'parentId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'fin_accounts',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_accounts',
|
|
'is_active',
|
|
{
|
|
type: Sequelize.DataTypes.BOOLEAN,
|
|
|
|
defaultValue: false,
|
|
allowNull: false,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ap',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ap',
|
|
'bill_no',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ap',
|
|
'vendorId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'fin_vendors',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ap',
|
|
'due_date',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ap',
|
|
'amount',
|
|
{
|
|
type: Sequelize.DataTypes.DECIMAL,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ap',
|
|
'status',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['Pending', 'Paid', 'Overdue'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ar',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ar',
|
|
'invoice_no',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ar',
|
|
'customerId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'fin_customers',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ar',
|
|
'due_date',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ar',
|
|
'amount',
|
|
{
|
|
type: Sequelize.DataTypes.DECIMAL,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ar',
|
|
'status',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['Pending', 'Paid', 'Overdue'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_budgets',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_budgets',
|
|
'fiscal_year',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_budgets',
|
|
'cost_center',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_budgets',
|
|
'accountId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'fin_accounts',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_budgets',
|
|
'month',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_budgets',
|
|
'amount',
|
|
{
|
|
type: Sequelize.DataTypes.DECIMAL,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_customers',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_customers',
|
|
'name',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_customers',
|
|
'segment',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_customers',
|
|
'country',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_forecasts',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_forecasts',
|
|
'fiscal_year',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_forecasts',
|
|
'cost_center',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_forecasts',
|
|
'accountId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'fin_accounts',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_forecasts',
|
|
'month',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_forecasts',
|
|
'amount',
|
|
{
|
|
type: Sequelize.DataTypes.DECIMAL,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'accountId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'fin_accounts',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'tx_ts',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'amount',
|
|
{
|
|
type: Sequelize.DataTypes.DECIMAL,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'currency',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'fx_rate',
|
|
{
|
|
type: Sequelize.DataTypes.DECIMAL,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'cost_center',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'project_code',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'vendorId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'fin_vendors',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'customerId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'fin_customers',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'memo',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'source',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_vendors',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_vendors',
|
|
'name',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_vendors',
|
|
'tax_id',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_vendors',
|
|
'country',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_applicants',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_applicants',
|
|
'reqId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'hr_reqs',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_applicants',
|
|
'name',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_applicants',
|
|
'stage',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['Applied', 'Interview', 'Offer', 'Hired'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_applicants',
|
|
'source',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_applicants',
|
|
'offer_extended_at',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_applicants',
|
|
'offer_accepted_at',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_attendance',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_attendance',
|
|
'employeeId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'hr_employees',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_attendance',
|
|
'date',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_attendance',
|
|
'hours_worked',
|
|
{
|
|
type: Sequelize.DataTypes.DECIMAL,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_attendance',
|
|
'leave_type',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['Sick', 'Vacation', 'Unpaid'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_employees',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_employees',
|
|
'employee_no',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_employees',
|
|
'name',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_employees',
|
|
'email',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_employees',
|
|
'managerId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'hr_employees',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_employees',
|
|
'department',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_employees',
|
|
'location',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_employees',
|
|
'grade',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_employees',
|
|
'hire_date',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_employees',
|
|
'termination_date',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_employees',
|
|
'status',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['Active', 'Inactive'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_payroll',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_payroll',
|
|
'employeeId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'hr_employees',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_payroll',
|
|
'period',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_payroll',
|
|
'base_pay',
|
|
{
|
|
type: Sequelize.DataTypes.DECIMAL,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_payroll',
|
|
'bonus',
|
|
{
|
|
type: Sequelize.DataTypes.DECIMAL,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_payroll',
|
|
'overtime_hours',
|
|
{
|
|
type: Sequelize.DataTypes.DECIMAL,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_payroll',
|
|
'currency',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_positions',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_positions',
|
|
'title',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_positions',
|
|
'department',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_positions',
|
|
'level',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_positions',
|
|
'location',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_positions',
|
|
'status',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['Open', 'Closed'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_reqs',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_reqs',
|
|
'positionId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'hr_positions',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_reqs',
|
|
'opened_at',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_reqs',
|
|
'filled_at',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_reqs',
|
|
'status',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['Open', 'Closed', 'OnHold'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_reqs',
|
|
'recruiter',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_reqs',
|
|
'priority',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['High', 'Medium', 'Low'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_incidents',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_incidents',
|
|
'plantId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'ops_plants',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_incidents',
|
|
'lineId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'ops_lines',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_incidents',
|
|
'occurred_at',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_incidents',
|
|
'category',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_incidents',
|
|
'severity',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['Low', 'Medium', 'High'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_incidents',
|
|
'duration_min',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_incidents',
|
|
'root_cause',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_inventory',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_inventory',
|
|
'sku',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_inventory',
|
|
'location',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_inventory',
|
|
'on_hand',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_inventory',
|
|
'on_order',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_inventory',
|
|
'safety_stock',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_inventory',
|
|
'unit_cost',
|
|
{
|
|
type: Sequelize.DataTypes.DECIMAL,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_lines',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_lines',
|
|
'plantId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'ops_plants',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_lines',
|
|
'name',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_orders',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_orders',
|
|
'order_no',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_orders',
|
|
'customerId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'fin_customers',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_orders',
|
|
'due_date',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_orders',
|
|
'qty',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_orders',
|
|
'status',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['Pending', 'Completed', 'Cancelled'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_plants',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_plants',
|
|
'name',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_plants',
|
|
'location',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_plants',
|
|
'timezone',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_production_log',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_production_log',
|
|
'lineId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'ops_lines',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_production_log',
|
|
'ts',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_production_log',
|
|
'units_produced',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_production_log',
|
|
'planned_units',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_production_log',
|
|
'downtime_min',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_production_log',
|
|
'defects',
|
|
{
|
|
type: Sequelize.DataTypes.INTEGER,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_shipments',
|
|
'orgId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_shipments',
|
|
'order_no',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_shipments',
|
|
'shipped_at',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_shipments',
|
|
'carrier',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_shipments',
|
|
'delivered_at',
|
|
{
|
|
type: Sequelize.DataTypes.DATE,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_shipments',
|
|
'status',
|
|
{
|
|
type: Sequelize.DataTypes.ENUM,
|
|
|
|
values: ['InTransit', 'Delivered', 'Delayed'],
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'permissions',
|
|
'name',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'roles',
|
|
'name',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'roles',
|
|
'role_customization',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'app_roleId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'roles',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'organizations',
|
|
'name',
|
|
{
|
|
type: Sequelize.DataTypes.TEXT,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'roles',
|
|
'globalAccess',
|
|
{
|
|
type: Sequelize.DataTypes.BOOLEAN,
|
|
|
|
defaultValue: false,
|
|
allowNull: false,
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'users',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'audit_logs',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'data_connections',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_accounts',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ap',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_ar',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_budgets',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_customers',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_forecasts',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_transactions',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'fin_vendors',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_applicants',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_attendance',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_employees',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_payroll',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_positions',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'hr_reqs',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_incidents',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_inventory',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_lines',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_orders',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_plants',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_production_log',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.addColumn(
|
|
'ops_shipments',
|
|
'organizationsId',
|
|
{
|
|
type: Sequelize.DataTypes.UUID,
|
|
|
|
references: {
|
|
model: 'organizations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
{ transaction },
|
|
);
|
|
|
|
await transaction.commit();
|
|
} catch (err) {
|
|
await transaction.rollback();
|
|
throw err;
|
|
}
|
|
},
|
|
/**
|
|
* @param {QueryInterface} queryInterface
|
|
* @param {Sequelize} Sequelize
|
|
* @returns {Promise<void>}
|
|
*/
|
|
async down(queryInterface, Sequelize) {
|
|
/**
|
|
* @type {Transaction}
|
|
*/
|
|
const transaction = await queryInterface.sequelize.transaction();
|
|
try {
|
|
await queryInterface.removeColumn('ops_shipments', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn(
|
|
'ops_production_log',
|
|
'organizationsId',
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.removeColumn('ops_plants', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_orders', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_lines', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_inventory', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_incidents', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_reqs', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_positions', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_payroll', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_employees', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_attendance', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_applicants', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_vendors', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_forecasts', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_customers', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_budgets', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_ar', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_ap', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_accounts', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('data_connections', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('audit_logs', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('users', 'organizationsId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('roles', 'globalAccess', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('organizations', 'name', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('users', 'app_roleId', { transaction });
|
|
|
|
await queryInterface.removeColumn('roles', 'role_customization', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('roles', 'name', { transaction });
|
|
|
|
await queryInterface.removeColumn('permissions', 'name', { transaction });
|
|
|
|
await queryInterface.removeColumn('ops_shipments', 'status', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_shipments', 'delivered_at', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_shipments', 'carrier', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_shipments', 'shipped_at', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_shipments', 'order_no', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_shipments', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_production_log', 'defects', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_production_log', 'downtime_min', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_production_log', 'planned_units', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn(
|
|
'ops_production_log',
|
|
'units_produced',
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.removeColumn('ops_production_log', 'ts', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_production_log', 'lineId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_production_log', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_plants', 'timezone', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_plants', 'location', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_plants', 'name', { transaction });
|
|
|
|
await queryInterface.removeColumn('ops_plants', 'orgId', { transaction });
|
|
|
|
await queryInterface.removeColumn('ops_orders', 'status', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_orders', 'qty', { transaction });
|
|
|
|
await queryInterface.removeColumn('ops_orders', 'due_date', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_orders', 'customerId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_orders', 'order_no', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_orders', 'orgId', { transaction });
|
|
|
|
await queryInterface.removeColumn('ops_lines', 'name', { transaction });
|
|
|
|
await queryInterface.removeColumn('ops_lines', 'plantId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_lines', 'orgId', { transaction });
|
|
|
|
await queryInterface.removeColumn('ops_inventory', 'unit_cost', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_inventory', 'safety_stock', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_inventory', 'on_order', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_inventory', 'on_hand', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_inventory', 'location', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_inventory', 'sku', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_inventory', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_incidents', 'root_cause', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_incidents', 'duration_min', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_incidents', 'severity', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_incidents', 'category', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_incidents', 'occurred_at', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_incidents', 'lineId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_incidents', 'plantId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('ops_incidents', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_reqs', 'priority', { transaction });
|
|
|
|
await queryInterface.removeColumn('hr_reqs', 'recruiter', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_reqs', 'status', { transaction });
|
|
|
|
await queryInterface.removeColumn('hr_reqs', 'filled_at', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_reqs', 'opened_at', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_reqs', 'positionId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_reqs', 'orgId', { transaction });
|
|
|
|
await queryInterface.removeColumn('hr_positions', 'status', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_positions', 'location', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_positions', 'level', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_positions', 'department', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_positions', 'title', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_positions', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_payroll', 'currency', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_payroll', 'overtime_hours', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_payroll', 'bonus', { transaction });
|
|
|
|
await queryInterface.removeColumn('hr_payroll', 'base_pay', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_payroll', 'period', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_payroll', 'employeeId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_payroll', 'orgId', { transaction });
|
|
|
|
await queryInterface.removeColumn('hr_employees', 'status', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_employees', 'termination_date', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_employees', 'hire_date', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_employees', 'grade', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_employees', 'location', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_employees', 'department', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_employees', 'managerId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_employees', 'email', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_employees', 'name', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_employees', 'employee_no', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_employees', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_attendance', 'leave_type', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_attendance', 'hours_worked', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_attendance', 'date', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_attendance', 'employeeId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_attendance', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_applicants', 'offer_accepted_at', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_applicants', 'offer_extended_at', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_applicants', 'source', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_applicants', 'stage', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_applicants', 'name', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_applicants', 'reqId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('hr_applicants', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_vendors', 'country', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_vendors', 'tax_id', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_vendors', 'name', { transaction });
|
|
|
|
await queryInterface.removeColumn('fin_vendors', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'source', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'memo', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'customerId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'vendorId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'project_code', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'cost_center', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'fx_rate', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'currency', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'amount', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'tx_ts', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'accountId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_transactions', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_forecasts', 'amount', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_forecasts', 'month', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_forecasts', 'accountId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_forecasts', 'cost_center', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_forecasts', 'fiscal_year', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_forecasts', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_customers', 'country', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_customers', 'segment', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_customers', 'name', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_customers', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_budgets', 'amount', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_budgets', 'month', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_budgets', 'accountId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_budgets', 'cost_center', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_budgets', 'fiscal_year', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_budgets', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_ar', 'status', { transaction });
|
|
|
|
await queryInterface.removeColumn('fin_ar', 'amount', { transaction });
|
|
|
|
await queryInterface.removeColumn('fin_ar', 'due_date', { transaction });
|
|
|
|
await queryInterface.removeColumn('fin_ar', 'customerId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_ar', 'invoice_no', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_ar', 'orgId', { transaction });
|
|
|
|
await queryInterface.removeColumn('fin_ap', 'status', { transaction });
|
|
|
|
await queryInterface.removeColumn('fin_ap', 'amount', { transaction });
|
|
|
|
await queryInterface.removeColumn('fin_ap', 'due_date', { transaction });
|
|
|
|
await queryInterface.removeColumn('fin_ap', 'vendorId', { transaction });
|
|
|
|
await queryInterface.removeColumn('fin_ap', 'bill_no', { transaction });
|
|
|
|
await queryInterface.removeColumn('fin_ap', 'orgId', { transaction });
|
|
|
|
await queryInterface.removeColumn('fin_accounts', 'is_active', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_accounts', 'parentId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_accounts', 'type', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_accounts', 'name', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_accounts', 'code', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('fin_accounts', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('data_connections', 'last_sync_at', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('data_connections', 'status', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('data_connections', 'config_json', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('data_connections', 'name', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('data_connections', 'type', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('data_connections', 'orgId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('audit_logs', 'diff_json', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('audit_logs', 'entity_id', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('audit_logs', 'entity', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('audit_logs', 'action', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('audit_logs', 'userId', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('audit_logs', 'orgId', { transaction });
|
|
|
|
await queryInterface.removeColumn('users', 'provider', { transaction });
|
|
|
|
await queryInterface.removeColumn(
|
|
'users',
|
|
'passwordResetTokenExpiresAt',
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.removeColumn('users', 'passwordResetToken', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn(
|
|
'users',
|
|
'emailVerificationTokenExpiresAt',
|
|
{ transaction },
|
|
);
|
|
|
|
await queryInterface.removeColumn('users', 'emailVerificationToken', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('users', 'emailVerified', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('users', 'password', { transaction });
|
|
|
|
await queryInterface.removeColumn('users', 'disabled', { transaction });
|
|
|
|
await queryInterface.removeColumn('users', 'email', { transaction });
|
|
|
|
await queryInterface.removeColumn('users', 'phoneNumber', {
|
|
transaction,
|
|
});
|
|
|
|
await queryInterface.removeColumn('users', 'lastName', { transaction });
|
|
|
|
await queryInterface.removeColumn('users', 'firstName', { transaction });
|
|
|
|
await queryInterface.dropTable('organizations', { transaction });
|
|
|
|
await queryInterface.dropTable('permissions', { transaction });
|
|
|
|
await queryInterface.dropTable('roles', { transaction });
|
|
|
|
await queryInterface.dropTable('ops_shipments', { transaction });
|
|
|
|
await queryInterface.dropTable('ops_production_log', { transaction });
|
|
|
|
await queryInterface.dropTable('ops_plants', { transaction });
|
|
|
|
await queryInterface.dropTable('ops_orders', { transaction });
|
|
|
|
await queryInterface.dropTable('ops_lines', { transaction });
|
|
|
|
await queryInterface.dropTable('ops_inventory', { transaction });
|
|
|
|
await queryInterface.dropTable('ops_incidents', { transaction });
|
|
|
|
await queryInterface.dropTable('hr_reqs', { transaction });
|
|
|
|
await queryInterface.dropTable('hr_positions', { transaction });
|
|
|
|
await queryInterface.dropTable('hr_payroll', { transaction });
|
|
|
|
await queryInterface.dropTable('hr_employees', { transaction });
|
|
|
|
await queryInterface.dropTable('hr_attendance', { transaction });
|
|
|
|
await queryInterface.dropTable('hr_applicants', { transaction });
|
|
|
|
await queryInterface.dropTable('fin_vendors', { transaction });
|
|
|
|
await queryInterface.dropTable('fin_transactions', { transaction });
|
|
|
|
await queryInterface.dropTable('fin_forecasts', { transaction });
|
|
|
|
await queryInterface.dropTable('fin_customers', { transaction });
|
|
|
|
await queryInterface.dropTable('fin_budgets', { transaction });
|
|
|
|
await queryInterface.dropTable('fin_ar', { transaction });
|
|
|
|
await queryInterface.dropTable('fin_ap', { transaction });
|
|
|
|
await queryInterface.dropTable('fin_accounts', { transaction });
|
|
|
|
await queryInterface.dropTable('data_connections', { transaction });
|
|
|
|
await queryInterface.dropTable('audit_logs', { transaction });
|
|
|
|
await queryInterface.dropTable('users', { transaction });
|
|
|
|
await transaction.commit();
|
|
} catch (err) {
|
|
await transaction.rollback();
|
|
throw err;
|
|
}
|
|
},
|
|
};
|