'use strict'; module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable('projects', { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true, allowNull: false }, name: { type: Sequelize.STRING(100), allowNull: false, comment: '项目名称' }, status: { type: Sequelize.ENUM('supervision', 'completed'), allowNull: false, defaultValue: 'supervision', comment: '项目状态:supervision-监管中,completed-已结项' }, farmName: { type: Sequelize.STRING(200), allowNull: false, comment: '养殖场名称' }, supervisionObject: { type: Sequelize.STRING(50), allowNull: false, comment: '监管对象' }, supervisionQuantity: { type: Sequelize.INTEGER, allowNull: false, defaultValue: 0, comment: '监管数量' }, supervisionPeriod: { type: Sequelize.STRING(50), allowNull: false, comment: '监管周期' }, supervisionAmount: { type: Sequelize.DECIMAL(15, 2), allowNull: false, defaultValue: 0.00, comment: '监管金额' }, startTime: { type: Sequelize.DATEONLY, allowNull: false, comment: '起始时间' }, endTime: { type: Sequelize.DATEONLY, allowNull: false, comment: '结束时间' }, earTag: { type: Sequelize.INTEGER, allowNull: false, defaultValue: 0, comment: '耳标数量' }, collar: { type: Sequelize.INTEGER, allowNull: false, defaultValue: 0, comment: '项圈数量' }, host: { type: Sequelize.INTEGER, allowNull: false, defaultValue: 0, comment: '主机数量' }, loanOfficer: { type: Sequelize.STRING(100), allowNull: true, comment: '贷款专员' }, description: { type: Sequelize.TEXT, allowNull: true, comment: '项目描述' }, createdBy: { type: Sequelize.INTEGER, allowNull: true, comment: '创建人ID' }, updatedBy: { type: Sequelize.INTEGER, allowNull: true, comment: '更新人ID' }, createdAt: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.NOW }, updatedAt: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.NOW } }); // 添加索引 await queryInterface.addIndex('projects', ['status']); await queryInterface.addIndex('projects', ['farmName']); await queryInterface.addIndex('projects', ['createdBy']); await queryInterface.addIndex('projects', ['startTime']); await queryInterface.addIndex('projects', ['endTime']); }, async down(queryInterface, Sequelize) { await queryInterface.dropTable('projects'); } };