const { PartialWebhookMixin } = require('discord.js'); const { sequelize } = require('../index'); const Sequelize = require('sequelize'); const Users = sequelize.define('users', { id: { type: Sequelize.STRING, primaryKey: true, unique: true, }, useMinecraftUsername: { type: Sequelize.BOOLEAN, defaultValue: false, }, rawUsername: { type: Sequelize.STRING, }, moderator: { type: Sequelize.BOOLEAN, defaultValue: false, }, admin: { type: Sequelize.BOOLEAN, defaultValue: false, }, }); const Team = sequelize.define('teams', { name: { type: Sequelize.STRING, unique: true, validate: { len: [3, 16], isAlphanumeric: true, }, }, color: { type: Sequelize.STRING, validate: { is: /^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/, }, }, textChannelId: { type: Sequelize.STRING, }, voiceChannelId: { type: Sequelize.STRING, }, }); const Minecraft = sequelize.define('minecraft', { uuid: { type: Sequelize.UUID, unique: true, primaryKey: true, }, whitelisted: { type: Sequelize.BOOLEAN, defaultValue: false, }, code: { type: Sequelize.STRING, unique: true, }, }); Minecraft.hasOne(Users); Users.belongsTo(Minecraft); Team.hasMany(Users, { as: 'members' }); Users.belongsTo(Team); module.exports = { Users, Team, Minecraft };