import { DataTypes, Deferrable, Sequelize } from 'sequelize'; /** * @typedef {Object} RoleEmojiPair * @property {string} id A universally unique id, generated by sequelize. * @property {string} message A Discord message ID as a foreign key reference. * @property {string} role A Discord role ID. * @property {string} emoji Either a unicode emoji or a string representation in Discord custom emoji format. * @property {(model: Object) => void} hasMany Defines an One-To-Many relationship. * @property {(conditions: Object) => Promise} findOne Finds one instance in the database matching the provided condition(-s). * @property {(conditions: Object) => Promise>} findAll Finds all instances in the database matching the provided condition(-s). */ /** * The definition of the `RoleEmojiPair` table in the database. * @param {Sequelize} sequelize * @returns {RoleEmojiPair} */ export default function (sequelize) { return sequelize.define('RoleEmojiPairs', { id: { defaultValue: DataTypes.UUIDV4, type: DataTypes.UUID, primaryKey: true }, message: { type: DataTypes.STRING, references: { deferrable: Deferrable.INITIALLY_IMMEDIATE, model: 'Messages', key: 'id' } }, role: { type: DataTypes.STRING, references: { deferrable: Deferrable.INITIALLY_IMMEDIATE, model: 'Roles', key: 'id' } }, emoji: { type: DataTypes.STRING } }); }