Database encryption

Security ™️
This commit is contained in:
Isaac
2021-04-07 00:02:07 +01:00
parent ba8c506eb4
commit 1bc2e737e3
16 changed files with 361 additions and 354 deletions

View File

@@ -0,0 +1,52 @@
const { DataTypes } = require('sequelize');
module.exports = ({ config }, sequelize) => {
const { DB_TABLE_PREFIX } = process.env;
sequelize.define('Category', {
id: {
type: DataTypes.CHAR(18),
primaryKey: true,
allowNull: false,
},
guild: {
type: DataTypes.CHAR(18),
allowNull: false,
references: {
model: DB_TABLE_PREFIX + 'guilds',
key: 'id'
},
unique: 'name-guild'
},
max_per_member: {
type: DataTypes.INTEGER,
defaultValue: 1
},
name: {
type: DataTypes.STRING,
allowNull: false,
unique: 'name-guild'
},
name_format: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: config.defaults.name_format
},
opening_message: {
type: DataTypes.STRING,
defaultValue: config.defaults.opening_message,
},
require_topic: {
type: DataTypes.BOOLEAN,
defaultValue: true,
},
roles: {
type: DataTypes.JSON,
allowNull: false,
},
questions: {
type: DataTypes.JSON,
allowNull: true,
},
}, {
tableName: DB_TABLE_PREFIX + 'categories'
});
};

View File

@@ -0,0 +1,23 @@
const { DataTypes } = require('sequelize');
module.exports = (client, sequelize) => {
const { DB_TABLE_PREFIX } = process.env;
sequelize.define('ChannelEntity', {
channel: {
type: DataTypes.CHAR(18),
allowNull: false,
unique: 'id-ticket'
},
name: DataTypes.TEXT,
ticket: {
type: DataTypes.CHAR(18),
allowNull: false,
unique: 'id-ticket',
references: {
model: DB_TABLE_PREFIX + 'tickets',
key: 'id'
},
},
}, {
tableName: DB_TABLE_PREFIX + 'channel_entities'
});
};

View File

@@ -0,0 +1,41 @@
const { DataTypes } = require('sequelize');
module.exports = ({ config }, sequelize) => {
const { DB_TABLE_PREFIX } = process.env;
sequelize.define('Guild', {
id: {
type: DataTypes.CHAR(18),
primaryKey: true,
allowNull: false,
},
colour: {
type: DataTypes.STRING,
defaultValue: config.defaults.colour
},
command_prefix: {
type: DataTypes.STRING,
defaultValue: config.defaults.command_prefix
},
error_colour: {
type: DataTypes.STRING,
defaultValue: 'RED'
},
footer: {
type: DataTypes.STRING,
defaultValue: 'Discord Tickets by eartharoid'
},
locale: {
type: DataTypes.STRING,
defaultValue: config.locale
},
log_messages: {
type: DataTypes.BOOLEAN,
defaultValue: config.defaults.log_messages
},
success_colour: {
type: DataTypes.STRING,
defaultValue: 'GREEN'
},
}, {
tableName: DB_TABLE_PREFIX + 'guilds'
});
};

View File

@@ -0,0 +1,37 @@
const { DataTypes } = require('sequelize');
module.exports = (client, sequelize) => {
const { DB_TABLE_PREFIX } = process.env;
sequelize.define('Message', {
id: {
type: DataTypes.CHAR(18),
primaryKey: true,
allowNull: false,
},
author: {
type: DataTypes.CHAR(18),
allowNull: false,
},
data: {
type: DataTypes.TEXT,
allowNull: false,
},
deleted: {
type: DataTypes.BOOLEAN,
defaultValue: false,
},
edited: {
type: DataTypes.BOOLEAN,
defaultValue: false,
},
ticket: {
type: DataTypes.CHAR(18),
allowNull: false,
references: {
model: DB_TABLE_PREFIX + 'tickets',
key: 'id'
},
},
}, {
tableName: DB_TABLE_PREFIX + 'messages'
});
};

View File

@@ -0,0 +1,27 @@
const { DataTypes } = require('sequelize');
module.exports = (client, sequelize) => {
const { DB_TABLE_PREFIX } = process.env;
sequelize.define('RoleEntity', {
colour: {
type: DataTypes.CHAR(6),
defaultValue: '7289DA',
},
name: DataTypes.TEXT,
role: {
type: DataTypes.CHAR(18),
allowNull: false,
unique: 'id-ticket'
},
ticket: {
type: DataTypes.CHAR(18),
allowNull: false,
unique: 'id-ticket',
references: {
model: DB_TABLE_PREFIX + 'tickets',
key: 'id'
},
},
}, {
tableName: DB_TABLE_PREFIX + 'role_entities'
});
};

View File

@@ -0,0 +1,51 @@
const { DataTypes } = require('sequelize');
module.exports = (client, sequelize) => {
const { DB_TABLE_PREFIX } = process.env;
sequelize.define('Ticket', {
id: {
type: DataTypes.CHAR(18),
primaryKey: true,
allowNull: false,
},
category: {
type: DataTypes.CHAR(18),
allowNull: false,
references: {
model: DB_TABLE_PREFIX + 'categories',
key: 'id'
},
},
closed_by: {
type: DataTypes.CHAR(18),
allowNull: true,
},
creator: {
type: DataTypes.CHAR(18),
allowNull: false,
},
guild: {
type: DataTypes.CHAR(18),
allowNull: false,
references: {
model: DB_TABLE_PREFIX + 'guilds',
key: 'id'
},
unique: 'number-guild'
},
number: {
type: DataTypes.INTEGER,
allowNull: false,
unique: 'number-guild'
},
open: {
type: DataTypes.BOOLEAN,
defaultValue: true
},
topic: {
type: DataTypes.TEXT,
allowNull: true,
},
}, {
tableName: DB_TABLE_PREFIX + 'tickets'
});
};

View File

@@ -0,0 +1,28 @@
const { DataTypes } = require('sequelize');
module.exports = (client, sequelize) => {
const { DB_TABLE_PREFIX } = process.env;
sequelize.define('UserEntity', {
avatar: DataTypes.STRING,
bot: DataTypes.BOOLEAN,
colour: DataTypes.CHAR(6),
discriminator: DataTypes.STRING,
display_name: DataTypes.TEXT,
ticket: {
type: DataTypes.CHAR(18),
allowNull: false,
unique: 'id-ticket',
references: {
model: DB_TABLE_PREFIX + 'tickets',
key: 'id'
},
},
user: {
type: DataTypes.CHAR(18),
allowNull: false,
unique: 'id-ticket'
},
username: DataTypes.TEXT,
}, {
tableName: DB_TABLE_PREFIX + 'user_entities'
});
};