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

            SET @resource = 'Relationships';;
            SET @description = 'Approve digital products';;
            SET @privilege_name = 'Approve Digital Products';;

            INSERT INTO orchadmin_privileges(privilege) VALUES(@privilege_name);;

            SET @privilege_id = LAST_INSERT_ID();;
            SET @resource_id = (SELECT orchadmin_resource_id FROM orchadmin_resources WHERE resource = @resource LIMIT 1);;

            INSERT INTO orchadmin_permissions (orchadmin_resource_id, orchadmin_privilege_id, description)
            VALUES(@resource_id, @privilege_id, @description);;
            SET @orchadmin_permission_id = LAST_INSERT_ID();;

            -- Assign the permission to the specific roles
            INSERT INTO orchadmin_role_permissions(orchadmin_role_id, orchadmin_permission_id, allow)
            SELECT orchadmin_role_id, @orchadmin_permission_id, 'Y'
            FROM orchadmin_roles
            WHERE orchadmin_role IN (
                'Technology Manager',
                'Product Manager',
                'Partner',
                'Content Manager',
                'Artist &amp; Label Relations',
                'Management'
            );;
       </sql>
       <rollback>
            USE art_relations;;

            SET @resource = 'Relationships';;
            SET @description = 'Approve digital products';;
            SET @privilege_name = 'Approve Digital Products';;

            SET @resource_id = (SELECT orchadmin_resource_id FROM orchadmin_resources WHERE resource = @resource LIMIT 1);;
            SET @permission_id = (SELECT orchadmin_permission_id FROM orchadmin_permissions WHERE orchadmin_resource_id = @resource_id AND description = @description LIMIT 1);;

            DELETE FROM orchadmin_privileges WHERE privilege = @privilege_name;;
            DELETE FROM orchadmin_role_permissions WHERE orchadmin_permission_id = @permission_id 
            AND orchadmin_role_id IN (
            SELECT orchadmin_role_id FROM orchadmin_roles WHERE orchadmin_role IN (
                'Technology Manager',
                'Product Manager',
                'Partner',
                'Content Manager',
                'Artist &amp; Label Relations',
                'Management'
            ));;
            
            DELETE FROM orchadmin_permissions WHERE orchadmin_permission_id = @permission_id AND orchadmin_resource_id = @resource_id;;
       </rollback>
   </changeSet>
</databaseChangeLog>
