<?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.munjaon.client.mysql.mapper.MysqlMapper">
    <select id="checkTime" resultType="String">
        /* MariaDBMapper.checkTime */
        SELECT DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
    </select>
    <select id="checkTableForMessage" resultType="int">
        /* MariaDBMapper.checkTableForMessage */
--         SELECT 1 FROM MUNJAON_MSG WHERE 1=1 LIMIT 1
        SELECT COUNT(*)
        FROM   information_schema.tables
        WHERE TABLE_NAME = 'MUNJAON_MSG'
    </select>
    <select id="checkTableForLog" resultType="int">
        /* MariaDBMapper.checkTableForLog */
        SELECT COUNT(*)
        FROM   information_schema.tables
        WHERE TABLE_NAME = 'MUNJAON_MSG_LOG'
--                 SELECT 1 FROM MUNJAON_MSG_LOG WHERE 1=1 LIMIT 1
    </select>
    <select id="selectToDeliver" resultType="com.munjaon.client.model.MunjaonMsg">
        /* MariaDBMapper.selectToDeliver */
        SELECT
            MSG_ID
            , MSG_TYPE
            , DATE_FORMAT(REQUEST_DATE,'%Y%m%d%H%i%s') RESERVE_DATE
            , DATE_FORMAT(NOW(),'%Y%m%d%H%i%s') REQUEST_DATE
            , RECV_PHONE
            , SEND_PHONE
            , SUBJECT
            , MESSAGE
            , FILENAME01
            , FILENAME02
            , FILENAME03
            , KAKAO_SENDER_KEY
            , KAKAO_TEMPLATE_CODE
            , KAKAO_JSON_FILE
        FROM MUNJAON_MSG
        WHERE SEND_STATUS = '0'
            AND MSG_TYPE = #{msgType}
            AND REQUEST_DATE <![CDATA[<=]]> SYSDATE()
        ORDER BY REQUEST_DATE ASC
        LIMIT 100
    </select>
    <update id="updateToDeliver">
        /* MariaDBMapper.updateToDeliver */
        UPDATE MUNJAON_MSG SET
            SEND_STATUS = '1'
            , DELIVER_DATE = NOW()
        WHERE MSG_ID = #{msgId}
    </update>
    <update id="updateToReport">
        /* MariaDBMapper.updateToReport */
        UPDATE MUNJAON_MSG SET
            SEND_STATUS = #{sendStatus}
            , SENT_DATE = FROM_UNIXTIME(UNIX_TIMESTAMP(#{sendDate}))
            , REPORT_DATE = NOW()
            , TELECOM = #{telecom}
        WHERE MSG_ID = #{msgId}
    </update>
    <select id="selectToMove" resultType="com.munjaon.client.model.MunjaonMsg">
        /* MariaDBMapper.selectToMove */
        SELECT MSG_ID, DATE_FORMAT(REQUEST_DATE, '%Y%m') REQUEST_DATE
        FROM MUNJAON_MSG
        WHERE SEND_STATUS NOT IN ('0', '1')
            LIMIT 100
    </select>
    <select id="selectToExpire" resultType="com.munjaon.client.model.MunjaonMsg">
        /* MariaDBMapper.selectToExpire */
        SELECT MSG_ID, DATE_FORMAT(REQUEST_DATE, '%Y%m') REQUEST_DATE
        FROM MUNJAON_MSG
        WHERE REQUEST_DATE <![CDATA[<]]> FROM_UNIXTIME(UNIX_TIMESTAMP(#{expireTime}))
            AND SEND_STATUS = '1'
        LIMIT 100
    </select>
    <insert id="insertToLog">
        /* MariaDBMapper.insertToLog */
        INSERT INTO MUNJAON_MSG_LOG
        (
            MSG_ID, MSG_TYPE, SEND_STATUS, REQUEST_DATE,
            RECV_PHONE, SEND_PHONE, SUBJECT, MESSAGE, TELECOM,
            FILENAME01, FILENAME02, FILENAME03, DELIVER_DATE, SENT_DATE, REPORT_DATE
        )
        SELECT
            MSG_ID, MSG_TYPE, SEND_STATUS, REQUEST_DATE,
            RECV_PHONE, SEND_PHONE, SUBJECT, MESSAGE, TELECOM,
            FILENAME01, FILENAME02, FILENAME03, DELIVER_DATE, SENT_DATE, REPORT_DATE
        FROM MUNJAON_MSG
        WHERE MSG_ID = #{msgId}
    </insert>
    <delete id="deleteFromDeliver">
        /* MariaDBMapper.deleteFromDeliver */
        DELETE FROM MUNJAON_MSG
        WHERE MSG_ID = #{msgId}
    </delete>
</mapper>