mmm / data /antidel.js
ravenbs1's picture
Upload 140 files
046b271 verified
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