import { Model, DataTypes, Sequelize } from 'sequelize'; export interface ZoneManagerAttributes { id: string; zoneId: string; userId: string; managerType: string; isActive: boolean; assignedAt: Date; } export interface ZoneManagerInstance extends Model, ZoneManagerAttributes { } export default (sequelize: Sequelize) => { const ZoneManager = sequelize.define('ZoneManager', { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true }, zoneId: { type: DataTypes.UUID, allowNull: false, references: { model: 'zones', key: 'id' } }, userId: { type: DataTypes.UUID, allowNull: false, references: { model: 'users', key: 'id' } }, managerType: { type: DataTypes.STRING, allowNull: false }, isActive: { type: DataTypes.BOOLEAN, defaultValue: true }, assignedAt: { type: DataTypes.DATE, defaultValue: DataTypes.NOW } }, { tableName: 'zone_managers', timestamps: true, updatedAt: false }); (ZoneManager as any).associate = (models: any) => { ZoneManager.belongsTo(models.Zone, { foreignKey: 'zoneId', as: 'zone' }); ZoneManager.belongsTo(models.User, { foreignKey: 'userId', as: 'user' }); }; return ZoneManager; };