JaBa/base/Guild.js

68 lines
No EOL
2.8 KiB
JavaScript

const mongoose = require("mongoose"),
Schema = mongoose.Schema,
config = require("../config.js"),
languages = require("../languages/language-meta.json");
module.exports = mongoose.model("Guild", new Schema({
/* REQUIRED */
id: { type: String }, // Discord ID of the guild
/* MEMBERSDATA */
membersData: { type: Object, default: {} }, // Members data of the guild
members: [{ type: Schema.Types.ObjectId, ref: "Member" }],
/* CONFIGURATION */
language: { type: String, default: languages.find((l) => l.default).name }, // Language of the guild
prefix: { type: String, default: config.prefix }, // Default or custom prefix of the guild
plugins: { type: Object, default: { // Plugins data
// Welcome messages
welcome: {
enabled: false, // Whether the welcome messages are enabled
message: null, // The welcome message
channel: null, // The channel to send the welcome messages
withImage: null // Whether the welcome images are enabled
},
// Goodbye messages
goodbye: {
enabled: false, // Whether the goodbye messages are enabled
message: null, // The goodbye message
channel: null, // The channel to send the goodbye messages
withImage: null // Whether the goodbye images are enabled
},
// Autorole
autorole: {
enabled: false, // Whether the autorole is enabled
role: null // The role to add when a member join the server
},
// Auto moderation
automod: {
enabled: false, // Whether the auto moderation is enabled
ignored: [] // The channels in which the auto moderation is disabled
},
// Auto sanctions
warnsSanctions: {
kick: false, // The number of warns required to kick the user
ban: false // The number of warns required to ban the user
},
// Tickets
tickets: {
enabled: false, // Whether the tickets system is enabled
category: null // The category for the tickets system
},
suggestions: false, // the channel in which the suggestions will be sent
modlogs: false, // the channel in which the moderation logs (mute, kick, ban, etc...) will be sent
birthdays: false, // the channel in which birtdays announcements will be sent
reports: false, // the channel in which the reports will be sent
logs: false // the channel in which the logs (message deleted, etc...) will be sent
}},
slowmode: { type: Object, default: { // Servers slowmode
users: [],
channels: []
}},
casesCount: { type: Number, default: 0 },
ignoredChannels: { type: Array, default: [] }, // Channels ignored by the bot
customCommands: { type: Array, default: [] }, // Custom commands of the guild
commands: { type: Array, default: [] }, // Commands logs
autoDeleteModCommands: { type: Boolean, default: false }, // Whether to auto delete moderation commands
disabledCategories: { type: Array, default: [] } // Disabled categories
}));