Skip to content

Instantly share code, notes, and snippets.

@kasir-barati
Last active January 3, 2021 11:12
Show Gist options
  • Save kasir-barati/8b2a205f5b79d80c525b8f0b97e2d8e0 to your computer and use it in GitHub Desktop.
Save kasir-barati/8b2a205f5b79d80c525b8f0b97e2d8e0 to your computer and use it in GitHub Desktop.
const { DataTypes, Model } = require("sequelize");
const Role = require("./role");
const sequelize = require("../sequelize");
class User extends Model {
static col = {
id: "id",
name: "name",
roleId: "roleId",
};
static alias = {
role: "UserRole",
};
}
User.init(
{
[User.col.id]: {
type: DataTypes.UUID,
primaryKey: true,
defaultValue: DataTypes.UUIDV4,
},
[User.col.name]: DataTypes.STRING,
[User.col.roleId]: {
type: DataTypes.UUID,
references: { model: Role, key: Role.col.id },
},
},
{
sequelize: sequelize.getSeq(),
}
);
User.belongsTo(Role, {
as: User.alias.role,
foreignKey: User.col.roleId,
});
Role.hasMany(User, {
as: Role.alias.user,
foreignKey: User.col.roleId,
});
module.exports = User;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment