#!/usr/bin/perl
use strict;

use lib '/app/tools/common/lib';
use Common::RSApp;
use lib '/app/tools/mediaserve/lib';
use MediaServe::Server;
use File::Copy;

my ( $client_id, $album_id ) = @ARGV;

die "need client_id and album_id" unless ( $client_id && $album_id );

my $appSingleton = Common::RSApp->new( clientID => $client_id );
my $dbo          = Common::RSApp::GetClientDB();
my $dbh          = $dbo->DBH;

my $sql =
"SELECT product.upc_ean, product_track.product_track_id, product_track.disc_number, product_track.disc_track, product_track_file.media_file_id FROM product, product_track, product_track_file WHERE product.product_id = product_track.product_id AND product_track.product_track_id = product_track_file.product_track_id AND asset_id = $album_id AND product_type_id = 3 ORDER BY product_track.disc_number, product_track.disc_track";
my $sth = $dbh->prepare($sql);
$sth->execute();
while ( my ( $upc, $ptid, $disc, $track, $mfid ) = $sth->fetchrow_array() ) {
    my $dst = sprintf( "%s_%02d_%03d.flac", $upc, $disc, $track );
    my ( $host, $path ) = MediaServe::Server::GetAudioPath( clientID => $client_id, mediaFileID => $mfid );
    unless ( -d $upc ) {
        mkdir "$upc" or die "can't make $upc dir: $!";
    }
    print "copy $path to $upc/$dst\n";
    copy( $path, $upc . "/" . $dst );
}
