-- =============================================================
-- 风控平台 数据库增量脚本  特种设备-设备铭牌照片字段
-- 适用版本: 风控平台 2026-07-07 之前的部署
--
-- 需求:
--   新增特种设备时必须上传设备铭牌照片(基于 MinIO 对象存储),
--   支持 JPG/PNG 格式,单个文件不超过 5MB。
--
-- 本脚本特征:
--   - 全部 SQL 幂等,可重复执行(基于 INFORMATION_SCHEMA 判断)
--   - 新环境用 risk_control_platform.sql 部署;已有环境用本脚本增量升级
--   - 不修改业务表已有数据,仅追加字段
-- =============================================================

SET NAMES utf8mb4;

-- =============================================================
-- 1. 特种设备表 risk_special_equipment 加设备铭牌照片字段
-- =============================================================

-- 1.1 nameplate_url 设备铭牌照片 URL(MinIO public 桶路径)
SET @sql = (SELECT IF(
  (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
     WHERE TABLE_SCHEMA = DATABASE()
       AND TABLE_NAME   = 'risk_special_equipment'
       AND COLUMN_NAME  = 'nameplate_url') = 0,
  'ALTER TABLE `risk_special_equipment` ADD COLUMN `nameplate_url` VARCHAR(500) DEFAULT NULL COMMENT ''设备铭牌照片URL(MinIO对象存储路径,新增设备必填)'' AFTER `photo_list`',
  'SELECT 1'));
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

-- 1.2 nameplate_name 设备铭牌照片原始文件名(下载时显示用)
SET @sql = (SELECT IF(
  (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
     WHERE TABLE_SCHEMA = DATABASE()
       AND TABLE_NAME   = 'risk_special_equipment'
       AND COLUMN_NAME  = 'nameplate_name') = 0,
  'ALTER TABLE `risk_special_equipment` ADD COLUMN `nameplate_name` VARCHAR(200) DEFAULT NULL COMMENT ''设备铭牌照片原始文件名'' AFTER `nameplate_url`',
  'SELECT 1'));
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;


-- =============================================================
-- 2. 验证清单(可手动 SELECT 确认)
-- =============================================================
-- SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT
--   FROM INFORMATION_SCHEMA.COLUMNS
--  WHERE TABLE_SCHEMA = DATABASE()
--    AND TABLE_NAME = 'risk_special_equipment'
--    AND COLUMN_NAME IN ('nameplate_url', 'nameplate_name');