synt_backend
Version:
Synt light-weight node backend service
52 lines (51 loc) • 1.43 kB
JavaScript
;
const { Model } = require("sequelize");
module.exports = (sequelize, DataTypes) => {
class Meeting 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
Meeting.belongsTo(models.User); //creator
//Meeting.belongsTo(models.User); //cancel
Meeting.belongsTo(models.VME);
Meeting.hasMany(models.MeetingItem);
Meeting.belongsToMany(models.User, {
through: "MeetingUser",
foreignKey: "MeetingId",
as: "Users",
});
Meeting.belongsTo(models.FinancialYear);
Meeting.belongsTo(models.Meeting);
}
}
Meeting.init(
{
name: DataTypes.STRING,
description: DataTypes.STRING,
starts_at: DataTypes.DATE,
ends_at: DataTypes.DATE,
is_cancelled: DataTypes.BOOLEAN,
is_streaming: DataTypes.BOOLEAN,
type: DataTypes.ENUM("general", "special", "other"),
address: DataTypes.STRING,
hours: {
type: DataTypes.VIRTUAL,
get() {
return (
(this.getDataValue("ends_at") - this.getDataValue("starts_at")) /
(1000 * 3600)
);
},
},
},
{
sequelize,
modelName: "Meeting",
}
);
return Meeting;
};