#!/usr/bin/perl

use strict;

use Sys::Hostname;
use Getopt::Std;
use Data::Dumper;

use lib '/app/tools/common/lib';
use Common::Consts;
use Common::Client;
use Common::Locale;
use Common::RSDB;
use Common::DB::Item::Client;
use Common::RSApp;

use lib '/app/tools/rps/lib';
use RPS::DB::Item::Album;
use RPS::DB::Item::Product;

my %opt;
getopts( 'as:f:h:', \%opt );
my $hostName = $opt{h} || hostname();
$hostName = lc $hostName;
$hostName =~ s/^(.+?)\..*$/$1/;

foreach my $clientID ( sort { $a <=> $b } keys %Common::RSDB::CLIENT_DB ) {
    my $app      = Common::RSApp->new( clientID => $clientID );
    my $dbName   = $Common::RSDB::CLIENT_DB{$clientID}{db_name};
    my $server   = $Common::RSDB::CLIENT_DB{$clientID}{server};
    my $userName = $Common::RSDB::CLIENT_DB{$clientID}{username};
    my $password = $Common::RSDB::CLIENT_DB{$clientID}{password};
    next unless ( $dbName =~ m/^C_/ );
    next unless ($password);

    my $client = Common::DB::Item::Client->Lookup( client_id => $clientID );
    my $clientName = $client->client_name();
    print "Updating products for $clientName\n";

    my $dbo = Common::RSApp::GetClientDB();

    my $products = RPS::DB::Item::Product->GetAll();

    while ( my $product = $products->next() ) {

        # Skip the digital track products.
        if ( $product->product_type_id == RPS::DB::Item::Product::kProductTypeDigitalTrack ) {
            next();
        }

        my $album = RPS::DB::Item::Album->Lookup( album_id => $product->asset_id );

        if ( $album && $album->title ) {

            my $productID  = $product->product_id;
            my $title      = $album->title;
            my $titleClean = Common::Util::clean_name_catalog($title);

            my $productUpdate =
                "UPDATE product SET title = "
              . Common::RSApp::GetClientDB()->DBQuote($title)
              . ", title_clean = "
              . Common::RSApp::GetClientDB()->DBQuote($titleClean)
              . " WHERE product_id = $productID;";

            my $updateResult = `mysql -u$userName -p$password -h$server $dbName -e "$productUpdate"`;

            #my $updateResult = `mysql -uroot C_ATO -e "$productUpdate"`;
        }
    }
}
