<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.visor.module.asset.dao.HostDAO">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="org.dromara.visor.module.asset.entity.domain.HostDO">
        <id column="id" property="id"/>
        <result column="type" property="type"/>
        <result column="name" property="name"/>
        <result column="code" property="code"/>
        <result column="address" property="address"/>
        <result column="port" property="port"/>
        <result column="status" property="status"/>
        <result column="config" property="config"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="creator" property="creator"/>
        <result column="updater" property="updater"/>
        <result column="deleted" property="deleted"/>
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, type, name, code, address, port, status, config, create_time, update_time, creator, updater, deleted
    </sql>

    <update id="setKeyIdWithNull">
        UPDATE host
        SET config = JSON_REMOVE(config, '$.keyId')
        WHERE deleted = 0
        <foreach collection="keyIdList" item="item" separator="OR" open="AND (" close=")">
            JSON_CONTAINS(config, JSON_OBJECT('keyId', #{item}))
        </foreach>
    </update>

    <update id="setIdentityIdWithNull">
        UPDATE host
        SET config = JSON_REMOVE(config, '$.identityId')
        WHERE deleted = 0
        <foreach collection="identityIdList" item="item" separator="OR" open="AND (" close=")">
            JSON_CONTAINS(config, JSON_OBJECT('identityId', #{item}))
        </foreach>
    </update>

</mapper>
