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

            DROP PROCEDURE IF EXISTS sp_get_assets_path_by_upc;;

            CREATE DEFINER=theorchard_dd@127.0.0.1 PROCEDURE sp_get_assets_path_by_upc(IN upc BIGINT, IN asset_type_id INT)
            BEGIN
            SELECT a.asset_id, a.upc, a.cd, a.track_id, a.clip_number, s.physical_location_id,
            IF(sdaf.initial_folder IS NULL, atp.initial_folder, sdaf.initial_folder) AS initial_folder,
            atp.file_type, atp.asset_type_id,atp.asset, atp.folder_structure,
            INET_NTOA(s.local_ip) AS storage_ip, al.status, s.unix_mount, s.bucket_name
            FROM asset a
            INNER JOIN asset_location al ON al.asset_id = a.asset_id
            INNER JOIN storage_drive sd ON sd.storage_drive_id = al.storage_drive_id
            INNER JOIN `storage` s ON s.storage_id = sd.storage_id
            INNER JOIN asset_type atp ON atp.asset_type_id = a.asset_type_id
            LEFT JOIN storage_drive_asset_folder sdaf ON
            sdaf.storage_drive_id = sd.storage_drive_id AND sdaf.asset_type_id = a.asset_type_id
            WHERE a.upc = upc AND a.asset_type_id = asset_type_id;
            END;;
        </sql>
        <rollback>
            <sql dbms="mysql" endDelimiter=";;" splitStatements="true" stripComments="true">
                USE `direct_delivery`;;

                DROP PROCEDURE IF EXISTS sp_get_assets_path_by_upc;;

                CREATE DEFINER=theorchard_dd@127.0.0.1 PROCEDURE sp_get_assets_path_by_upc(IN upc BIGINT, IN asset_type_id INT)
                BEGIN
                SELECT a.asset_id, a.upc, a.cd, a.track_id, a.clip_number, s.physical_location_id,
                IF(sdaf.initial_folder IS NULL, atp.initial_folder, sdaf.initial_folder) AS initial_folder,
                atp.file_type, atp.asset_type_id,atp.asset, atp.folder_structure,
                INET_NTOA(s.local_ip) AS storage_ip, al.status
                FROM asset a
                INNER JOIN asset_location al ON al.asset_id = a.asset_id
                INNER JOIN storage_drive sd ON sd.storage_drive_id = al.storage_drive_id
                INNER JOIN `storage` s ON s.storage_id = sd.storage_id
                INNER JOIN asset_type atp ON atp.asset_type_id = a.asset_type_id
                LEFT JOIN storage_drive_asset_folder sdaf ON
                sdaf.storage_drive_id = sd.storage_drive_id AND sdaf.asset_type_id = a.asset_type_id
                WHERE a.upc = upc AND a.asset_type_id = asset_type_id;
                END;;
            </sql>
        </rollback>
    </changeSet>
</databaseChangeLog>
