'use strict'; module.exports = function (sequelize, DataTypes) { const EventInscription = sequelize.define('EventInscription', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true, }, date: { type: DataTypes.DATE, }, code_ticket: { type: DataTypes.INTEGER, }, type: { type: DataTypes.STRING, allowNull: false, defaultValue: 'regular' //grupal, invitacion-regular, invitation-grupal }, source: { type: DataTypes.STRING, //app, web }, marketing_memberId: { type: DataTypes.STRING, }, validated: { type: DataTypes.BOOLEAN, }, reservationId:{ //contendra el id de la reserva o de la lista de espera de la reserva type: DataTypes.UUID, foreignKey: true, }, overflowEventId: { //contendra el id del evento de lista de espera del evento type: DataTypes.UUID, foreignKey: true, } }, { tableName: 'events_inscriptions', freezeTableName: true, timestamps: true, }); EventInscription.associate = function (models) { EventInscription.Event = EventInscription.belongsTo(models.Event, { foreignKey: 'eventId', as: 'event' }); EventInscription.Reservation = EventInscription.belongsTo(models.EventReservation, { foreignKey: 'reservationId', as: 'reservation' }); EventInscription.User = EventInscription.belongsTo(models.User, { foreignKey: 'userId', as: 'user' }); EventInscription.UserValidate = EventInscription.belongsTo(models.User, { foreignKey: 'validateUserId' }); }; return EventInscription; };