<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

<mapper namespace="kr.co.i2talk.sns">
<!-- 1. 추가  쿼리 메소드 작성 -->
	<select id="kr.co.i2talk.sns.listSnsUserClient"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
	/* kr.co.i2talk.sns.listSnsUserClient */
SELECT
	*
FROM (
	SELECT COUNT(*) OVER() TOTAL_CNT,
		ROW_NUMBER() OVER(order by suc.use_yn desc, suc.lst_connect_dttm desc, sc.client_nm asc) RN,
		suc.usr_id,
		suc.client_id, sc.client_nm,
		suc.use_yn,
		suc.use_stop_dttm,
		suc.connect_state_cd,
		suc.lst_connect_dttm
	FROM
		sns_user_client suc, sns_client sc
	WHERE suc.client_id = sc.client_id
	--and suc.use_yn = 'Y'
	and sc.usr_del_aval_yn = 'Y'
	and suc.usr_id = #{usr_id}
	order by suc.use_yn desc, suc.lst_connect_dttm desc, sc.client_nm asc)
	</select>

	<select id="kr.co.i2talk.sns.viewSnsUserClient"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
	/* kr.co.i2talk.sns.viewSnsUserClient */
	SELECT
		  USR_ID
		, CLIENT_ID
		, USE_YN
		, USE_STOP_DTTM
		, CONNECT_STATE_CD
		, LST_CONNECT_DTTM
		, PUSH_TOKEN
		, REG_DTTM
		, NOTI_RCVR_YN		
	FROM
		SNS_USER_CLIENT
	WHERE 1=1
	 <if test="@i2c.cmm.util.StringUtil@isEmpty(usr_id) == false">	
     AND USR_ID = #{usr_id}
     </if>
	 <if test="@i2c.cmm.util.StringUtil@isEmpty(client_id) == false">	
     AND CLIENT_ID = #{client_id}        
     </if>
     		
	</select>

	<insert id="kr.co.i2talk.sns.insertSnsUserClient"
		parameterType="Map">
/* kr.co.i2talk.sns.insertSnsUserClient */
INSERT INTO sns_user_client
	(usr_id, client_id, use_yn, use_stop_dttm, connect_state_cd, lst_connect_dttm, push_token, reg_dttm, noti_rcvr_yn, OS_VERSION)
VALUES
	(#{usr_id}, #{client_id}, #{use_yn}, #{use_stop_dttm}, #{connect_state_cd}, #{lst_connect_dttm}, #{push_token}, #{reg_dttm}, #{noti_rcvr_yn}, #{os_version})
	</insert>

	<update id="kr.co.i2talk.sns.updateSnsUserClient"
		parameterType="Map">
/* kr.co.i2talk.sns.updateSnsUserClient */
UPDATE sns_user_client SET
	use_yn = #{use_yn},
	use_stop_dttm = #{use_stop_dttm},
	noti_rcvr_yn = #{noti_rcvr_yn},
	push_token = #{push_token}
WHERE
	usr_id = #{usr_id}
	and client_id = #{client_id}
	</update>

	<delete id="kr.co.i2talk.sns.deleteSnsUserClient"
		parameterType="Map">
/* kr.co.i2talk.sns.deleteSnsUserClient */
DELETE FROM sns_user_client
WHERE
	usr_id = #{usr_id}
	and client_id = #{client_id}
	</delete>
	
	<update id="kr.co.i2talk.sns.updateGoogleUuid"
		parameterType="Map">
	/* kr.co.i2talk.sns.updateGoogleUuid */
	INSERT INTO CHAT_USER 
        	(
			  CHAT_USR_ID
			, CHAT_LOGIN_ID
			, CHAT_LOGIN_PASSWORD
			, CHAT_USR_UUID
			) 
        VALUES 
        	(
			  #{usr_id}
			, #{chat_login_id}
			, #{chat_login_password}
			, #{chat_usr_uuid}			
			)
			ON DUPLICATE KEY 
		UPDATE 
			  CHAT_LOGIN_ID	= #{chat_login_id} 
	</update>

<!-- 1. 추가  쿼리 메소드 작성 끝 -->

<!-- 2. 추가  쿼리 메소드 작성 -->

	<update id="kr.co.i2talk.sns.updateSnsUserClientByUseYn"
		parameterType="Map">
/* kr.co.i2talk.sns.updateSnsUserClientByUseYn */
UPDATE sns_user_client SET
	use_yn = #{use_yn},
	use_stop_dttm = #{use_stop_dttm}
WHERE usr_id = #{usr_id}
and client_id = #{client_id}
	</update>

<!-- 2. 추가  쿼리 메소드 작성 끝 -->

</mapper>
