Colubrina/backend/models/polls.js

55 lines
1.1 KiB
JavaScript
Raw Permalink Normal View History

2022-08-14 22:06:56 +10:00
"use strict"
const { Model } = require("sequelize")
module.exports = (sequelize, DataTypes) => {
class Poll 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) {
Poll.belongsTo(models.Message, {
as: "message"
})
Poll.hasMany(models.PollAnswer, {
as: "answers",
foreignKey: "pollId"
})
}
}
Poll.init(
{
messageId: {
type: DataTypes.BIGINT
},
userId: {
type: DataTypes.BIGINT
},
title: {
type: DataTypes.STRING
},
description: {
type: DataTypes.TEXT
},
options: {
type: DataTypes.JSON,
defaultValue: []
},
createdAt: {
allowNull: false,
type: DataTypes.DATE
},
updatedAt: {
allowNull: false,
type: DataTypes.DATE
}
},
{
sequelize,
modelName: "Poll"
}
)
return Poll
}