-- ============================================================
-- 修复: cms_contact_lead.phone 字段长度不足导致 "Data too long"
-- 错误: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation:
--       Data truncation: Data too long for column 'phone' at row 1
-- 原因: 公开接口 /api/cms/cms-contact-lead/submit 传入超长/带分隔符的手机号
--       (如 "+86 (138) 1234-5678 ext 8888" 或恶意超长 payload)
-- 方案:
--   1. 将 phone 字段从原长度(VARCHAR(20)) 扩到 VARCHAR(32)，
--      足以容纳国际号码 + 分机号；
--   2. (可选) 同时放宽 name / company 等字段，避免后续再撞同类问题。
-- 配合代码侧改动:
--   - CmsContactLead 实体加 @Size / @Pattern / @NotBlank 校验
--   - CmsContactLeadServiceImpl.submit 加 phone 清洗逻辑
--   (去除空格、横线、括号，仅保留 + 和数字)
-- 执行环境: 所有部署了 cms-api 的租户库 (cms_contact_lead 为全局表)
-- 执行方式: 幂等，可重复执行
-- ============================================================

-- 1. 主修复：扩展 phone 字段到 VARCHAR(32)
ALTER TABLE cms_contact_lead
    MODIFY COLUMN phone VARCHAR(32) DEFAULT NULL COMMENT '手机号';

-- 2. (可选) 同步放宽 name / company，避免后续同类报错
ALTER TABLE cms_contact_lead
    MODIFY COLUMN name VARCHAR(50) DEFAULT NULL COMMENT '联系人姓名';

ALTER TABLE cms_contact_lead
    MODIFY COLUMN company VARCHAR(100) DEFAULT NULL COMMENT '单位/公司名称';

ALTER TABLE cms_contact_lead
    MODIFY COLUMN need VARCHAR(1000) DEFAULT NULL COMMENT '需求描述';

-- 3. 验证字段类型已更新
-- 预期: phone VARCHAR(32), name VARCHAR(50), company VARCHAR(100), need VARCHAR(1000)
SHOW COLUMNS FROM cms_contact_lead LIKE 'phone';
SHOW COLUMNS FROM cms_contact_lead LIKE 'name';
SHOW COLUMNS FROM cms_contact_lead LIKE 'company';
SHOW COLUMNS FROM cms_contact_lead LIKE 'need';
