app2-api/modules/comments/comment.model.js
2019-05-23 11:40:50 +02:00

49 lines
1.6 KiB
JavaScript

module.exports = function (sequelize, DataTypes) {
const Comment = sequelize.define('Comment', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true
},
entityType: {
field: 'type',
type: DataTypes.STRING,
allowNull: false
},
entity: {
type: DataTypes.VIRTUAL(DataTypes.UUID, ['conferenceId', 'speakerId', 'postId']),
},
content: {
type: DataTypes.STRING,
allowNull: false
},
user: {
type: DataTypes.VIRTUAL(DataTypes.UUID, ['userId']),
},
/*conference: {
type: DataTypes.VIRTUAL(DataTypes.UUID, ['conferenceId']),
},*/
post: {
type: DataTypes.VIRTUAL(DataTypes.UUID, ['postId']),
},
/*speaker: {
type: DataTypes.VIRTUAL(DataTypes.UUID, ['speakerId']),
},*/
}, {
tableName: 'comments',
freezeTableName: true,
timestamps: true,
});
Comment.associate = function (models) {
Comment.User = Comment.belongsTo(models.User, { foreignKey: 'userId', constraints: false });
//Comment.Conference = Comment.belongsTo(models.Conference, { foreignKey: 'conferenceId', constraints: false });
Comment.Post = Comment.belongsTo(models.Post, { foreignKey: 'postId', constraints: false });
//Comment.Speaker = Comment.belongsTo(models.Speaker, { foreignKey: 'speakerId', constraints: false });
};
return Comment;
};