diff --git a/src/database/models/category.model.js b/src/database/models/category.model.js index 3afae98..c346133 100644 --- a/src/database/models/category.model.js +++ b/src/database/models/category.model.js @@ -44,10 +44,26 @@ module.exports = ({ config }, sequelize) => { }, opening_questions: { allowNull: true, + get() { + const raw_value = this.getDataValue('opening_questions'); + return raw_value + ? typeof raw_value === 'string' + ? JSON.parse(raw_value) + : raw_value + : null; + }, type: DataTypes.JSON }, ping: { defaultValue: [], + get() { + const raw_value = this.getDataValue('ping'); + return raw_value + ? typeof raw_value === 'string' + ? JSON.parse(raw_value) + : raw_value + : null; + }, type: DataTypes.JSON }, require_topic: { @@ -56,6 +72,14 @@ module.exports = ({ config }, sequelize) => { }, roles: { allowNull: false, + get() { + const raw_value = this.getDataValue('roles'); + return raw_value + ? typeof raw_value === 'string' + ? JSON.parse(raw_value) + : raw_value + : null; + }, type: DataTypes.JSON }, survey: { diff --git a/src/database/models/guild.model.js b/src/database/models/guild.model.js index 05dbaee..5e95f1d 100644 --- a/src/database/models/guild.model.js +++ b/src/database/models/guild.model.js @@ -49,6 +49,14 @@ module.exports = ({ config }, sequelize) => { }, tags: { defaultValue: {}, + get() { + const raw_value = this.getDataValue('tags'); + return raw_value + ? typeof raw_value === 'string' + ? JSON.parse(raw_value) + : raw_value + : null; + }, type: DataTypes.JSON } }, { tableName: DB_TABLE_PREFIX + 'guilds' }); diff --git a/src/database/models/panel.model.js b/src/database/models/panel.model.js index 87ba74b..aba5b3c 100644 --- a/src/database/models/panel.model.js +++ b/src/database/models/panel.model.js @@ -4,6 +4,14 @@ module.exports = (client, sequelize) => { sequelize.define('Panel', { categories: { allowNull: false, + get() { + const raw_value = this.getDataValue('categories'); + return raw_value + ? typeof raw_value === 'string' + ? JSON.parse(raw_value) + : raw_value + : null; + }, type: DataTypes.JSON }, channel: { diff --git a/src/database/models/survey.model.js b/src/database/models/survey.model.js index 4292930..3a2d6d0 100644 --- a/src/database/models/survey.model.js +++ b/src/database/models/survey.model.js @@ -18,6 +18,14 @@ module.exports = (client, sequelize) => { }, questions: { allowNull: true, + get() { + const raw_value = this.getDataValue('questions'); + return raw_value + ? typeof raw_value === 'string' + ? JSON.parse(raw_value) + : raw_value + : null; + }, type: DataTypes.JSON } }, { tableName: DB_TABLE_PREFIX + 'surveys' }); diff --git a/src/database/models/survey_response.model.js b/src/database/models/survey_response.model.js index 062ff80..379fe79 100644 --- a/src/database/models/survey_response.model.js +++ b/src/database/models/survey_response.model.js @@ -4,6 +4,14 @@ module.exports = (client, sequelize) => { sequelize.define('SurveyResponse', { answers: { allowNull: true, + get() { + const raw_value = this.getDataValue('answers'); + return raw_value + ? typeof raw_value === 'string' + ? JSON.parse(raw_value) + : raw_value + : null; + }, type: DataTypes.JSON }, survey: { diff --git a/src/database/models/ticket.model.js b/src/database/models/ticket.model.js index ef0512e..370e1be 100644 --- a/src/database/models/ticket.model.js +++ b/src/database/models/ticket.model.js @@ -63,6 +63,14 @@ module.exports = (_client, sequelize) => { }, pinned_messages: { defaultValue: [], + get() { + const raw_value = this.getDataValue('pinned_messages'); + return raw_value + ? typeof raw_value === 'string' + ? JSON.parse(raw_value) + : raw_value + : null; + }, type: DataTypes.JSON }, topic: {