app2-api/modules/speakers/speaker.model.js

76 lines
2.0 KiB
JavaScript
Raw Normal View History

2019-06-26 10:24:58 +00:00
'use strict';
module.exports = function (sequelize, DataTypes) {
const Speaker = sequelize.define('Speaker', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
name: {
type: DataTypes.STRING,
allowNull: false,
},
description: {
2019-07-05 07:06:29 +00:00
type: DataTypes.TEXT,
2019-06-26 10:24:58 +00:00
},
short_description: {
type: DataTypes.STRING,
},
slogan: {
type: DataTypes.STRING,
},
twitter: {
type: DataTypes.STRING,
},
facebook: {
type: DataTypes.STRING,
},
youtube: {
type: DataTypes.STRING,
},
2019-07-05 07:06:29 +00:00
linkedin: {
2019-06-26 10:24:58 +00:00
type: DataTypes.STRING,
},
instagram: {
type: DataTypes.STRING,
},
web: {
type: DataTypes.STRING,
},
state: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: 'borrador'
},
typeId: {
type: DataTypes.UUID,
foreignKey: true,
},
}, {
tableName: 'speakers',
freezeTableName: true,
timestamps: true,
});
Speaker.associate = function (models) {
Speaker.SpeakerType = Speaker.belongsTo(models.SpeakerType, { foreignKey: 'typeId' });
Speaker.UserCreate = Speaker.belongsTo(models.User, { foreignKey: 'userId' });
Speaker.Values = Speaker.belongsToMany(models.Value, {
through: models.SpeakerValue,
foreignKey: 'speakerId'
});
2019-07-05 07:06:29 +00:00
Speaker.EventSchedules = Speaker.hasMany(models.EventSchedule, { foreignKey: 'speakerId' });
Speaker.EventQuestions = Speaker.hasMany(models.EventQuestion, { foreignKey: 'speakerId' });
2019-06-26 10:24:58 +00:00
/*
Speaker.Multimedias = Speaker.belongsToMany(models.MultimediaFile, {
through: models.MultimediaSpeaker,
foreignKey: 'speakerId'
});
*/
};
return Speaker;
};