-- 租户访客楼层策略：org_id 粒度修复（原地 ALTER，不删表）
-- 若已执行新版 tenant_visitor_floor_policy.sql（内含 DROP+CREATE 完整结构），请勿再执行本文件。
-- 执行顺序（历史流程）：先 DDL → 数据迁移 → 发应用包
-- 回滚：DROP INDEX uk_org_building, DROP COLUMN org_id, ADD UNIQUE KEY uk_biz_building (business_id, building_id)

USE `cw-elevator-application`;

-- 1. 新增 org_id 列
ALTER TABLE tenant_visitor_floor_policy
  ADD COLUMN org_id VARCHAR(32) NULL COMMENT '组织节点ID(cw_is_organization.ID)'
  AFTER business_id;

-- 2. 替换唯一约束（business_id → org_id）
ALTER TABLE tenant_visitor_floor_policy
  DROP INDEX uk_biz_building,
  ADD UNIQUE KEY uk_org_building (org_id, building_id);

-- 3. 标记 business_id 为废弃
ALTER TABLE tenant_visitor_floor_policy
  MODIFY COLUMN business_id VARCHAR(64) NULL COMMENT 'DEPRECATED: 已废弃，以 org_id 为准';

-- 验证
SELECT COLUMN_NAME, COLUMN_KEY, COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'cw-elevator-application'
  AND TABLE_NAME = 'tenant_visitor_floor_policy'
ORDER BY ORDINAL_POSITION;
