const { DataTypes } = require('sequelize'); const { sequelize } = require('../db'); const TicketOperationRecord = sequelize.define('TicketOperationRecord', { recordId: { type: DataTypes.STRING, primaryKey: true, allowNull: false, unique: true }, ticketId: { type: DataTypes.STRING, allowNull: false, comment: '关联工单ID' }, operationType: { type: DataTypes.STRING, allowNull: false, comment: '操作类型: create/update/status_change/assignment/comment/attachment' }, operationDescription: { type: DataTypes.TEXT, comment: '操作描述' }, operatorId: { type: DataTypes.STRING, allowNull: false, comment: '操作人ID' }, operatorName: { type: DataTypes.STRING, allowNull: false, comment: '操作人姓名' }, operatorRole: { type: DataTypes.STRING, comment: '操作人角色' }, operationSteps: { type: DataTypes.JSON, defaultValue: [], comment: '操作步骤详情' }, spareParts: { type: DataTypes.JSON, defaultValue: [], comment: '使用的备件列表' }, beforeState: { type: DataTypes.JSON, comment: '操作前状态' }, afterState: { type: DataTypes.JSON, comment: '操作后状态' }, duration: { type: DataTypes.INTEGER, comment: '操作耗时(分钟)' }, result: { type: DataTypes.STRING, comment: '操作结果: success/failed/partial' }, notes: { type: DataTypes.TEXT, comment: '备注信息' }, attachments: { type: DataTypes.JSON, defaultValue: [], comment: '附件' }, metadata: { type: DataTypes.JSON, defaultValue: {}, comment: '扩展字段' } }, { tableName: 'ticket_operation_records', timestamps: true, indexes: [ { fields: ['ticketId'] }, { fields: ['operatorId'] }, { fields: ['operationType'] }, { fields: ['createdAt'] } ] }); module.exports = TicketOperationRecord;