-- 创建全局资产标识符注册表，保证 ICCID/VirtualNo 跨 tb_iot_card 和 tb_device 全局唯一
CREATE TABLE IF NOT EXISTS tb_asset_identifier (
    id          BIGSERIAL PRIMARY KEY,
    identifier  VARCHAR(100) NOT NULL,
    asset_type  VARCHAR(20)  NOT NULL,
    asset_id    BIGINT       NOT NULL,
    created_at  TIMESTAMPTZ  NOT NULL DEFAULT NOW(),
    CONSTRAINT uq_asset_identifier UNIQUE (identifier)
);
CREATE INDEX IF NOT EXISTS idx_asset_identifier_asset ON tb_asset_identifier(asset_type, asset_id);
COMMENT ON TABLE tb_asset_identifier IS '全局资产标识符注册表';
COMMENT ON COLUMN tb_asset_identifier.identifier IS '标识符值（ICCID 或 VirtualNo，全局唯一）';
COMMENT ON COLUMN tb_asset_identifier.asset_type IS '资产类型：iot_card 或 device';
COMMENT ON COLUMN tb_asset_identifier.asset_id IS '对应资产的主键 ID';
