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

            USE art_relations;;

            SET @resource_name = 'subaccount';;
            SET @privilege_name = 'editperformancerightsdeliverysettings';;
            SET @permission_desc = 'Edit Performance Rights Delivery Settings for Subaccount';;

            SET @orchadmin_resource_id = (SELECT orchadmin_resource_id FROM orchadmin_resources WHERE resource = @resource_name);;

            -- 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 = 'editPerformancerightsdeliverysettings';;
                SET @permission_desc = 'Edit Performance Rights Delivery Settings for Subaccount';;

                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>
