Files
miriamgemeinde/models/ContactPerson.js

61 lines
1.4 KiB
JavaScript

const { DataTypes } = require('sequelize');
module.exports = (sequelize) => {
const ContactPerson = sequelize.define('ContactPerson', {
name: {
type: DataTypes.STRING,
allowNull: false
},
phone: {
type: DataTypes.STRING,
allowNull: true
},
street: {
type: DataTypes.STRING,
allowNull: true
},
zipcode: {
type: DataTypes.STRING,
allowNull: true
},
city: {
type: DataTypes.STRING,
allowNull: true
},
email: {
type: DataTypes.STRING,
allowNull: true
},
expiryDate: {
type: DataTypes.DATEONLY,
allowNull: true
}
}, {
tableName: 'contact_persons',
timestamps: false
});
ContactPerson.associate = function(models) {
ContactPerson.belongsToMany(models.Event, {
through: models.EventContactPerson,
foreignKey: 'contact_person_id',
otherKey: 'event_id',
as: 'events'
});
ContactPerson.belongsToMany(models.Position, {
through: models.ContactPersonPosition,
foreignKey: 'contact_person_id',
otherKey: 'position_id',
as: 'positions'
});
ContactPerson.belongsToMany(models.Institution, {
through: models.InstitutionContactPerson,
foreignKey: 'contact_person_id',
otherKey: 'institution_id',
as: 'institutions'
});
};
return ContactPerson;
};