<?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.admin.comm.dao.CommJourneyDAO">

  <select id="listJourney" parameterType="map" resultType="map">
    <![CDATA[
			/* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.listJourney] Journey 목록 */
      SELECT tdata.journey_name                                                  AS journeyName
           , tdata.journey_id                                                    AS journeyId
           , tdata.journey_version                                               AS journeyVersion
           , MIN(tdata.rgst_date)                                                AS createdDate
           , CASE
                 WHEN tdata.update_date IS NULL THEN MAX(tdata.rgst_date)
                 ELSE GREATEST(MAX(tdata.rgst_date), MAX(tdata.update_date)) END AS modifiedDate
      FROM (SELECT journey_name
                 , journey_id
                 , journey_version
                 , rgst_date
                 , update_date
            FROM ita_t_data itd
            WHERE org_id =  #{orgId}
              AND mber_no = #{mberNo}
            UNION ALL
            SELECT journey_name
                 , journey_id
                 , journey_version
                 , rgst_date
                 , update_date
            FROM emma_t_data etd
            WHERE org_id =  #{orgId}
              AND mber_no = #{mberNo}
            UNION ALL
            SELECT journey_name
                 , journey_id
                 , journey_version
                 , created_date  AS rgst_date
                 , modified_date AS update_date
            FROM frn_pls_tdata fpt
            WHERE org_id = #{orgId}
              AND mber_no = #{mberNo}
           ) tdata
      WHERE tdata.journey_id IS NOT NULL
		]]>
    <if test="@org.apache.commons.lang3.StringUtils@isNotEmpty(name)">
      <![CDATA[
				AND tdata.journey_name LIKE CONCAT('%', #{name}, '%')
			]]>
    </if>
    <![CDATA[
      GROUP BY tdata.journey_id, tdata.journey_version
            HAVING modifiedDate > DATE_SUB(CURDATE(), INTERVAL 30 DAY)
            ORDER BY
                CASE
                    WHEN tdata.update_date IS NULL THEN MAX(tdata.rgst_date)
                    ELSE GREATEST(MAX(tdata.rgst_date), MAX(tdata.update_date))
                END DESC
          LIMIT #{firstIndex}, #{recordCountPerPage}
		]]>
  </select>

  <select id="countJourney" parameterType="map" resultType="int">
    <![CDATA[
			/* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.countJourney] Journey Count */
      SELECT COUNT(0)
      FROM (SELECT tdata.journey_name
                 , tdata.journey_id
                 , tdata.journey_version
                 , MIN(tdata.rgst_date)                                                AS createdDate
                 , CASE
                       WHEN tdata.update_date IS NULL THEN MAX(tdata.rgst_date)
                       ELSE GREATEST(MAX(tdata.rgst_date), MAX(tdata.update_date)) END AS modifiedDate
            FROM (SELECT journey_name
                       , journey_id
                       , journey_version
                       , rgst_date
                       , update_date
                  FROM ita_t_data itd
                  WHERE org_id =  #{orgId}
                    AND mber_no = #{mberNo}
                  UNION ALL
                  SELECT journey_name
                       , journey_id
                       , journey_version
                       , rgst_date
                       , update_date
                  FROM emma_t_data etd
                  WHERE org_id =  #{orgId}
                    AND mber_no = #{mberNo}
                  UNION ALL
                  SELECT journey_name
                       , journey_id
                       , journey_version
                       , created_date  AS rgst_date
                       , modified_date AS update_date
                  FROM frn_pls_tdata fpt
                  WHERE org_id = #{orgId}
                    AND mber_no = #{mberNo}
                 ) tdata
            WHERE tdata.journey_id IS NOT NULL
      ]]>
    <if test="@org.apache.commons.lang3.StringUtils@isNotEmpty(name)">
      <![CDATA[
				AND tdata.journey_name LIKE CONCAT('%', #{name}, '%')
        ]]>
    </if>
    <![CDATA[
      GROUP BY tdata.journey_id, tdata.journey_version
            HAVING modifiedDate > DATE_SUB(CURDATE(), INTERVAL 30 DAY)
            ) journeyData
			]]>
  </select>

  <select id="listActivity" parameterType="map" resultType="map">
    <![CDATA[
			/* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.listActivity] Activity 목록 */
      SELECT tdata.t_seq         AS tSeq
           , tdata.flb_seq       AS flbSeq
           , tdata.activity_name AS activityName
           , CASE
                 WHEN tdata.activity_id = '{{Activity.Id}}' THEN ''
                 ELSE tdata.activity_id
             END                 AS activityId
           , tdata.msg_type      AS messageType
           , tdata.rgst_date     AS createdDate
           , CASE
                 WHEN tdata.update_date IS NULL THEN tdata.rgst_date
                 ELSE tdata.update_date
             END                 AS modifiedDate
      FROM (SELECT t_seq
                 , flb_seq
                 , journey_name
                 , journey_id
                 , journey_version
                 , activity_name
                 , activity_id
                 , msg_type
                 , rgst_date
                 , update_date
            FROM ita_t_data itd
            WHERE org_id =  #{orgId}
              AND mber_no = #{mberNo}
            UNION ALL
            SELECT t_seq
                 , ''           AS flb_seq
                 , journey_name
                 , journey_id
                 , journey_version
                 , activity_name
                 , activity_id
                 , service_type AS msg_type
                 , rgst_date
                 , update_date
            FROM emma_t_data etd
            WHERE org_id =  #{orgId}
              AND mber_no = #{mberNo}
            UNION ALL
            SELECT seq           AS t_seq
                 , flb_seq
                 , journey_name
                 , journey_id
                 , journey_version
                 , activity_name
                 , activity_id
                 , message_type  AS msg_type
                 , created_date  AS rgst_date
                 , modified_date AS update_date
            FROM frn_pls_tdata fpt
            WHERE org_id = #{orgId}
              AND mber_no = #{mberNo}
           ) tdata
      WHERE tdata.journey_id = #{journeyId}
        AND tdata.journey_version = #{journeyVersion}
		]]>
    <if test="@org.apache.commons.lang3.StringUtils@isNotEmpty(activityName)">
      <![CDATA[
				AND tdata.activity_name LIKE CONCAT('%', #{activityName}, '%')
			]]>
    </if>
    <![CDATA[
      ORDER BY
              CASE
                WHEN tdata.update_date IS NULL THEN tdata.rgst_date
                ELSE tdata.update_date
              END
      DESC
          LIMIT #{firstIndex}, #{recordCountPerPage}
		]]>
  </select>

  <select id="countActivity" parameterType="map" resultType="int">
    <![CDATA[
			/* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.countActivity] Activity Count */
        SELECT COUNT(0)
        FROM (SELECT activity_name
                   , journey_name
                   , journey_id
                   , journey_version
              FROM ita_t_data itd
              WHERE org_id =  #{orgId}
                AND mber_no = #{mberNo}
              UNION ALL
              SELECT activity_name
                   , journey_name
                   , journey_id
                   , journey_version
              FROM emma_t_data etd
              WHERE org_id =  #{orgId}
                AND mber_no = #{mberNo}
              UNION ALL
              SELECT activity_name
                   , journey_name
                   , journey_id
                   , journey_version
              FROM frn_pls_tdata fpt
              WHERE org_id = #{orgId}
                AND mber_no = #{mberNo}
             ) tdata
        WHERE tdata.journey_id = #{journeyId}
          AND tdata.journey_version = #{journeyVersion}
		]]>
    <if test="@org.apache.commons.lang3.StringUtils@isNotEmpty(activityName)">
      <![CDATA[
			  AND tdata.activity_name LIKE CONCAT('%', #{activityName}, '%')
			]]>
    </if>
  </select>

  <select id="getFtActivity" parameterType="map" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.getFtActivity] 친구톡 Activity 설정 정보 */
    SELECT itd.journey_name       AS journeyName
         , itd.journey_id         AS journeyId
         , itd.journey_version    AS journeyVersion
         , itd.journey_version_id AS versionId
         , itd.activity_name      AS activityName
         , itd.activity_id        AS activityId
         , itd.plus_uuid          AS plusUuid
         , itd.msg_cl_type        AS advert
         , itd.msg_type           AS messageType
         , itd.send_at            AS sendAt
         , itd.content            AS content
         , itd.img_url            AS image
         , itd.t_kakao            AS button
         , itd.tmplat_cd          AS templateCode
         , itd.failback_yn        AS failbackYn
         , if2.callback           as failbackCallback
         , if2.ars_080_num        as failbackArsNumber
         , if2.service_type       AS failbackMessageType
         , if2.subject            AS failbackSubject
         , if2.content            AS failbackContent
         , etf.file_save          AS failbackFile
         , if2.msg_cl_type        AS failbackAdvert
    FROM ita_t_data itd
           LEFT JOIN ita_failback if2 ON itd.flb_seq = if2.flb_seq
           LEFT JOIN emma_t_file etf ON if2.file_seq = etf.file_seq
    WHERE itd.org_id = #{orgId}
      AND itd.mber_no = #{mberNo}
      AND itd.t_seq = #{tSeq}
    ]]>
	</select>

  <select id="getEmmaActivity" parameterType="map" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.getEmmaActivity] 메시지 Activity 설정 정보 */
    SELECT etd.journey_name       AS journeyName
         , etd.journey_id         AS journeyId
         , etd.journey_version    AS journeyVersion
         , etd.journey_version_id AS versionId
         , etd.activity_name      AS activityName
         , etd.activity_id        AS activityId
         , etd.msg_cl_type        AS advert
         , etd.service_type       AS messageType
         , etd.callback           as callback
         , etd.ars_080_num        as arsNumber
         , etd.send_at            AS sendAt
         , etd.subject            AS subject
         , etd.content            AS content
         , etf.file_save          AS image
    FROM emma_t_data etd
           LEFT JOIN emma_t_file etf ON etd.file_seq = etf.file_seq
    WHERE etd.org_id = #{orgId}
      AND etd.mber_no = #{mberNo}
      AND etd.t_seq = #{tSeq}
    ]]>
	</select>

  <select id="getFtPlusActivity" parameterType="map" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.getFtPlusActivity] 친구톡+ Activity 설정 정보 */
    SELECT fpt.journey_name       AS journeyName
         , fpt.journey_id         AS journeyId
         , fpt.journey_version    AS journeyVersion
         , fpt.journey_version_id AS versionId
         , fpt.activity_name      AS activityName
         , CASE
             WHEN fpt.activity_id = '{{Activity.Id}}' THEN ''
             ELSE fpt.activity_id
            END                    AS activityId
          , fpt.message_type       AS messageType
          , fpt.send_yn            AS sendAt
          , fpt.header             AS subject
          , fpt.plus_uuid          AS plusUuid
          , fpt.failback_yn        AS failbackYn
          , fptc.title             AS couponTitle
          , fptc.description       AS couponDescription
          , fptc.link_mo           AS couponLinkMo
          , fptc.link_pc           AS couponLinkPc
          , fptc.scheme_android    AS couponAndroid
          , fptc.scheme_ios        AS couponIos
          , fptct.seq              AS tailSeq
          , fptct.link_mo          AS tailLinkMo
          , fptct.link_pc          AS tailLinkPc
          , fptct.scheme_android   AS tailAndroid
          , fptct.scheme_ios       AS tailIos
          , fpf.service_type       AS failbackMessageType
          , fpf.callback           as failbackCallback
          , fpf.ars_080_num        as failbackArsNumber
          , fpf.subject            AS failbackSubject
          , fpf.content            AS failbackContent
          , etf.file_save          AS failbackFile
          , fpf.msg_cl_type        AS failbackAdvert
    FROM frn_pls_tdata fpt
           LEFT JOIN frn_pls_tdata_coupon fptc ON fpt.seq = fptc.t_seq
           LEFT JOIN frn_pls_tdata_carousel_tail fptct ON fpt.seq = fptct.t_seq
           LEFT JOIN frn_pls_failback fpf ON fpt.flb_seq = fpf.flb_seq
           LEFT JOIN emma_t_file etf ON fpf.file_seq = etf.file_seq
    WHERE fpt.org_id = #{orgId}
      AND fpt.mber_no = #{mberNo}
      AND fpt.seq = #{tSeq}
    ]]>
	</select>

  <select id="listWideItemList" parameterType="int" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.ListWideItemList] 와이드아이템리스트 List */
    SELECT fptwil.title          AS title
         , fptwil.link_mo        AS linkMo
         , fptwil.link_pc        AS linkPc
         , fptwil.scheme_android AS android
         , fptwil.scheme_ios     AS ios
         , fpi.url               AS image
    FROM frn_pls_tdata_wide_item_list fptwil
           LEFT JOIN frn_pls_image fpi ON fptwil.image_seq = fpi.seq
    WHERE fptwil.t_seq = #{value}
    ORDER BY ordering ASC
    ]]>
	</select>

  <select id="listButton" parameterType="int" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.listButton] 버튼 List */
    SELECT fptb.`type`         AS type
         , fptb.name           AS name
         , fptb.link_mo        AS linkMo
         , fptb.link_pc        AS linkPc
         , fptb.scheme_android AS android
         , fptb.scheme_ios     AS ios
    FROM frn_pls_tdata_button fptb
    WHERE fptb.t_seq = #{value}
    ORDER BY ordering ASC
    ]]>
	</select>

  <select id="listCarousel" parameterType="int" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.listCarousel] carousel List */
    SELECT fptc.seq             AS seq
         , fptc.header          AS subject
         , fptc.content         AS content
         , fpi.url              AS image
         , fptc.image_link      AS imageLink
         , fptcc.title          AS couponTitle
         , fptcc.description    AS couponDescription
         , fptcc.link_mo        AS couponLinkMo
         , fptcc.link_pc        AS couponLinkPc
         , fptcc.scheme_android AS couponAndroid
         , fptcc.scheme_ios     AS couponIos
    FROM frn_pls_tdata_carousel fptc
           LEFT JOIN frn_pls_tdata_carousel_coupon fptcc ON fptc.seq = fptcc.carousel_seq
           LEFT JOIN frn_pls_image fpi ON fptc.image_seq = fpi.seq
    WHERE fptc.t_seq = #{value}
    ORDER BY ordering ASC
    ]]>
	</select>

  <select id="listCarouselButton" parameterType="int" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.listCarouselButton] carousel button List */
    SELECT fptcb.`type`         AS type
         , fptcb.name           AS name
         , fptcb.link_mo        AS linkMo
         , fptcb.link_pc        AS linkPc
         , fptcb.scheme_android AS android
         , fptcb.scheme_ios     AS ios
    FROM frn_pls_tdata_carousel_button fptcb
    WHERE fptcb.carousel_seq = #{value}
    ORDER BY fptcb.ordering ASC
    ]]>
	</select>

  <select id="listCarouselCommerce" parameterType="int" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.listCarouselCommerce] carousel commerce List */
    SELECT crscm.seq                AS seq
         , crscm.image_link         AS imageLink
         , crscm.title              AS title
         , crscm.regular_price      AS regularPrice
         , crscm.discount_price     AS discountPrice
         , crscm.discount_rate      AS discountRate
         , crscm.discount_fixed     AS discountFixed
         , crscm.additional_content AS additionalContent
         , image.url                AS image
         , crscm.image_link         AS imageLink
         , coupon.title             AS couponTitle
         , coupon.description       AS couponDescription
         , coupon.link_mo           AS couponLinkMo
         , coupon.link_pc           AS couponLinkPc
         , coupon.scheme_android    AS couponAndroid
         , coupon.scheme_ios        AS couponIos
    FROM frn_pls_tdata_carousel_commerce crscm
           LEFT JOIN frn_pls_tdata_carousel_commerce_coupon coupon
                     ON crscm.seq = coupon.carousel_commerce_seq
           LEFT JOIN frn_pls_image image ON crscm.image_seq = image.seq
    WHERE crscm.t_seq = #{value}
    ORDER BY ordering ASC
    ]]>
	</select>

  <select id="listCarouselCommerceButton" parameterType="int" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.listCarouselCommerceButton] carousel commerce button List */
    SELECT button.`type`         AS type
         , button.name           AS name
         , button.link_mo        AS linkMo
         , button.link_pc        AS linkPc
         , button.scheme_android AS android
         , button.scheme_ios     AS ios
    FROM frn_pls_tdata_carousel_commerce_button button
    WHERE button.carousel_commerce_seq = #{value}
    ORDER BY button.ordering ASC
    ]]>
	</select>

  <select id="getCommerce" parameterType="int" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.getCommerce] commerce */
    SELECT cm.seq                AS seq
         , cm.image_link         AS imageLink
         , cm.title              AS title
         , cm.regular_price      AS regularPrice
         , cm.discount_price     AS discountPrice
         , cm.discount_rate      AS discountRate
         , cm.discount_fixed     AS discountFixed
         , cm.additional_content AS additionalContent
         , image.url             AS image
    FROM frn_pls_tdata_commerce cm
           LEFT JOIN frn_pls_image image ON cm.image_seq = image.seq
    WHERE cm.t_seq = #{value}
    ORDER BY ordering ASC
    ]]>
	</select>

  <select id="getIntro" parameterType="int" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.getIntro] intro */
    SELECT fpti.header         AS header
         , fpti.content        AS content
         , fpi.url             AS image
         , fpti.link_mo        AS linkMo
         , fpti.link_pc        AS linkPc
         , fpti.scheme_android AS android
         , fpti.scheme_ios     AS ios
    FROM frn_pls_tdata_intro fpti
    LEFT JOIN frn_pls_image fpi
    ON fpti.image_seq = fpi.seq
    WHERE fpti.t_seq = #{value}
    ]]>
	</select>

  <select id="getPremiumVideo" parameterType="int" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.getPremiumVideo] PremiumVideo */
    SELECT fptpv.content    AS content
         , fptpv.video_url  AS videoUrl
         , fpi.url          AS thumbnailUrl
    FROM frn_pls_tdata_premium_video fptpv
           LEFT JOIN frn_pls_image fpi ON fptpv.thumbnail_seq = fpi.seq
    WHERE fptpv.t_seq = #{value}
    ]]>
	</select>

  <!-- sysAdmin	-->
  <select id="adminListJourney" parameterType="map" resultType="map">
    <![CDATA[
			/* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.adminListJourney] admin Journey 목록 */
      SELECT tdata.journey_name                                                  AS journeyName
           , tdata.journey_id                                                    AS journeyId
           , tdata.journey_version                                               AS journeyVersion
           , MIN(tdata.rgst_date)                                                AS createdDate
           , CASE
                 WHEN tdata.update_date IS NULL THEN MAX(tdata.rgst_date)
                 ELSE GREATEST(MAX(tdata.rgst_date), MAX(tdata.update_date)) END AS modifiedDate
      FROM (SELECT journey_name
                 , journey_id
                 , journey_version
                 , rgst_date
                 , update_date
            FROM ita_t_data itd
            UNION ALL
            SELECT journey_name
                 , journey_id
                 , journey_version
                 , rgst_date
                 , update_date
            FROM emma_t_data etd
            UNION ALL
            SELECT journey_name
                 , journey_id
                 , journey_version
                 , created_date  AS rgst_date
                 , modified_date AS update_date
            FROM frn_pls_tdata fpt
           ) tdata
      WHERE tdata.journey_id IS NOT NULL
		]]>
    <if test="@org.apache.commons.lang3.StringUtils@isNotEmpty(name)">
      <![CDATA[
				AND tdata.journey_name LIKE CONCAT('%', #{name}, '%')
			]]>
    </if>
    <![CDATA[
      GROUP BY tdata.journey_id, tdata.journey_version
            HAVING modifiedDate > DATE_SUB(CURDATE(), INTERVAL 30 DAY)
            ORDER BY
                CASE
                    WHEN tdata.update_date IS NULL THEN MAX(tdata.rgst_date)
                    ELSE GREATEST(MAX(tdata.rgst_date), MAX(tdata.update_date))
                END DESC
          LIMIT #{firstIndex}, #{recordCountPerPage}
		]]>
  </select>

  <select id="adminCountJourney" parameterType="map" resultType="int">
    <![CDATA[
			/* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.adminCountJourney] admin Journey Count */
      SELECT COUNT(0)
      FROM (SELECT tdata.journey_name
                 , tdata.journey_id
                 , tdata.journey_version
                 , MIN(tdata.rgst_date)                                                AS createdDate
                 , CASE
                       WHEN tdata.update_date IS NULL THEN MAX(tdata.rgst_date)
                       ELSE GREATEST(MAX(tdata.rgst_date), MAX(tdata.update_date)) END AS modifiedDate
            FROM (SELECT journey_name
                       , journey_id
                       , journey_version
                       , rgst_date
                       , update_date
                  FROM ita_t_data itd
                  UNION ALL
                  SELECT journey_name
                       , journey_id
                       , journey_version
                       , rgst_date
                       , update_date
                  FROM emma_t_data etd
                  UNION ALL
                  SELECT journey_name
                       , journey_id
                       , journey_version
                       , created_date  AS rgst_date
                       , modified_date AS update_date
                  FROM frn_pls_tdata fpt
                 ) tdata
            WHERE tdata.journey_id IS NOT NULL
      ]]>
    <if test="@org.apache.commons.lang3.StringUtils@isNotEmpty(name)">
      <![CDATA[
				AND tdata.journey_name LIKE CONCAT('%', #{name}, '%')
        ]]>
    </if>
    <![CDATA[
      GROUP BY tdata.journey_id, tdata.journey_version
            HAVING modifiedDate > DATE_SUB(CURDATE(), INTERVAL 30 DAY)
            ) journeyData
			]]>
  </select>

  <select id="adminListActivity" parameterType="map" resultType="map">
    <![CDATA[
			/* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.adminListActivity] admin Activity 목록 */
      SELECT tdata.t_seq         AS tSeq
           , tdata.flb_seq       AS flbSeq
           , tdata.activity_name AS activityName
           , CASE
                 WHEN tdata.activity_id = '{{Activity.Id}}' THEN ''
                 ELSE tdata.activity_id
             END                 AS activityId
           , tdata.msg_type      AS messageType
           , tdata.rgst_date     AS createdDate
           , CASE
                 WHEN tdata.update_date IS NULL THEN tdata.rgst_date
                 ELSE tdata.update_date
             END                 AS modifiedDate
      FROM (SELECT t_seq
                 , flb_seq
                 , journey_name
                 , journey_id
                 , journey_version
                 , activity_name
                 , activity_id
                 , msg_type
                 , rgst_date
                 , update_date
            FROM ita_t_data itd
            UNION ALL
            SELECT t_seq
                 , ''           AS flb_seq
                 , journey_name
                 , journey_id
                 , journey_version
                 , activity_name
                 , activity_id
                 , service_type AS msg_type
                 , rgst_date
                 , update_date
            FROM emma_t_data etd
            UNION ALL
            SELECT seq           AS t_seq
                 , flb_seq
                 , journey_name
                 , journey_id
                 , journey_version
                 , activity_name
                 , activity_id
                 , message_type  AS msg_type
                 , created_date  AS rgst_date
                 , modified_date AS update_date
            FROM frn_pls_tdata fpt
           ) tdata
      WHERE tdata.journey_id = #{journeyId}
        AND tdata.journey_version = #{journeyVersion}
		]]>
    <if test="@org.apache.commons.lang3.StringUtils@isNotEmpty(activityName)">
      <![CDATA[
				AND tdata.activity_name LIKE CONCAT('%', #{activityName}, '%')
			]]>
    </if>
    <![CDATA[
      ORDER BY
              CASE
                WHEN tdata.update_date IS NULL THEN tdata.rgst_date
                ELSE tdata.update_date
              END
      DESC
          LIMIT #{firstIndex}, #{recordCountPerPage}
		]]>
  </select>

  <select id="adminCountActivity" parameterType="map" resultType="int">
    <![CDATA[
			/* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.adminCountActivity] admin Activity Count */
        SELECT COUNT(0)
        FROM (SELECT activity_name
                   , journey_name
                   , journey_id
                   , journey_version
              FROM ita_t_data itd
              UNION ALL
              SELECT activity_name
                   , journey_name
                   , journey_id
                   , journey_version
              FROM emma_t_data etd
              UNION ALL
              SELECT activity_name
                   , journey_name
                   , journey_id
                   , journey_version
              FROM frn_pls_tdata fpt
             ) tdata
        WHERE tdata.journey_id = #{journeyId}
          AND tdata.journey_version = #{journeyVersion}
		]]>
    <if test="@org.apache.commons.lang3.StringUtils@isNotEmpty(activityName)">
      <![CDATA[
			  AND tdata.activity_name LIKE CONCAT('%', #{activityName}, '%')
			]]>
    </if>
  </select>

  <select id="getAdminFtActivity" parameterType="map" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.getAdminFtActivity] admin 친구톡 Activity 설정 정보 */
    SELECT itd.journey_name       AS journeyName
         , itd.journey_id         AS journeyId
         , itd.journey_version    AS journeyVersion
         , itd.journey_version_id AS versionId
         , itd.activity_name      AS activityName
         , itd.activity_id        AS activityId
         , itd.plus_uuid          AS plusUuid
         , itd.msg_cl_type        AS advert
         , itd.msg_type           AS messageType
         , itd.send_at            AS sendAt
         , itd.content            AS content
         , itd.img_url            AS image
         , itd.t_kakao            AS button
         , itd.tmplat_cd          AS templateCode
         , itd.failback_yn        AS failbackYn
         , if2.callback           as failbackCallback
         , if2.ars_080_num        as failbackArsNumber
         , if2.service_type       AS failbackMessageType
         , if2.subject            AS failbackSubject
         , if2.content            AS failbackContent
         , etf.file_save          AS failbackFile
         , if2.msg_cl_type        AS failbackAdvert
    FROM ita_t_data itd
           LEFT JOIN ita_failback if2 ON itd.flb_seq = if2.flb_seq
           LEFT JOIN emma_t_file etf ON if2.file_seq = etf.file_seq
    WHERE itd.t_seq = #{tSeq}
    ]]>
	</select>

  <select id="getAdminEmmaActivity" parameterType="map" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.getAdminEmmaActivity] admin 메시지 Activity 설정 정보 */
    SELECT etd.journey_name       AS journeyName
         , etd.journey_id         AS journeyId
         , etd.journey_version    AS journeyVersion
         , etd.journey_version_id AS versionId
         , etd.activity_name      AS activityName
         , etd.activity_id        AS activityId
         , etd.msg_cl_type        AS advert
         , etd.service_type       AS messageType
         , etd.callback           as callback
         , etd.ars_080_num        as arsNumber
         , etd.send_at            AS sendAt
         , etd.subject            AS subject
         , etd.content            AS content
         , etf.file_save          AS image
    FROM emma_t_data etd
           LEFT JOIN emma_t_file etf ON etd.file_seq = etf.file_seq
    WHERE etd.t_seq = #{tSeq}
    ]]>
	</select>

  <select id="getAdminFtPlusActivity" parameterType="map" resultType="map">
		<![CDATA[
    /* [com.i2sema.v2.admin.comm.dao.CommJourneyDAO.getAdminFtPlusActivity] admin 친구톡+ Activity 설정 정보 */
    SELECT fpt.journey_name       AS journeyName
         , fpt.journey_id         AS journeyId
         , fpt.journey_version    AS journeyVersion
         , fpt.journey_version_id AS versionId
         , fpt.activity_name      AS activityName
         , CASE
             WHEN fpt.activity_id = '{{Activity.Id}}' THEN ''
             ELSE fpt.activity_id
            END                   AS activityId
         , fpt.message_type       AS messageType
         , fpt.send_yn            AS sendAt
         , fpt.header             AS subject
         , fpt.plus_uuid          AS plusUuid
         , fpt.failback_yn        AS failbackYn
         , fptc.title             AS couponTitle
         , fptc.description       AS couponDescription
         , fptc.link_mo           AS couponLinkMo
         , fptc.link_pc           AS couponLinkPc
         , fptc.scheme_android    AS couponAndroid
         , fptc.scheme_ios        AS couponIos
         , fptct.seq              AS tailSeq
         , fptct.link_mo          AS tailLinkMo
         , fptct.link_pc          AS tailLinkPc
         , fptct.scheme_android   AS tailAndroid
         , fptct.scheme_ios       AS tailIos
         , fpf.service_type       AS failbackMessageType
         , fpf.callback           as failbackCallback
         , fpf.ars_080_num        as failbackArsNumber
         , fpf.subject            AS failbackSubject
         , fpf.content            AS failbackContent
         , etf.file_save          AS failbackFile
         , fpf.msg_cl_type        AS failbackAdvert
    FROM frn_pls_tdata fpt
           LEFT JOIN frn_pls_tdata_coupon fptc ON fpt.seq = fptc.t_seq
           LEFT JOIN frn_pls_tdata_carousel_tail fptct ON fpt.seq = fptct.t_seq
           LEFT JOIN frn_pls_failback fpf ON fpt.flb_seq = fpf.flb_seq
           LEFT JOIN emma_t_file etf ON fpf.file_seq = etf.file_seq
    WHERE fpt.seq = #{tSeq}
    ]]>
	</select>
</mapper>