#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------
package RPS::DB::Item::SaleLicenseMap;
use strict;
use warnings;
use lib '/app/tools/common/lib';
use Common::DB::Item;
use Common::RSApp;
use Common::Assert;

use base 'Common::DB::Item';

use constant kTable => 'sale_license_map';
use constant kDB    => Common::DB::Item::kClientDB();

sub GetLicenseMappedSaleIDs {
    my ( $class, $runID, $saleIDs ) = @_;
    assert($runID);
    assert($saleIDs);

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

    # get the sales and the licenses they've been paid on
    my %paidSaleMap;
    if ( scalar @$saleIDs > 0 )  {

        my $sql = 'SELECT sale_id, licenses FROM ' . kTable
            . ' WHERE run_id='. $runID . ' AND sale_id IN (' . join(',',@$saleIDs) . ')';

        my $sth = $dbo->DoCmd($sql);
        while ( my( $saleID, $licenses ) = $sth->fetchrow_array() ) { 
            my @lArray = split(',', $licenses);
            foreach my $licenseID (@lArray) {
                $paidSaleMap{$saleID}{$licenseID} = 1;
            }   
        }   
    }   

    return \%paidSaleMap;
}

sub DeleteAllForRun {
    my ( $class, $runID ) = @_;
    assert($runID);

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

    my $sql = 'DELETE FROM ' . kTable . " WHERE run_id=$runID";
    $dbo->DoCmd($sql);
}

1;

