-- 租户访客默认楼层策略（电梯应用库 cw-elevator-application）
-- 设计说明：docs/business/租户访客默认楼层-数据库配置阶段技术设计.md
--
-- 本脚本会先 DROP 再 CREATE：删除现有 tenant_visitor_floor_policy 及全部历史数据，然后按 v2 后最终结构建空表。
-- 执行前请备份；若仅需 ALTER 升级旧表而不删数据，请改用 tenant_visitor_floor_policy_v2.sql（勿与本脚本混用）。
--
-- 连接方式任选其一：
--   mysql -h ... -u ... -p... cw-elevator-application < tenant_visitor_floor_policy.sql
--   或在本文件中依赖下方 USE（手工客户端执行时）。

SET NAMES utf8mb4;

USE `cw-elevator-application`;

DROP TABLE IF EXISTS tenant_visitor_floor_policy;

CREATE TABLE tenant_visitor_floor_policy (
  id              VARCHAR(32)  NOT NULL COMMENT '主键',
  business_id     VARCHAR(64)  NULL COMMENT 'DEPRECATED: 已废弃，以 org_id 为准',
  org_id          VARCHAR(32)  NULL COMMENT '组织节点ID(cw_is_organization.ID)',
  policy_type     VARCHAR(32)  NOT NULL DEFAULT 'INTERSECT_ALLOWLIST' COMMENT '策略类型',
  allow_zone_ids  TEXT         NULL COMMENT 'JSON 数组，zoneId 列表',
  building_id     VARCHAR(64)  NULL COMMENT '预留：楼栋维度；租户默认填 NULL',
  enabled         TINYINT(1)   NOT NULL DEFAULT 1 COMMENT '1 启用 0 停用',
  policy_version  BIGINT       NOT NULL DEFAULT 1 COMMENT '配置版本号',
  remark          VARCHAR(256) NULL,
  created_by      VARCHAR(64)  NULL,
  created_at      BIGINT       NULL,
  updated_by      VARCHAR(64)  NULL,
  updated_at      BIGINT       NULL,
  PRIMARY KEY (id),
  UNIQUE KEY uk_org_building (org_id, building_id),
  KEY idx_business_enabled (business_id, enabled)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户访客默认楼层策略（与组织 floorList 求交）';
