File size: 2,355 Bytes
046b271 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | const { DATABASE } = require('../lib/database');
const { DataTypes } = require('sequelize');
const AntiDelDB = DATABASE.define('AntiDelete', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: false,
defaultValue: 1,
},
gc_status: {
type: DataTypes.BOOLEAN,
defaultValue: false,
},
dm_status: {
type: DataTypes.BOOLEAN,
defaultValue: false,
},
}, {
tableName: 'antidelete',
timestamps: false,
hooks: {
beforeCreate: record => { record.id = 1; },
beforeBulkCreate: records => { records.forEach(record => { record.id = 1; }); },
},
});
let isInitialized = false;
async function initializeAntiDeleteSettings() {
if (isInitialized) return;
try {
await AntiDelDB.sync();
await AntiDelDB.findOrCreate({
where: { id: 1 },
defaults: { gc_status: false, dm_status: false },
});
isInitialized = true;
} catch (error) {
console.error('Error initializing anti-delete settings:', error);
}
}
async function setAnti(type, status) {
try {
await initializeAntiDeleteSettings();
const record = await AntiDelDB.findByPk(1);
if (type === 'gc') record.gc_status = status;
else if (type === 'dm') record.dm_status = status;
await record.save();
return true;
} catch (error) {
console.error('Error setting anti-delete status:', error);
return false;
}
}
async function getAnti(type) {
try {
await initializeAntiDeleteSettings();
const record = await AntiDelDB.findByPk(1);
return type === 'gc' ? record.gc_status : record.dm_status;
} catch (error) {
console.error('Error getting anti-delete status:', error);
return false;
}
}
async function getAllAntiDeleteSettings() {
try {
await initializeAntiDeleteSettings();
const record = await AntiDelDB.findByPk(1);
return [{ gc_status: record.gc_status, dm_status: record.dm_status }];
} catch (error) {
console.error('Error retrieving all anti-delete settings:', error);
return [];
}
}
module.exports = {
AntiDelDB,
initializeAntiDeleteSettings,
setAnti,
getAnti,
getAllAntiDeleteSettings,
};
// by jawadtechx |