<?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="mdadhania">
        <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
            <!-- Get payment holds controller resource id -->
            SET @resource_id = (SELECT orchadmin_resource_id FROM orchadmin_resources WHERE resource = 'paymentholds');;

            <!-- Bulk payment holds action -->
            INSERT INTO orchadmin_privileges (privilege) VALUES ('bulkpaymentholds');;
            SET @bulkpaymentholds_privilege_id = LAST_INSERT_ID();;

            INSERT INTO orchadmin_permissions
                (orchadmin_resource_id, orchadmin_privilege_id, description)
            VALUES
                (@resource_id, @bulkpaymentholds_privilege_id, 'Bulk Accounting Payment Holds');;

            <!-- Upload bulk payment holds action -->
            INSERT INTO orchadmin_privileges (privilege) VALUES ('upload');;
            SET @upload_privilege_id = LAST_INSERT_ID();;

            INSERT INTO orchadmin_permissions
                (orchadmin_resource_id, orchadmin_privilege_id, description)
            VALUES
                (@resource_id, @upload_privilege_id, 'Upload Bulk Accounting Payment Holds');;
        </sql>
        <rollback>
            SET @resource_id = (SELECT orchadmin_resource_id FROM orchadmin_resources WHERE resource = 'paymentholds');;

            <!-- Bulk payment holds action -->
            SET @bulkpaymentholds_privilege_id = (SELECT oprv.orchadmin_privilege_id
                FROM orchadmin_privileges oprv 
                INNER JOIN orchadmin_permissions oper ON oprv.orchadmin_privilege_id = oper.orchadmin_privilege_id 
                WHERE oprv.privilege = 'bulkpaymentholds' AND oper.orchadmin_resource_id = @resource_id);;

            DELETE FROM orchadmin_permissions WHERE orchadmin_resource_id = @resource_id AND orchadmin_privilege_id = @bulkpaymentholds_privilege_id;;
            DELETE FROM orchadmin_privileges WHERE orchadmin_privilege_id = @bulkpaymentholds_privilege_id;;

            <!-- Upload bulk payment holds action -->
            SET @upload_privilege_id = (SELECT oprv.orchadmin_privilege_id
                FROM orchadmin_privileges oprv 
                INNER JOIN orchadmin_permissions oper ON oprv.orchadmin_privilege_id = oper.orchadmin_privilege_id 
                WHERE oprv.privilege = 'upload' AND oper.orchadmin_resource_id = @resource_id);;

            DELETE FROM orchadmin_permissions WHERE orchadmin_resource_id = @resource_id AND orchadmin_privilege_id = @upload_privilege_id;;
            DELETE FROM orchadmin_privileges WHERE orchadmin_privilege_id = @upload_privilege_id;;
        </rollback>
    </changeSet>
</databaseChangeLog>
