-- ===========================================================================
-- S6-FUNC-004-TOOLING-LEDGER-CRUD-1 · verify
--
-- 契约（AutoVersionUpdate.RunVerifyScriptIfExists）：逐条执行、取首行首列、
-- 交 IsTruthy 判定，不真即抛。故：禁止 SET @var；每条语句自包含；
-- 每条返回「通过为真」的标量（用 = 期望值 得 1/0），不得返回错误条数；
-- 一条语句一个断言；文件以最后一条 SQL 的分号结束。
-- ===========================================================================

-- 01 · 唯一索引存在，且恰好由 (tenant_id, MoldTypeCode) 两列组成
SELECT COUNT(*) = 2
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
  AND TABLE_NAME = 'MoldToolList'
  AND INDEX_NAME = 'uk_MoldToolList_tenant_type_code'
  AND COLUMN_NAME IN ('tenant_id', 'MoldTypeCode');

-- 02 · 该索引是 UNIQUE（NON_UNIQUE = 0）
SELECT COUNT(*) = 2
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
  AND TABLE_NAME = 'MoldToolList'
  AND INDEX_NAME = 'uk_MoldToolList_tenant_type_code'
  AND NON_UNIQUE = 0;

-- 03 · 租户内业务编码无重复
SELECT (SELECT COUNT(*) FROM (
          SELECT tenant_id, MoldTypeCode
          FROM MoldToolList
          GROUP BY tenant_id, MoldTypeCode
          HAVING COUNT(*) > 1) x) = 0;

-- 04 · 未改动 tenant_id 可空性（本批只加索引，不做列变更）
SELECT COUNT(*) = 1
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
  AND TABLE_NAME = 'MoldToolList'
  AND COLUMN_NAME = 'tenant_id'
  AND IS_NULLABLE = 'YES';

-- 05 · 表列数仍为 24（未新增/删除任何列）
SELECT COUNT(*) = 24
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
  AND TABLE_NAME = 'MoldToolList';
