synt_backend
Version:
Synt light-weight node backend service
45 lines (44 loc) • 1.41 kB
JavaScript
"use strict";
const { Model } = require("sequelize");
const SequelizeTokenify = require("sequelize-tokenify");
module.exports = (sequelize, DataTypes) => {
class MeetingUser 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.
*/
static associate(models) {
// define association here
this.hasOne(models.User, { foreignKey: "id", as: "User" });
this.hasOne(models.User, {
localKey: "PowerOfAttorneyGivenToUserId",
foreignKey: "id",
as: "PowerOfAttorneyGivenToUser",
});
this.hasOne(models.Meeting, { foreignKey: "id", as: "Meeting" });
}
}
MeetingUser.init(
{
is_confirmed_at: DataTypes.DATE,
has_left_at: DataTypes.DATE,
has_power_of_attorney: DataTypes.BOOLEAN,
power_of_attorney_given_to_first_name: DataTypes.STRING,
power_of_attorney_given_to_last_name: DataTypes.STRING,
power_of_attorney_token: { type: DataTypes.STRING, unique: true },
PowerOfAttorneyGivenToUserId: DataTypes.INTEGER,
},
{
sequelize,
paranoid: false,
modelName: "MeetingUser",
tableName: "MeetingUser",
}
);
SequelizeTokenify.tokenify(MeetingUser, {
field: "power_of_attorney_token",
length: 6,
});
return MeetingUser;
};