-- ============================================================
-- D-05 可选加固：customer.is_biz_negotiated 补默认值（单事务）
-- 工单：customer-defectfix（e2e-report-v2 §五 D-05 / 任务书缺陷清单）
-- 现象：导入含 INSERT 行 → 任务 FAILED「导入执行异常，请联系管理员」，
--       失败明细 0 行；根因 = customer.is_biz_negotiated 列
--       tinyint NOT NULL 且无默认值，CustomerImportExecutor.createCustomer()
--       未赋值 → INSERT 报 Field 'is_biz_negotiated' doesn't have a default value
-- 应用层修复（本 effort 主修复，先于本脚本生效）：
--       createCustomer() 已补 setIsBizNegotiated(0) / setIsChild(0)
-- 本脚本（可选加固，【待用户批准后手动执行，本 effort 不执行】）：
--       给该列补 DEFAULT 0，兜底未来任何遗漏写入路径；不改已有数据
-- 风险评估：MODIFY 仅改默认值元数据（类型/NOT NULL 保持原样），
--       InnoDB 即时元数据变更，不重建表、不锁行、毫秒级完成
-- 执行前核对（远程共享库 8.129.84.155，多人共用纪律）：
--   1) SHOW COLUMNS FROM customer LIKE 'is_biz_negotiated';
--      —— 期望与探针基线一致：Type=tinyint(1), Null=NO, Default=NULL
--   2) SHOW CREATE TABLE customer;
--      —— 若现场 COMMENT 与下方不一致，以现场原文替换后再执行
-- ============================================================

BEGIN;

ALTER TABLE customer
    MODIFY COLUMN is_biz_negotiated tinyint NOT NULL DEFAULT 0
    COMMENT '是否已商务洽谈（0否 1是；D-05 补默认值）';

COMMIT;

-- ============================================================
-- D-05 同族补充发现（customer-defectfix heavy 复跑实锤）：
--   relation_star_level 亦为 NOT NULL 无默认，且导入模板 9 列无该列可填，
--   任何 INSERT 行必为 null 必炸（round-1 起导入 INSERT 从未真正成功，
--   先后被 is_biz_negotiated / relation_star_level 挡住）。
-- 应用层已补 setIsBizNegotiated(0) / setRelationStarLevel(0) 占位；
-- 若走库端根治（二选一，待批准后手动执行），建议放开该列 NOT NULL：
-- ============================================================
-- ALTER TABLE customer
--     MODIFY COLUMN relation_star_level tinyint NULL
--     COMMENT '关系星级 1~5（硬编码枚举非字典，D4-rev1）；NULL=未评估（导入新建占位）';
-- 说明：手工新增/编辑仍走 validateCommon requireStar 强制 1~5，仅导入路径允许 NULL；
--       放开后 createCustomer 的 setRelationStarLevel(0) 占位可移除（留 0 不报错，仅语义弱）。

-- 回滚（如需还原 is_biz_negotiated 为无默认值）：
-- ALTER TABLE customer
--     MODIFY COLUMN is_biz_negotiated tinyint NOT NULL
--     COMMENT '是否已商务洽谈';
