-- @SAFE
-- ============================================================
-- 昂盛达上位机 MES 接口（v1.5）数据表结构补齐迁移
-- 适用：mes2 数据库「在线升级 / 数据库升级」功能（Admin -> 数据库升级）
--
-- 重要说明（务必阅读）：
--   1. 首行 '-- @SAFE' 使本文件以「容错模式」执行：
--      每条语句独立执行，列已存在时 ADD COLUMN 报错会被自动跳过，
--      因此本脚本可重复运行（幂等），不会因 "Duplicate column" 而整体失败。
--   2. 不要使用 DELIMITER / 存储过程：在线升级器按 ';' 机械切分 SQL，
--      不识别 DELIMITER，存储过程会被拆坏导致语法错误。
--   3. 不要写 USE <库名>：在线升级已连接到正确的业务库，写死库名反而会因
--      "Unknown database" 整文件失败。
--
-- 字段映射（接口字段名 -> 数据库实际列）：
--     status       -> test_result
--     device       -> device_code
--     test_time    -> test_date
--     project_name -> product_model
-- 其余字段（tester/mo/site/station/work_order/group_name/running_time）
-- 为接口新增列，直接补齐。
-- ============================================================

-- ===== 1. DGZXY_asd_test_record 补齐接口字段 =====
ALTER TABLE `DGZXY_asd_test_record` ADD COLUMN `tester`       varchar(50)  NOT NULL DEFAULT '' COMMENT '测试员';
ALTER TABLE `DGZXY_asd_test_record` ADD COLUMN `mo`           varchar(50)  NOT NULL DEFAULT '' COMMENT '制令单';
ALTER TABLE `DGZXY_asd_test_record` ADD COLUMN `site`         varchar(100) NOT NULL DEFAULT '' COMMENT '工位';
ALTER TABLE `DGZXY_asd_test_record` ADD COLUMN `station`      varchar(100) NOT NULL DEFAULT '' COMMENT '站点';
ALTER TABLE `DGZXY_asd_test_record` ADD COLUMN `work_order`   varchar(50)  NOT NULL DEFAULT '' COMMENT '工单';
ALTER TABLE `DGZXY_asd_test_record` ADD COLUMN `group_name`   varchar(100) NOT NULL DEFAULT '' COMMENT '组别';
ALTER TABLE `DGZXY_asd_test_record` ADD COLUMN `running_time` varchar(50)  NOT NULL DEFAULT '' COMMENT '运行时间';

-- ===== 2. DGZXY_asd_device 补齐接口字段 =====
ALTER TABLE `DGZXY_asd_device` ADD COLUMN `device_code`  varchar(100) NOT NULL DEFAULT '' COMMENT '设备编码/序列号';
ALTER TABLE `DGZXY_asd_device` ADD COLUMN `group_name`   varchar(100) NOT NULL DEFAULT '' COMMENT '组别';
ALTER TABLE `DGZXY_asd_device` ADD COLUMN `line_name`    varchar(100) NOT NULL DEFAULT '' COMMENT '产线';
ALTER TABLE `DGZXY_asd_device` ADD COLUMN `station_code` varchar(100) NOT NULL DEFAULT '' COMMENT '工位编码';
ALTER TABLE `DGZXY_asd_device` ADD COLUMN `device_type`  varchar(100) NOT NULL DEFAULT '' COMMENT '设备型号';
ALTER TABLE `DGZXY_asd_device` ADD COLUMN `remark`       varchar(255) NOT NULL DEFAULT '' COMMENT '备注';

-- ===== 3. 修正 token 列长度（避免 64 位 token 被 char(32) 截断导致校验失败） =====
-- MODIFY 幂等：重复执行同一定义不会报错
ALTER TABLE `DGZXY_asd_api_token` MODIFY `token` varchar(128) NOT NULL COMMENT 'Token值';

-- 完成标记（在线升级器会忽略结果集，仅作可读提示）
SELECT 'ASD 接口迁移完成（SAFE 模式，已存在的列已自动跳过）' AS result;
