|
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, |
|
}; |
|
|
|
|