const { DataTypes } = require('sequelize'); const sequelize = require('../config/database'); const SmartHost = sequelize.define('SmartHost', { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, host_id: { type: DataTypes.STRING, allowNull: false, unique: true, comment: '主机编号' }, name: { type: DataTypes.STRING, allowNull: false, comment: '主机名称' }, ip_address: { type: DataTypes.STRING, allowNull: false, comment: 'IP地址' }, status: { type: DataTypes.ENUM('active', 'inactive', 'maintenance'), allowNull: false, defaultValue: 'inactive', comment: '状态:active-使用中,inactive-未使用,maintenance-维护中' }, remark: { type: DataTypes.TEXT, allowNull: true, comment: '备注' }, created_at: { type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW, comment: '创建时间' }, updated_at: { type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW, comment: '更新时间' } }, { tableName: 'smart_hosts', timestamps: true, createdAt: 'created_at', updatedAt: 'updated_at', paranoid: false, indexes: [ { name: 'idx_smart_host_id', fields: ['host_id'] }, { name: 'idx_smart_host_status', fields: ['status'] } ] }); // 钩子函数,在保存前更新更新时间 SmartHost.beforeSave((host) => { host.updated_at = new Date(); }); module.exports = SmartHost;