-- M005 酒店上下文统一：单酒店阶段数据库级约束平台酒店最多只能有一家 ACTIVE。
-- 上线前如已有多家 ACTIVE 酒店，应先人工确认保留哪一家，不能由迁移脚本静默禁用其他酒店。
ALTER TABLE platform_hotel
    ADD COLUMN active_hotel_singleton_key VARCHAR(16) GENERATED ALWAYS AS (
        CASE WHEN hotel_status = 'ACTIVE' THEN 'ACTIVE' ELSE NULL END
    );

-- MySQL 唯一索引允许多个 NULL，因此只会限制 platform_hotel 最多一条 hotel_status='ACTIVE'。
CREATE UNIQUE INDEX uk_platform_hotel_single_active
    ON platform_hotel (active_hotel_singleton_key);
