makecord-create
Version:
Create advanced Discord Bots with Makecord - Now with TypeScript support
57 lines (52 loc) • 1.19 kB
JavaScript
import { DataTypes } from 'sequelize';
import { sequelize } from '../connection.js';
// Define User model
const User = sequelize.define('User', {
userId: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
primaryKey: true
},
username: {
type: DataTypes.STRING,
allowNull: false
},
discriminator: {
type: DataTypes.STRING,
allowNull: true
},
avatar: {
type: DataTypes.STRING,
allowNull: true
},
settings: {
type: DataTypes.JSONB, // JSONB for PostgreSQL
allowNull: true,
defaultValue: {}
}
}, {
timestamps: true
});
/**
* Find or create a user
* @param {Object} userData - User data from Discord
* @returns {Promise<Object>} - The user record
*/
async function findOrCreateUser(userData) {
try {
const [user, created] = await User.findOrCreate({
where: { userId: userData.id },
defaults: {
username: userData.username,
discriminator: userData.discriminator,
avatar: userData.avatar
}
});
return user;
} catch (error) {
console.error('Error finding or creating user:', error);
throw error;
}
}
export { User, findOrCreateUser };