<?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="com.i2sema.v2.emma.EmmaAPIDAO">

	<sql id="tmplSearchSQL">
		<if test="orgId != null and orgId !=''">
			<![CDATA[
				AND et.org_id = #{orgId}
			]]>
		</if>
		<if test="serviceType != null and serviceType != ''">
			<![CDATA[
				AND et.service_type = #{serviceType}
			]]> 
		</if>
		<if test="tmplNm != null and tmplNm != ''">
			<![CDATA[
				AND et.tmpl_name LIKE CONCAT('%',#{tmplNm},'%')
			]]> 
		</if>
	</sql>

	<select id="emmaTmplCntByAPI" parameterType="map" resultType="int">
		<![CDATA[
			/* [com.i2sema.v2.emma.EmmaAPIDAO.emmaTmplCntByAPI] emma 템플릿 count */
			SELECT COUNT(0) AS count FROM emma_tmplat et WHERE et.use_at = 'Y'
		]]>
			<include refid="tmplSearchSQL" />
	</select>

	<select id="emmaTmplListByAPI" parameterType="map" resultType="map">
		<![CDATA[
			/* [com.i2sema.v2.emma.EmmaAPIDAO.emmaTmplListByAPI] emma 템플릿 list */
			SELECT
				 et.tmpl_seq			AS tmplSeq
				,et.tmpl_name			AS tmplNm
				,et.service_type		AS serviceType
				,et.subject				AS subject
				,et.content				AS content
				,et.file_seq			AS imgSeq
				,ef.file_name			AS imgNm
				,ef.file_save			AS imgSaveNm
				,et.rgst_date			AS rgstDate
			FROM
				emma_tmplat et LEFT JOIN emma_t_file ef ON et.file_seq = ef.file_seq
			WHERE et.use_at = 'Y'
		]]>
			<include refid="tmplSearchSQL" />
		<![CDATA[
			ORDER BY et.tmpl_seq DESC LIMIT #{firstIndex}, #{recordCountPerPage}
		]]>
	</select>

	<insert id="emmaTmplRgstByAPI" parameterType="map">
		<![CDATA[
			/* [com.i2sema.v2.emma.EmmaAPIDAO.emmaTmplRgstByAPI] emma 템플릿 register */
			INSERT INTO emma_tmplat
			(
				mber_no,
				org_id,
				tmpl_name,
				service_type,
				subject,
				content,
				file_seq,
				use_at,
				rgst_id,
				rgst_date
			)
			VALUES
			(
				#{mberNo},
				#{orgId},
				#{tmplNm},
				#{serviceType},
				#{subject},
				#{content},
				#{imgSeq},
				#{useAt},
				#{rgstId},
				#{rgstDate}
			)
		]]>
	</insert>
	
	<update id="emmaTmplDeleteByAPI" parameterType="map">
		<![CDATA[
			/* [com.i2sema.v2.emma.EmmaAPIDAO.emmaTmplDeleteByAPI] emma 템플릿 delete */
			UPDATE emma_tmplat
			SET use_at = 'N'
    		WHERE tmpl_seq IN
		]]>
		    <foreach item="item" collection="tmplSeqList" open="(" separator="," close=")">
		        #{item}
		    </foreach>
	</update>
	
	<sql id="imgSearchSQL">
		<if test="orgId != null and orgId !=''">
			<![CDATA[
				AND org_id = #{orgId}
			]]>
		</if>
		<if test="imgNm != null and imgNm != ''">
			<![CDATA[
				AND file_name LIKE CONCAT('%',#{imgNm},'%')
			]]> 
		</if>
	</sql>
	
	<select id="emmaImgCntByAPI" parameterType="map" resultType="int">
		<![CDATA[
			/* [com.i2sema.v2.emma.EmmaAPIDAO.emmaImgCntByAPI] emma 이미지 count */
			SELECT COUNT(0) AS count FROM emma_t_file WHERE use_at = 'Y'
		]]>
			<include refid="imgSearchSQL" />
	</select>

	<select id="emmaImgListByAPI" parameterType="map" resultType="map">
		<![CDATA[
			/* [com.i2sema.v2.emma.EmmaAPIDAO.emmaImgListByAPI] emma 이미지 list */
			SELECT
				 file_seq			AS imgSeq
				,file_name			AS imgNm
				,file_save			AS imgSaveNm
				,file_width			AS imgWidth
				,file_height		AS imgHeight
				,rgst_date			AS rgstDate
			FROM
				emma_t_file
			WHERE use_at = 'Y'
		]]>
			<include refid="imgSearchSQL" />
		<![CDATA[
			ORDER BY file_seq DESC LIMIT #{firstIndex}, #{recordCountPerPage}
		]]>
	</select>
	
	<insert id="emmaImgRgstByAPI" parameterType="map">
		<![CDATA[
			/* [com.i2sema.v2.emma.EmmaAPIDAO.emmaImgRgstByAPI] emma 이미지 register */
			INSERT INTO emma_t_file
			(
				mber_no,
				org_id,
				file_name,
				file_save,
				file_size,
				file_width,
				file_height,
				use_at,
				rgst_id,
				rgst_date
			)
			VALUES
			(
				#{mberNo},
				#{orgId},
				#{imgNm},
				#{imgSaveNm},
				#{imgSize},
				#{imgWidth},
				#{imgHeight},
				#{useAt},
				#{rgstId},
				#{rgstDate}
			)
		]]>
			<selectKey keyProperty="file_seq" resultType="int" order="AFTER">
				SELECT LAST_INSERT_ID()
			</selectKey>
	</insert>
	
	<update id="emmaImgDeleteByAPI" parameterType="map">
		<![CDATA[
			/* [com.i2sema.v2.emma.EmmaAPIDAO.emmaImgDeleteByAPI] emma 이미지 delete */
			UPDATE emma_t_file
			SET use_at = 'N'
    		WHERE file_seq IN
		]]>
		    <foreach item="item" collection="imgSeqList" open="(" separator="," close=")">
		        #{item}
		    </foreach>
	</update>

	<select id="checkPermissionEmmaTemplate" parameterType="map" resultType="int">
		SELECT count(*)
		FROM emma_tmplat
		WHERE org_id = #{orgId}
		  AND mber_no = #{mberNo}
		  AND use_at = "Y"
		  AND tmpl_seq IN
			<foreach item="item" collection="tmplSeqList" open="(" separator="," close=")">
				#{item}
			</foreach>
	</select>


	<select id="checkPermissionEmmaImage" parameterType="map" resultType="int">
		SELECT count(*)
		FROM emma_t_file
		WHERE org_id = #{orgId}
		  AND mber_no = #{mberNo}
		  AND use_at = "Y"
		  AND file_seq IN
		<foreach item="item" collection="imgSeqList" open="(" separator="," close=")">
			#{item}
		</foreach>
	</select>

	
	<select id="emmaImgSelectByAPI" parameterType="string" resultType="map">
		<![CDATA[
			/* [com.i2sema.v2.emma.EmmaAPIDAO.emmaImgSelectByAPI] emma 이미지 select */
			SELECT
				 file_seq			AS imgSeq
				,file_name			AS imgNm
				,file_save			AS imgSaveNm
				,file_size			AS imgSize
				,file_width			AS imgWidth
				,file_height		AS imgHeight
				,org_id				AS orgId
				,mber_no			AS mberNo
				,use_at				AS useAt
			FROM
				emma_t_file
			WHERE
    			file_save = #{imgSaveNm}
		]]>
	</select>
</mapper>
