76 lines
2.0 KiB
JavaScript
76 lines
2.0 KiB
JavaScript
'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: {
|
|
type: DataTypes.TEXT,
|
|
},
|
|
short_description: {
|
|
type: DataTypes.STRING,
|
|
},
|
|
slogan: {
|
|
type: DataTypes.STRING,
|
|
},
|
|
twitter: {
|
|
type: DataTypes.STRING,
|
|
},
|
|
facebook: {
|
|
type: DataTypes.STRING,
|
|
},
|
|
youtube: {
|
|
type: DataTypes.STRING,
|
|
},
|
|
linkedin: {
|
|
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'
|
|
});
|
|
|
|
Speaker.EventSchedules = Speaker.hasMany(models.EventSchedule, { foreignKey: 'speakerId' });
|
|
Speaker.EventQuestions = Speaker.hasMany(models.EventQuestion, { foreignKey: 'speakerId' });
|
|
/*
|
|
Speaker.Multimedias = Speaker.belongsToMany(models.MultimediaFile, {
|
|
through: models.MultimediaSpeaker,
|
|
foreignKey: 'speakerId'
|
|
});
|
|
*/
|
|
};
|
|
|
|
return Speaker;
|
|
}; |