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

            SET @resource_name = 'legal';;
            SET @privilege_name = 'privacy';;
            SET @permission_desc = 'Privacy Policy';;

            -- Create the resource(s) if it doesn't already exist
            INSERT INTO `orchadmin_resources` (`resource`)
            SELECT * FROM (SELECT @resource_name) AS tmp
            WHERE NOT EXISTS (
              SELECT `orchadmin_resource_id` FROM `orchadmin_resources` WHERE `resource` = @resource_name
            ) LIMIT 1;;
            SET @orchadmin_resource_id = (
              SELECT `orchadmin_resource_id` FROM `orchadmin_resources` WHERE`resource` = @resource_name LIMIT 1
            );;

            -- Create the privilege(s)
            INSERT INTO `orchadmin_privileges` (`privilege`)
            SELECT * FROM (SELECT @privilege_name) AS tmp
            WHERE NOT EXISTS (
              SELECT `orchadmin_privilege_id` FROM `orchadmin_privileges` WHERE `privilege` = @privilege_name
            ) LIMIT 1;;
            SET @orchadmin_privilege_id = (
              SELECT `orchadmin_privilege_id` FROM `orchadmin_privileges` WHERE`privilege` = @privilege_name LIMIT 1
            );;

            -- Create the permissions
            INSERT INTO `orchadmin_permissions` (`orchadmin_resource_id`,`orchadmin_privilege_id`,`description`)
            VALUES (@orchadmin_resource_id, @orchadmin_privilege_id, @permission_desc);;
            SET @orchadmin_permission_id = LAST_INSERT_ID();;

            -- Assign the permission to the Tech Manager role
            INSERT INTO orchadmin_role_permissions(orchadmin_role_id, orchadmin_permission_id, allow) VALUES (1, @orchadmin_permission_id, 'Y');;

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

                USE art_relations;;

                SET @resource_name = 'legal';;
                SET @privilege_name = 'privacy';;
                SET @permission_desc = 'Privacy Policy';;

                DELETE FROM orchadmin_role_permissions WHERE orchadmin_permission_id IN (
                  SELECT orchadmin_permission_id FROM orchadmin_permissions WHERE orchadmin_permissions.`description` = @permission_desc
                );;
                DELETE FROM orchadmin_permissions WHERE orchadmin_permissions.`description` = @permission_desc;;
                DELETE FROM orchadmin_resources WHERE orchadmin_resources.`resource` = @resource_name;;
                DELETE FROM orchadmin_privileges WHERE orchadmin_privileges.`privilege` = @privilege_name;;

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

            SET @privilege_name = 'terms';;
            SET @permission_desc = 'Terms and Conditions';;

            -- Create the privilege(s)
            INSERT INTO `orchadmin_privileges` (`privilege`)
            SELECT * FROM (SELECT @privilege_name) AS tmp
            WHERE NOT EXISTS (
              SELECT `orchadmin_privilege_id` FROM `orchadmin_privileges` WHERE `privilege` = @privilege_name
            ) LIMIT 1;;
            SET @orchadmin_privilege_id = (
              SELECT `orchadmin_privilege_id` FROM `orchadmin_privileges` WHERE`privilege` = @privilege_name LIMIT 1
            );;

            -- Create the permissions
            INSERT INTO `orchadmin_permissions` (`orchadmin_resource_id`,`orchadmin_privilege_id`,`description`)
            VALUES (@orchadmin_resource_id, @orchadmin_privilege_id, @permission_desc);;
            SET @orchadmin_permission_id = LAST_INSERT_ID();;

            -- Assign the permission to the Tech Manager role
            INSERT INTO orchadmin_role_permissions(orchadmin_role_id, orchadmin_permission_id, allow) VALUES (1, @orchadmin_permission_id, 'Y');;

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

                USE art_relations;;

                SET @privilege_name = 'terms';;
                SET @permission_desc = 'Terms and Conditions';;

                DELETE FROM orchadmin_role_permissions WHERE orchadmin_permission_id IN (
                  SELECT orchadmin_permission_id FROM orchadmin_permissions WHERE orchadmin_permissions.`description` = @permission_desc
                );;
                DELETE FROM orchadmin_permissions WHERE orchadmin_permissions.`description` = @permission_desc;;
                DELETE FROM orchadmin_privileges WHERE orchadmin_privileges.`privilege` = @privilege_name;;

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