<?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="jlim">
        <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
            <![CDATA[
                INSERT INTO vendor_resource (resource)
                VALUES ('conflict');;
            ]]>
        </sql>
        <rollback>
            <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
                <![CDATA[
                    DELETE FROM vendor_resource WHERE resource = 'conflict' LIMIT 1;;
                ]]>
            </sql>
        </rollback>
    </changeSet>
    <changeSet id="2" author="jlim">
        <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
            <![CDATA[
                SET @resource_id := (SELECT id FROM vendor_resource WHERE resource = 'conflict');;

                SET @privilege_id := (SELECT id FROM vendor_privilege WHERE privilege = 'index' ORDER BY id ASC LIMIT 1);;

                INSERT INTO vendor_permissions (resource_id, privilege_id)
                VALUES (@resource_id, @privilege_id);;

                SET @permission_id = LAST_INSERT_ID();;

                INSERT INTO vendor_role_permissions (role_id, permission_id, allow)
                (SELECT id, @permission_id, 'Y' FROM vendor_roles WHERE role = 'Catalog');;

                INSERT INTO vendor_role_permissions (role_id, permission_id, allow)
                (SELECT id, @permission_id, 'Y' FROM vendor_roles WHERE role = 'Administrator');;

                INSERT INTO vendor_role_permissions (role_id, permission_id, allow)
                (SELECT id, @permission_id, 'Y' FROM vendor_roles WHERE role = 'Manage Rights');;

            ]]>
        </sql>
        <rollback>
            <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
                <![CDATA[
                    SET @resource_id := (SELECT id FROM vendor_resource WHERE resource = 'conflict');;

                    SET @privilege_id := (SELECT id FROM vendor_privilege WHERE privilege = 'index' ORDER BY id ASC LIMIT 1);;

                    SET @permission_id := (SELECT id FROM vendor_permissions WHERE resource_id = @resource_id AND privilege_id = @privilege_id);;

                    DELETE FROM vendor_role_permissions WHERE permission_id = @permission_id;;

                    DELETE FROM vendor_permissions WHERE id = @permission_id;;
                ]]>
            </sql>
        </rollback>
    </changeSet>
</databaseChangeLog>
