Dealer_Onboarding_Backend/scripts/seed-auto-assignment-configs.ts

84 lines
2.9 KiB
TypeScript

/**
* Seed script for per-module auto-assignment configuration settings.
* Run: npx ts-node scripts/seed-auto-assignment-configs.ts
*/
import db from '../src/database/models/index.js';
const { SystemConfiguration } = db;
const AUTO_ASSIGNMENT_CONFIGS = [
{
key: 'AUTO_ASSIGN_ONBOARDING',
value: { enabled: true },
category: 'WORKFLOW_SETTINGS',
description: 'Enable/disable automatic participant assignment for Onboarding module (DD, Interviews, LOI, LOA stages)'
},
{
key: 'AUTO_ASSIGN_RELOCATION',
value: { enabled: true },
category: 'WORKFLOW_SETTINGS',
description: 'Enable/disable automatic participant assignment for Relocation requests'
},
{
key: 'AUTO_ASSIGN_TERMINATION',
value: { enabled: true },
category: 'WORKFLOW_SETTINGS',
description: 'Enable/disable automatic participant assignment for Termination requests'
},
{
key: 'AUTO_ASSIGN_RESIGNATION',
value: { enabled: true },
category: 'WORKFLOW_SETTINGS',
description: 'Enable/disable automatic participant assignment for Resignation requests'
},
{
key: 'AUTO_ASSIGN_CONSTITUTIONAL',
value: { enabled: true },
category: 'WORKFLOW_SETTINGS',
description: 'Enable/disable automatic participant assignment for Constitutional Change requests'
},
{
key: 'AUTO_ASSIGN_FNF',
value: { enabled: true },
category: 'WORKFLOW_SETTINGS',
description: 'Enable/disable automatic participant assignment for F&F Settlement requests'
}
];
async function seedAutoAssignmentConfigs() {
try {
console.log('[seed-auto-assignment] Starting...');
for (const config of AUTO_ASSIGNMENT_CONFIGS) {
const [record, created] = await SystemConfiguration.findOrCreate({
where: { key: config.key },
defaults: {
...config,
isActive: true
}
});
if (created) {
console.log(`[seed-auto-assignment] Created: ${config.key}`);
} else {
// Ensure value structure is correct (merge with defaults)
const currentValue = record.value || {};
if (typeof currentValue.enabled !== 'boolean') {
await record.update({ value: { enabled: true } });
console.log(`[seed-auto-assignment] Updated value structure: ${config.key}`);
} else {
console.log(`[seed-auto-assignment] Already exists: ${config.key} (enabled=${currentValue.enabled})`);
}
}
}
console.log('[seed-auto-assignment] Completed successfully.');
process.exit(0);
} catch (error) {
console.error('[seed-auto-assignment] Error:', error);
process.exit(1);
}
}
seedAutoAssignmentConfigs();