const { DataTypes } = require('sequelize'); const { sequelize } = require('../db'); const Consumable = sequelize.define( 'Consumable', { consumableId: { type: DataTypes.STRING, primaryKey: true, allowNull: false, }, name: { type: DataTypes.STRING, allowNull: false, }, category: { type: DataTypes.STRING, allowNull: false, }, unit: { type: DataTypes.STRING, allowNull: false, defaultValue: '个', }, currentStock: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 0, }, minStock: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 10, }, maxStock: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 0, comment: '最大库存,0表示无限制', }, unitPrice: { type: DataTypes.DECIMAL(10, 2), allowNull: false, defaultValue: 0, }, supplier: { type: DataTypes.STRING, }, location: { type: DataTypes.STRING, comment: '存放位置', }, description: { type: DataTypes.TEXT, }, snList: { type: DataTypes.JSON, allowNull: true, defaultValue: [], comment: 'SN序列号列表,JSON数组格式', }, status: { type: DataTypes.STRING, defaultValue: 'active', }, version: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 0, comment: '乐观锁版本号', }, }, { tableName: 'consumables', timestamps: true, indexes: [ { fields: ['category'] }, { fields: ['status'] }, { fields: ['category', 'status'] }, { fields: ['updatedAt'] }, ], } ); module.exports = Consumable;