-- ========================================================
-- 物料信息模块数据库扩展脚本
-- 日期: 2025-05-27
-- 说明: 根据智采系统-物料信息需求扩展biz_material表
-- ========================================================

-- 1. 扩展物料表字段
-- 注意: spec字段保持为"规格型号"不变
-- 注意: remark字段保持不变
-- 注意: brand字段改为"厂家/品牌"

-- 使用存储过程判断字段是否存在，避免IF NOT EXISTS语法错误
DELIMITER //

CREATE PROCEDURE AddColumnIfNotExists(IN tableName VARCHAR(64), IN colName VARCHAR(64), IN colDef VARCHAR(255))
BEGIN
    IF NOT EXISTS (
        SELECT 1 FROM information_schema.columns 
        WHERE table_schema = DATABASE() 
        AND table_name = tableName 
        AND column_name = colName
    ) THEN
        SET @sql = CONCAT('ALTER TABLE ', tableName, ' ADD COLUMN ', colName, ' ', colDef);
        PREPARE stmt FROM @sql;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
    END IF;
END //

DELIMITER ;

-- 添加性能参数字段
CALL AddColumnIfNotExists('biz_material', 'performance_params', "TEXT COMMENT '性能参数(JSON格式)'");

-- 添加材质字段
CALL AddColumnIfNotExists('biz_material', 'material', "VARCHAR(100) DEFAULT '' COMMENT '材质(铜/铝合金/PVC等)'");

-- 添加用途字段
CALL AddColumnIfNotExists('biz_material', 'purpose', "VARCHAR(500) DEFAULT '' COMMENT '用途'");

-- 添加物料图片URL字段
CALL AddColumnIfNotExists('biz_material', 'image_url', "VARCHAR(500) DEFAULT '' COMMENT '物料图片URL'");

-- 删除存储过程
DROP PROCEDURE IF EXISTS AddColumnIfNotExists;

-- 2. 修改brand字段注释为"厂家/品牌"
ALTER TABLE biz_material MODIFY COLUMN brand VARCHAR(100) COMMENT '厂家/品牌';

-- 3. 添加物料详情页菜单配置(使用INSERT IGNORE避免重复)
INSERT IGNORE INTO sys_menu(menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES
(2011, '物料详情', 2001, 1, 'detail', 'bid/material/detail', NULL, 1, 0, 'C', '1', '0', 'bid:material:detail', '#', 'admin', NOW(), '', '', '');
