89 lines
2.1 KiB
TypeScript
89 lines
2.1 KiB
TypeScript
import 'dotenv/config';
|
|
import db from '../src/database/models/index.js';
|
|
|
|
const { StageApprovalPolicy } = db;
|
|
|
|
const policies = [
|
|
{
|
|
stageCode: 'INTERVIEW_LEVEL_1',
|
|
minApprovals: 2,
|
|
approvalMode: 'ROLE_MANDATORY',
|
|
requiredRoles: ['DD-ZM', 'RBM'],
|
|
isActive: true
|
|
},
|
|
{
|
|
stageCode: 'INTERVIEW_LEVEL_2',
|
|
minApprovals: 2,
|
|
approvalMode: 'ROLE_MANDATORY',
|
|
requiredRoles: ['ZBH', 'DD Lead'],
|
|
isActive: true
|
|
},
|
|
{
|
|
stageCode: 'INTERVIEW_LEVEL_3',
|
|
minApprovals: 2,
|
|
approvalMode: 'ROLE_MANDATORY',
|
|
requiredRoles: ['NBH', 'DD Head'],
|
|
isActive: true
|
|
},
|
|
{
|
|
stageCode: 'LOI_APPROVAL',
|
|
minApprovals: 2,
|
|
approvalMode: 'ROLE_MANDATORY',
|
|
requiredRoles: ['DD Head', 'NBH'],
|
|
isActive: true
|
|
},
|
|
{
|
|
stageCode: 'LOA_APPROVAL',
|
|
minApprovals: 2,
|
|
approvalMode: 'ROLE_MANDATORY',
|
|
requiredRoles: ['DD Head', 'NBH'],
|
|
isActive: true
|
|
},
|
|
{
|
|
stageCode: 'FDD_VERIFICATION',
|
|
minApprovals: 1,
|
|
approvalMode: 'ROLE_MANDATORY',
|
|
requiredRoles: ['DD Admin', 'Super Admin'],
|
|
isActive: true
|
|
},
|
|
{
|
|
stageCode: 'CONSTITUTIONAL_ZM_RBM_REVIEW',
|
|
minApprovals: 2,
|
|
approvalMode: 'ROLE_MANDATORY',
|
|
requiredRoles: ['DD-ZM', 'RBM'],
|
|
isActive: true
|
|
}
|
|
];
|
|
|
|
async function seedApprovalPolicies() {
|
|
console.log('--- Seeding Approval Policies ---');
|
|
|
|
for (const policy of policies) {
|
|
const [record, created] = await StageApprovalPolicy.findOrCreate({
|
|
where: { stageCode: policy.stageCode },
|
|
defaults: policy
|
|
});
|
|
|
|
if (!created) {
|
|
await record.update({
|
|
minApprovals: policy.minApprovals,
|
|
approvalMode: policy.approvalMode,
|
|
requiredRoles: policy.requiredRoles,
|
|
isActive: policy.isActive
|
|
});
|
|
console.log(`Updated policy: ${policy.stageCode}`);
|
|
} else {
|
|
console.log(`Created policy: ${policy.stageCode}`);
|
|
}
|
|
}
|
|
|
|
console.log('--- Approval Policies Seeded ---');
|
|
}
|
|
|
|
seedApprovalPolicies()
|
|
.catch((error) => {
|
|
console.error('Approval policy seed failed:', error);
|
|
process.exit(1);
|
|
})
|
|
.then(() => process.exit(0));
|