<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
    <changeSet id="1" author="aloyko">
        <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
            USE direct_delivery;;

            DROP PROCEDURE IF EXISTS sp_get_encoded_jobs_info;;

            CREATE DEFINER=`theorchard_dd`@`127.0.0.1` PROCEDURE sp_get_encoded_jobs_info(IN dms_id INT, IN encoder_ids TEXT, IN order_type TEXT)
            BEGIN
                SET @stmtStr := '';
                SELECT CONCAT('
                    SELECT eqd.dms_master_master_id, COUNT(eqd.encoding_queue_detail_id) AS encoded_jobs, MIN(jp.priority) AS highest_priority
                    FROM encoding_queue_detail eqd
                    INNER JOIN encoding_queue eq ON eqd.encoding_queue_id = eq.encoding_queue_id
                    INNER JOIN dms_delivery_spec dds ON dds.dms_master_master_id = eqd.dms_master_master_id AND dds.order_type = eq.encoding_order_type
                    INNER JOIN job_priority jp ON eqd.encoding_queue_detail_id = jp.encoding_queue_detail_id
                    WHERE eqd.status = "encoded"
                        AND eq.encoder_id IN (', encoder_ids, ')
                        AND dds.delivery = "Y"
                        AND dds.order_type = "', order_type, '"
                        AND eqd.dms_master_master_id = ', dms_id, '
                    GROUP BY eqd.dms_master_master_id') INTO @stmtStr;
                PREPARE stmt FROM @stmtStr;
                EXECUTE stmt;
            END;;
        </sql>
        <rollback>
            <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
                DROP PROCEDURE IF EXISTS sp_get_encoded_jobs_info;;
            </sql>
        </rollback>
    </changeSet>
</databaseChangeLog>
