39270-vm/patch_models.js
2026-03-22 19:46:07 +00:00

44 lines
1.9 KiB
JavaScript

const fs = require('fs');
// Patch activity_logs.js
let activityLogs = fs.readFileSync('backend/src/db/models/activity_logs.js', 'utf8');
if (!activityLogs.includes('actionType')) {
activityLogs = activityLogs.replace(
'message: {',
'actionType: { type: DataTypes.STRING },\n metadata: { type: DataTypes.JSONB },\n\n message: {'
);
fs.writeFileSync('backend/src/db/models/activity_logs.js', activityLogs);
}
// Patch appeal_drafts.js
let appealDrafts = fs.readFileSync('backend/src/db/models/appeal_drafts.js', 'utf8');
if (!appealDrafts.includes('version: {')) {
appealDrafts = appealDrafts.replace(
'title: {',
'version: { type: DataTypes.INTEGER, defaultValue: 1 },\n summary: { type: DataTypes.TEXT },\n body: { type: DataTypes.TEXT },\n evidenceChecklist: { type: DataTypes.JSONB },\n\n title: {'
);
// Add belongsTo for submittedByUserId
appealDrafts = appealDrafts.replace(
'db.appeal_drafts.belongsTo(db.users, {',
'db.appeal_drafts.belongsTo(db.users, {\n as: \"submittedByUser\",\n foreignKey: {\n name: \"submittedByUserId\",\n },\n constraints: false,\n });\n\n db.appeal_drafts.belongsTo(db.users, {'
);
// Unescape literal backslashes so it's actual newlines
appealDrafts = appealDrafts.replace(/\\n/g, '\n');
// change status to STRING
appealDrafts = appealDrafts.replace(
/status: {\s*type: DataTypes\.ENUM,[\s\S]*?],/,
'status: {\n type: DataTypes.STRING,'
);
fs.writeFileSync('backend/src/db/models/appeal_drafts.js', appealDrafts);
}
// Patch cases.js for status type change
let cases = fs.readFileSync('backend/src/db/models/cases.js', 'utf8');
if (cases.includes('type: DataTypes.ENUM,')) {
cases = cases.replace(
/status: {\s*type: DataTypes\.ENUM,[\s\S]*?],/,
'status: {\n type: DataTypes.STRING,'
);
fs.writeFileSync('backend/src/db/models/cases.js', cases);
}