#---------------------------------------------------------------
# ____                   _ _         ____  _
#|  _ \ ___  _   _  __ _| | |_ _   _/ ___|| |__   __ _ _ __ ___
#| |_) / _ \| | | |/ _` | | __| | | \___ \| '_ \ / _` | '__/ _ \
#|  _ < (_) | |_| | (_| | | |_| |_| |___) | | | | (_| | | |  __/
#|_| \_\___/ \__, |\__,_|_|\__|\__, |____/|_| |_|\__,_|_|  \___|
#            |___/             |___/
#
# Copyright (C) 2012 RoyaltyShare, Inc.   All Rights Reserved
#---------------------------------------------------------------

package RPS::ArtistRoyalty::Fast::Static::MissedSaleProducts;

use strict;
use Data::Dumper;
use File::Path;

use lib '/app/tools/common/lib';
use lib '/app/tools/rps/lib';
use lib '/app/tools/raptor/lib';
use Common::RSApp;

use Common::Log;

# This is not a typical, staged data class.
# Instead this just wraps around a ram-cached query.
#
use base 'RPS::ArtistRoyalty::Fast::Static';
use constant kProductID     => 0;
use constant kProductTypeID => 1;
use constant kProductStatus => 2;
use constant kAlbumID       => 3;
use constant kAlbumStatus   => 4;
use constant kTrackID       => 5;

sub GetMissedSaleProductData {
    my ($class) = @_;

    my $sql = qq/
    select
    product.product_id,
    product.product_type_id,
    product.product_status_id,
    album.album_id,
    album.status,
    track.track_id
    from product
    join track on (product.asset_id = track.track_id)
    join album on (track.album_id = album.album_id)
    where product.product_type_id=4
    union
    select
    product.product_id,
    product.product_type_id,
    product.product_status_id,
    album.album_id,
    album.status,
    0
    from product
    join album on (product.asset_id = album.album_id)
    where product.product_type_id<>4
    /;

    my %data;
    my $dbo = Common::RSApp::GetClientDB();
    my $sth = $dbo->DoCmd($sql);
    while ( my @result = $sth->fetchrow_array() ) {
        my $escapedArray = $class->EscapeArray( \@result );
        $data{ $result[kProductID] } = $escapedArray;
    }

    return \%data;
}

1;

