Colubrina/backend/models/nicknames.js

56 lines
1.2 KiB
JavaScript
Raw Normal View History

2022-07-29 01:12:29 +10:00
"use strict"
const { Model } = require("sequelize")
module.exports = (sequelize, DataTypes) => {
class Nickname extends Model {
/**
* Helper method for defining associations.
* This method is not a part of Sequelize lifecycle.
* The `models/index` file will call this method automatically.
*/
// eslint-disable-next-line no-unused-vars
static associate(models) {
Nickname.belongsTo(models.User, {
foreignKey: "userId",
as: "user"
})
Nickname.belongsTo(models.User, {
foreignKey: "friendId",
as: "userNickname"
})
}
}
Nickname.init(
{
userId: {
allowNull: false,
type: DataTypes.BIGINT
},
nickname: {
allowNull: false,
type: DataTypes.STRING,
validate: {
notEmpty: true,
len: [1, 20]
}
},
friendId: {
allowNull: false,
type: DataTypes.BIGINT
},
createdAt: {
allowNull: false,
type: DataTypes.DATE
},
updatedAt: {
allowNull: false,
type: DataTypes.DATE
}
},
{
sequelize,
modelName: "Nickname"
}
)
return Nickname
}