<?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="rpapat">
        <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
            USE art_relations;;

            DROP TABLE IF EXISTS `ROLLBACK-DIG-2071_update_changed_by`;;

            CREATE TABLE `ROLLBACK-DIG-2071_update_changed_by`(
                SELECT release_status_id, changed_by
                FROM release_status rs
                INNER JOIN releases r ON r.release_id = rs.release_id
                INNER JOIN artist_info a ON a.artist_id = r.artist_id
                INNER JOIN (SELECT id, vendor_id FROM vend_contact WHERE master = 'Y' GROUP BY vendor_id) vc ON vc.vendor_id = a.vendor_id
                WHERE rs.changed_by = a.vendor_id
                AND rs.changed_by_type = 'vendor'
                AND rs.changed_by != vc.id
            );;

            UPDATE release_status rs
            INNER JOIN releases r ON r.release_id = rs.release_id
            INNER JOIN artist_info a ON a.artist_id = r.artist_id
            INNER JOIN (SELECT id, vendor_id FROM vend_contact WHERE master = 'Y' GROUP BY vendor_id) vc ON vc.`vendor_id` = a.vendor_id
            SET rs.changed_by = vc.id
            WHERE rs.changed_by = a.vendor_id
            AND rs.changed_by_type = 'vendor';;
        </sql>
        <rollback>
            <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
                USE art_relations;;

                UPDATE release_status rs 
                INNER JOIN `ROLLBACK-DIG-2071_update_changed_by` rb
                ON rs.release_status_id = rb.release_status_id 
                SET rs.changed_by = rb.changed_by;;

                DROP TABLE IF EXISTS `ROLLBACK-DIG-2071_update_changed_by`;;
            </sql>
        </rollback>
    </changeSet>
</databaseChangeLog>
