<?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="cheydt">
        <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
            ALTER TABLE `youtube_audit` CHANGE COLUMN `initiated_by` `initiated_by_id` int(10) unsigned DEFAULT NULL;;
            ALTER TABLE `youtube_audit_log` CHANGE COLUMN `initiated_by` `initiated_by_id` int(10) unsigned DEFAULT NULL;;

            DROP TRIGGER IF EXISTS trigger_youtube_audit_after_insert;;

            CREATE TRIGGER trigger_youtube_audit_after_insert AFTER INSERT ON youtube_audit
                FOR EACH ROW
                BEGIN
                    INSERT INTO youtube_audit_log
                    SET
                        youtube_audit_id = NEW.youtube_audit_id,
                        vendor_id = NEW.vendor_id,
                        report_location = NEW.report_location,
                        initiated_by_id = NEW.initiated_by_id,
                        audit_status = NEW.audit_status,
                        updated_timestamp = now()
                    ;
            END;;

            DROP TRIGGER IF EXISTS trigger_youtube_audit_after_update;;

            CREATE TRIGGER trigger_youtube_audit_after_update AFTER UPDATE ON youtube_audit
                FOR EACH ROW
                BEGIN
                    INSERT INTO youtube_audit_log
                    SET
                        youtube_audit_id = NEW.youtube_audit_id,
                        vendor_id = NEW.vendor_id,
                        report_location = NEW.report_location,
                        initiated_by_id = NEW.initiated_by_id,
                        audit_status = NEW.audit_status,
                        updated_timestamp = now()
                    ;
            END;;

            DROP TRIGGER IF EXISTS trigger_youtube_audit_after_delete;;

            CREATE TRIGGER trigger_youtube_audit_after_delete AFTER DELETE ON youtube_audit
                FOR EACH ROW
                BEGIN
                    INSERT INTO youtube_audit_log
                    SET
                        youtube_audit_id = OLD.youtube_audit_id,
                        vendor_id = OLD.vendor_id,
                        report_location = OLD.report_location,
                        initiated_by_id = OLD.initiated_by_id,
                        audit_status = 'deleted',
                        updated_timestamp = now()
                    ;
            END;;
        </sql>
        <rollback>
            <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
                ALTER TABLE `youtube_audit` CHANGE COLUMN `initiated_by_id` `initiated_by` int(10) unsigned DEFAULT NULL;;
                ALTER TABLE `youtube_audit_log` CHANGE COLUMN `initiated_by_id` `initiated_by` int(10) unsigned DEFAULT NULL;;

                DROP TRIGGER IF EXISTS trigger_youtube_audit_after_insert;;

                CREATE TRIGGER trigger_youtube_audit_after_insert AFTER INSERT ON youtube_audit
                    FOR EACH ROW
                    BEGIN
                        INSERT INTO youtube_audit_log
                        SET
                            youtube_audit_id = NEW.youtube_audit_id,
                            vendor_id = NEW.vendor_id,
                            report_location = NEW.report_location,
                            initiated_by = NEW.initiated_by,
                            audit_status = NEW.audit_status,
                            updated_timestamp = now()
                        ;
                END;;

                DROP TRIGGER IF EXISTS trigger_youtube_audit_after_update;;

                CREATE TRIGGER trigger_youtube_audit_after_update AFTER UPDATE ON youtube_audit
                    FOR EACH ROW
                    BEGIN
                        INSERT INTO youtube_audit_log
                        SET
                            youtube_audit_id = NEW.youtube_audit_id,
                            vendor_id = NEW.vendor_id,
                            report_location = NEW.report_location,
                            initiated_by = NEW.initiated_by,
                            audit_status = NEW.audit_status,
                            updated_timestamp = now()
                        ;
                END;;

                DROP TRIGGER IF EXISTS trigger_youtube_audit_after_delete;;

                CREATE TRIGGER trigger_youtube_audit_after_delete AFTER DELETE ON youtube_audit
                    FOR EACH ROW
                    BEGIN
                        INSERT INTO youtube_audit_log
                        SET
                            youtube_audit_id = OLD.youtube_audit_id,
                            vendor_id = OLD.vendor_id,
                            report_location = OLD.report_location,
                            initiated_by = OLD.initiated_by,
                            audit_status = 'deleted',
                            updated_timestamp = now()
                        ;
                END;;
            </sql>
        </rollback>
    </changeSet>
</databaseChangeLog>
