const { DataTypes } = require('sequelize'); const { sequelize } = require('../db'); const Consumable = require('./Consumable'); const ConsumableRecord = sequelize.define('ConsumableRecord', { recordId: { type: DataTypes.UUID, primaryKey: true, defaultValue: DataTypes.UUIDV4, allowNull: false }, consumableId: { type: DataTypes.STRING, allowNull: false, references: { model: Consumable, key: 'consumableId' } }, type: { type: DataTypes.ENUM('in', 'out'), allowNull: false }, quantity: { type: DataTypes.INTEGER, allowNull: false }, previousStock: { type: DataTypes.INTEGER, allowNull: false }, currentStock: { type: DataTypes.INTEGER, allowNull: false }, operator: { type: DataTypes.STRING, allowNull: false }, reason: { type: DataTypes.STRING }, recipient: { type: DataTypes.STRING }, notes: { type: DataTypes.TEXT }, snList: { type: DataTypes.JSON, allowNull: true, defaultValue: [], comment: '本次操作的SN序列号列表' } }, { tableName: 'consumable_records', timestamps: true, indexes: [ { fields: ['consumableId'] }, { fields: ['type'] }, { fields: ['createdAt'] } ] }); ConsumableRecord.belongsTo(Consumable, { foreignKey: 'consumableId', as: 'consumable', onDelete: 'CASCADE' }); Consumable.hasMany(ConsumableRecord, { foreignKey: 'consumableId', as: 'records', onDelete: 'CASCADE' }); module.exports = ConsumableRecord;