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

        USE `art_relations`;;

        DROP TRIGGER IF EXISTS `after_update_artist`;;
        DROP TRIGGER IF EXISTS `after_insert_artist`;;
        DROP TRIGGER IF EXISTS `after_delete_artist`;;


        CREATE DEFINER = 'theorchard'@'10.10.%' TRIGGER after_update_artist AFTER UPDATE ON artist_info
        FOR EACH ROW
        BEGIN
        	IF (
        	    NEW.name != OLD.name 
        	    OR (ISNULL(NEW.name) AND NOT ISNULL(OLD.name))
        	    OR (NOT ISNULL(NEW.name) AND ISNULL(OLD.name))
        	)
        	OR (
        	    NEW.url != OLD.url 
        	    OR (ISNULL(NEW.url) AND NOT ISNULL(OLD.url))
        	    OR (NOT ISNULL(NEW.url) AND ISNULL(OLD.url))
        	)
        	OR (
        	    NEW.myspace_url != OLD.myspace_url 
        	    OR (ISNULL(NEW.myspace_url) AND NOT ISNULL(OLD.myspace_url))
        	    OR (NOT ISNULL(NEW.myspace_url) AND ISNULL(OLD.myspace_url))
        	)
        	OR (
        	    NEW.vendor_id != OLD.vendor_id 
        	    OR (ISNULL(NEW.vendor_id) AND NOT ISNULL(OLD.vendor_id))
        	    OR (NOT ISNULL(NEW.vendor_id) AND ISNULL(OLD.vendor_id))
        	)
        	THEN
        	    CALL art_relations.sp_cloudsearch_upsert_releases_by_artist_id(NEW.artist_id);
        	END IF;

        INSERT INTO `art_relations_log`.`artist_info_log` SET
          `log_timestamp` = NOW(),
          `log_action` = 'update',
          `artist_id` = NEW.`artist_id`,
          `url` = NEW.`url`,
          `when_entered` = NEW.`when_entered`,
          `entered_by` = NEW.`entered_by`,
          `description` = NEW.`description`,
          `name` = NEW.`name`,
          `vendor_id` = NEW.`vendor_id`,
          `last_updated` = NEW.`last_updated`,
          `join_artist_id` = NEW.`join_artist_id`,
          `myspace_url` = NEW.`myspace_url`,
          `myspace_id` = NEW.`myspace_id`,
          `address_city` = NEW.`address_city`,
          `address_state` = NEW.`address_state`,
          `address_other_state` = NEW.`address_other_state`,
          `orchard_country` = NEW.`orchard_country`,
          `active` = NEW.`active`,
          `tms_id` = NEW.`tms_id`,
          `primary_photo_id` = NEW.`primary_photo_id`,
          `address_zip` = NEW.`address_zip`,
          `youtube_mytourdate_url` = NEW.`youtube_mytourdate_url`,
          `twitter_mytourdate_url` = NEW.`twitter_mytourdate_url`,
          `artist_email` = NEW.`artist_email`,
          `artist_type` = NEW.`artist_type`,
          `unique_show_id` = NEW.`unique_show_id`;

        END;;

        CREATE DEFINER='theorchard'@'10.10.%' TRIGGER after_insert_artist AFTER INSERT ON artist_info
        FOR EACH ROW
        BEGIN

        INSERT INTO `art_relations_log`.`artist_info_log` SET
          `log_timestamp` = NOW(),
          `log_action` = 'insert',
          `artist_id` = NEW.`artist_id`,
          `url` = NEW.`url`,
          `when_entered` = NEW.`when_entered`,
          `entered_by` = NEW.`entered_by`,
          `description` = NEW.`description`,
          `name` = NEW.`name`,
          `vendor_id` = NEW.`vendor_id`,
          `last_updated` = NEW.`last_updated`,
          `join_artist_id` = NEW.`join_artist_id`,
          `myspace_url` = NEW.`myspace_url`,
          `myspace_id` = NEW.`myspace_id`,
          `address_city` = NEW.`address_city`,
          `address_state` = NEW.`address_state`,
          `address_other_state` = NEW.`address_other_state`,
          `orchard_country` = NEW.`orchard_country`,
          `active` = NEW.`active`,
          `tms_id` = NEW.`tms_id`,
          `primary_photo_id` = NEW.`primary_photo_id`,
          `address_zip` = NEW.`address_zip`,
          `youtube_mytourdate_url` = NEW.`youtube_mytourdate_url`,
          `twitter_mytourdate_url` = NEW.`twitter_mytourdate_url`,
          `artist_email` = NEW.`artist_email`,
          `artist_type` = NEW.`artist_type`,
          `unique_show_id` = NEW.`unique_show_id`;

        END;;

        CREATE DEFINER = 'theorchard'@'10.10.%' TRIGGER after_delete_artist AFTER DELETE ON artist_info
        FOR EACH ROW
        BEGIN

        INSERT INTO `art_relations_log`.`artist_info_log` SET
          `log_timestamp` = NOW(),
          `log_action` = 'delete',
          `artist_id` = OLD.`artist_id`,
          `url` = OLD.`url`,
          `when_entered` = OLD.`when_entered`,
          `entered_by` = OLD.`entered_by`,
          `description` = OLD.`description`,
          `name` = OLD.`name`,
          `vendor_id` = OLD.`vendor_id`,
          `last_updated` = OLD.`last_updated`,
          `join_artist_id` = OLD.`join_artist_id`,
          `myspace_url` = OLD.`myspace_url`,
          `myspace_id` = OLD.`myspace_id`,
          `address_city` = OLD.`address_city`,
          `address_state` = OLD.`address_state`,
          `address_other_state` = OLD.`address_other_state`,
          `orchard_country` = OLD.`orchard_country`,
          `active` = OLD.`active`,
          `tms_id` = OLD.`tms_id`,
          `primary_photo_id` = OLD.`primary_photo_id`,
          `address_zip` = OLD.`address_zip`,
          `youtube_mytourdate_url` = OLD.`youtube_mytourdate_url`,
          `twitter_mytourdate_url` = OLD.`twitter_mytourdate_url`,
          `artist_email` = OLD.`artist_email`,
          `artist_type` = OLD.`artist_type`,
          `unique_show_id` = OLD.`unique_show_id`;

        END;;


        </sql>
        <rollback>
            <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">

            USE art_relations;;

            DROP TRIGGER IF EXISTS `after_update_artist`;;
            DROP TRIGGER IF EXISTS `after_insert_artist`;;
            DROP TRIGGER IF EXISTS `after_delete_artist`;;

            CREATE DEFINER = 'theorchard'@'10.10.%' TRIGGER after_update_artist AFTER UPDATE ON artist_info
            FOR EACH ROW
            BEGIN
                IF (
                    NEW.name != OLD.name 
                    OR (ISNULL(NEW.name) AND NOT ISNULL(OLD.name))
                    OR (NOT ISNULL(NEW.name) AND ISNULL(OLD.name))
                )
                OR (
                    NEW.url != OLD.url 
                    OR (ISNULL(NEW.url) AND NOT ISNULL(OLD.url))
                    OR (NOT ISNULL(NEW.url) AND ISNULL(OLD.url))
                )
                OR (
                    NEW.myspace_url != OLD.myspace_url 
                    OR (ISNULL(NEW.myspace_url) AND NOT ISNULL(OLD.myspace_url))
                    OR (NOT ISNULL(NEW.myspace_url) AND ISNULL(OLD.myspace_url))
                )
                OR (
                    NEW.vendor_id != OLD.vendor_id 
                    OR (ISNULL(NEW.vendor_id) AND NOT ISNULL(OLD.vendor_id))
                    OR (NOT ISNULL(NEW.vendor_id) AND ISNULL(OLD.vendor_id))
                )
                THEN
                    CALL art_relations.sp_cloudsearch_upsert_releases_by_artist_id(NEW.artist_id);
                END IF;
            END;;




            </sql>
        </rollback>
    </changeSet>
</databaseChangeLog>