const { DataTypes } = require('sequelize'); const { sequelize } = require('../db'); const InventoryTask = sequelize.define( 'InventoryTask', { taskId: { type: DataTypes.STRING, primaryKey: true, allowNull: false, unique: true, }, planId: { type: DataTypes.STRING, allowNull: false, }, targetType: { type: DataTypes.STRING, allowNull: false, comment: 'room:机房, rack:机柜, device:设备', }, targetId: { type: DataTypes.STRING, allowNull: false, comment: '目标ID(机房ID/机柜ID/设备ID)', }, targetName: { type: DataTypes.STRING, allowNull: true, comment: '目标名称', }, status: { type: DataTypes.STRING, defaultValue: 'pending', comment: 'pending:待执行, in_progress:进行中, completed:已完成, skipped:已跳过', }, totalDevices: { type: DataTypes.INTEGER, defaultValue: 0, comment: '设备总数', }, checkedDevices: { type: DataTypes.INTEGER, defaultValue: 0, comment: '已盘点设备数', }, normalDevices: { type: DataTypes.INTEGER, defaultValue: 0, comment: '正常设备数', }, abnormalDevices: { type: DataTypes.INTEGER, defaultValue: 0, comment: '异常设备数', }, assignedTo: { type: DataTypes.STRING, allowNull: true, }, assignedAt: { type: DataTypes.DATE, allowNull: true, }, completedAt: { type: DataTypes.DATE, allowNull: true, }, remark: { type: DataTypes.TEXT, allowNull: true, }, }, { tableName: 'inventory_tasks', timestamps: true, indexes: [{ fields: ['planId'] }, { fields: ['status'] }, { fields: ['assignedTo'] }], } ); module.exports = InventoryTask;