This commit is contained in:
rgrgogu
2026-05-20 13:22:29 +08:00
parent 6907e9bb2d
commit 6a5145f553
26 changed files with 2615 additions and 221 deletions
+31
View File
@@ -0,0 +1,31 @@
"use strict";
/**
* Single archive — soft delete one record
*/
async function archiveOne(Model, where, deletedBy, transaction) {
const record = await Model.findOne({ where });
if (!record) return null;
await record.update({ deletedBy: deletedBy ?? null }, { transaction });
await record.destroy({ transaction });
return record;
}
/**
* Bulk archive — soft delete multiple records by primary key
*/
async function archiveMany(Model, pkField, ids, deletedBy, transaction) {
if (!ids?.length) return 0;
const records = await Model.findAll({ where: { [pkField]: ids, deletedAt: null } });
if (!records.length) return 0;
for (const record of records) {
await record.update({ deletedBy: deletedBy ?? null }, { transaction });
await record.destroy({ transaction });
}
return records.length;
}
module.exports = { archiveOne, archiveMany };