module.exports = (sequelize, DataTypes) => { const Zone = sequelize.define('Zone', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true }, name: { type: DataTypes.STRING, allowNull: false }, regionId: { type: DataTypes.UUID, allowNull: false, references: { model: 'regions', key: 'id' } }, zonalManagerId: { type: DataTypes.UUID, allowNull: true, references: { model: 'users', key: 'id' } } }, { tableName: 'zones', timestamps: true, indexes: [ { fields: ['regionId'] }, { unique: true, fields: ['name', 'regionId'] } ] }); Zone.associate = (models) => { Zone.belongsTo(models.Region, { foreignKey: 'regionId', as: 'region' }); Zone.belongsTo(models.User, { foreignKey: 'zonalManagerId', as: 'zonalManager' }); }; return Zone; };