package RPS::Import::ADA::v22;

use strict;

use lib '/app/tools/common/lib';
use Common::Util qw(normalize_date normalize_upc);
use Date::Calc qw(Days_in_Month);
use Data::Dumper;

use lib '/app/tools/data_classes/lib';

use lib '/app/tools/rps/lib';
use RPS::File::Sale;

use base 'RPS::Import::ADA::v21';

sub _fieldMap {
    {
        label            => 'A',
        serviceID        => 'M',
        serviceProductID => 'K',
        countryCode      => 'O',
        
        artistName       => 'E',

        clientProductID  => 'C',
        albumName        => 'F',
        trackName        => 'F',
  
        isrc             => 'I',
        upc              => 'H',

        units            => 'T',
        price            => 'Y',    
        
        productType      => 'G',         
    }
}

sub _unverifiedFieldMap {
    {
        deliveryType    => 'Q',
        deliveryFormat  => 'P',
        project         => 'D', # source of albumName for tracks
    }
}

sub _isValidSaleRecord {
	my $self = shift;
    my $units = $self->units;
    my $price = $self->price;
    my $trackName = $self->_getByFieldName( 'trackName' );
    my $projectName = $self->_getByFieldName( 'project' );
    my $upc = $self->_getByFieldName( 'upc' );
    my $isrc = $self->_getByFieldName( 'isrc' );
    
	return ( ($units != 0 || $price != 0) && ($trackName || $projectName || $upc || $isrc) );
}


sub currencyCode {
    my $self = shift;
    my $fileName = $self->{filename};
    return ( $fileName =~ /usd/i ) ? 'USD' : 'GBP';
}

sub albumName {
    my $self = shift;
    my $name = $self->_getByFieldName( 'albumName' );
    my $project = $self->_getByFieldName( 'project' );
    my $isrc = $self->_getByFieldName('isrc');

    if( $self->productType eq RPS::File::Sale::TYPE_TRACK || (!$self->productType && $isrc) )
    {
        # For track sales, we'll take the album name from the project column,
        # unless this is an Eleven Seven sale.
        #
        if( $project !~ /Eleven Seven - Distribution Sales/i )
        {
            return $project;
        }
        else
        {
            return "";  # No album name for 11-7 sales
        }
    }
    else
    {
        return $name;  # Return the release title
    }
}

sub trackName {
    return shift->RPS::Import::Importer::trackName();
}
   
###
1;# Play nicely.
###
