<?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="dratanghayra">
        <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
        <![CDATA[
            USE `art_relations`;;

            DROP TRIGGER IF EXISTS `after_insert_release_artist`;;

            CREATE DEFINER=`theorchard`@`10.10.%` TRIGGER `after_insert_release_artist` AFTER INSERT ON `release_artist` 
            FOR EACH ROW BEGIN
                INSERT INTO art_relations_log.release_artist_log SET
                    log_timestamp     = NOW(),
                    log_action        = 'insert',
                    release_artist_id = NEW.release_artist_id,
                    upc               = NEW.upc,
                    role              = NEW.role,
                    release_id        = NEW.release_id,
                    artist_name       = NEW.artist_name,
                    url               = NEW.url;
                CALL art_relations.sp_insert_product_physical_reports_change_history(NEW.release_id, 'release_artist');
            END;;
        ]]>

        </sql>
        <rollback>
            <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
            <![CDATA[
                USE `art_relations`;;

                DROP TRIGGER IF EXISTS `after_insert_release_artist`;;

                CREATE DEFINER=`theorchard`@`10.10.%` TRIGGER `after_insert_release_artist` AFTER INSERT ON `release_artist` 
                FOR EACH ROW BEGIN
                    INSERT INTO art_relations_log.release_artist_log SET
                        log_timestamp     = NOW(),
                        log_action        = 'insert',
                        release_artist_id = NEW.release_artist_id,
                        upc               = NEW.upc,
                        role              = NEW.role,
                        release_id        = NEW.release_id,
                        artist_name       = NEW.artist_name,
                        url               = NEW.url;
                END;;
            ]]>

            </sql>
        </rollback>
    </changeSet>
    <changeSet id="2" author="dratanghayra">
        <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
        <![CDATA[
            USE `art_relations`;;

            DROP TRIGGER IF EXISTS `after_update_release_artist`;;

            CREATE DEFINER=`theorchard`@`10.10.%` TRIGGER `after_update_release_artist` AFTER UPDATE ON `release_artist` 
            FOR EACH ROW BEGIN
                INSERT INTO art_relations_log.release_artist_log SET
                    log_timestamp     = NOW(),
                    log_action        = 'update',
                    release_artist_id = NEW.release_artist_id,
                    upc               = NEW.upc,
                    role              = NEW.role,
                    release_id        = NEW.release_id,
                    artist_name       = NEW.artist_name,
                    url               = NEW.url;
                IF (OLD.artist_name <> NEW.artist_name) THEN
                    CALL art_relations.sp_insert_product_physical_reports_change_history(NEW.release_id, 'artist_name');
                END IF;
            END;;
        ]]>

        </sql>
        <rollback>
            <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
            <![CDATA[
                USE `art_relations`;;

                DROP TRIGGER IF EXISTS `after_update_release_artist`;;

                CREATE DEFINER=`theorchard`@`10.10.%` TRIGGER `after_update_release_artist` AFTER UPDATE ON `release_artist` 
                FOR EACH ROW BEGIN
                    INSERT INTO art_relations_log.release_artist_log SET
                        log_timestamp     = NOW(),
                        log_action        = 'update',
                        release_artist_id = NEW.release_artist_id,
                        upc               = NEW.upc,
                        role              = NEW.role,
                        release_id        = NEW.release_id,
                        artist_name       = NEW.artist_name,
                        url               = NEW.url;
                END;;
            ]]>

            </sql>
        </rollback>
    </changeSet>
    <changeSet id="3" author="dratanghayra">
        <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
        <![CDATA[
            USE `art_relations`;;

            DROP TRIGGER IF EXISTS `after_delete_release_artist`;;

            CREATE DEFINER=`theorchard`@`10.10.%` TRIGGER `after_delete_release_artist` AFTER DELETE ON `release_artist` 
            FOR EACH ROW BEGIN
                INSERT INTO art_relations_log.release_artist_log SET
                    log_timestamp     = NOW(),
                    log_action        = 'delete',
                    release_artist_id = OLD.release_artist_id,
                    upc               = OLD.upc,
                    role              = OLD.role,
                    release_id        = OLD.release_id,
                    artist_name       = OLD.artist_name,
                    url               = OLD.url;
                CALL art_relations.sp_insert_product_physical_reports_change_history(OLD.release_id, 'release_artist');
            END;;
        ]]>

        </sql>
        <rollback>
            <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
            <![CDATA[
                USE `art_relations`;;

                DROP TRIGGER IF EXISTS `after_delete_release_artist`;;

                CREATE DEFINER=`theorchard`@`10.10.%` TRIGGER `after_delete_release_artist` AFTER DELETE ON `release_artist` 
                FOR EACH ROW BEGIN
                    INSERT INTO art_relations_log.release_artist_log SET
                        log_timestamp     = NOW(),
                        log_action        = 'delete',
                        release_artist_id = OLD.release_artist_id,
                        upc               = OLD.upc,
                        role              = OLD.role,
                        release_id        = OLD.release_id,
                        artist_name       = OLD.artist_name,
                        url               = OLD.url;
                END;;
            ]]>
            </sql>
        </rollback>
    </changeSet>
</databaseChangeLog>
