package RPS::Import::PIAS::v11;

use strict;

use lib '/app/tools/common/lib';
use Common::Date;

use lib '/app/tools/rps/lib';
use base 'RPS::Import::PIAS::Physical';

use Data::Dumper;

sub _fieldMap {
    my $self      = shift;
    my %field_map = (
        11 => {

            # Data
            countryCode      => 'E',
            artistName       => 'D',
            serviceProductID => 'B',
            albumName        => 'C',
            wholesalePrice   => 'N',
            sales            => 'H',
            returns          => 'I',
            totalRevenue     => 'O',
        },
        12 => {

            # Data
            countryCode      => 'E',
            artistName       => 'D',
            serviceProductID => 'B',
            albumName        => 'C',
            wholesalePrice   => 'I',
            sales            => 'G',
            returns          => 'H',
            totalRevenue     => 'N',
        },
    );
    return $field_map{ $self->_version };
}

sub _unverifiedFieldMap {
    my $self      = shift;
    my %field_map = (
        11 => {

            # Header
            headerLabel => 'A',
            headerValue => 'D',
        },
        12 => {

            # Header
            headerLabel => 'A',
            headerValue => 'D',
            foc         => 'F',
        },
    );
    return $field_map{ $self->_version };
}

sub salesRevenue {
    my $self    = shift;
    my $revenue = $self->_getByFieldName('totalRevenue');
    return $revenue > 0 ? $revenue : 0;
}

sub returnsRevenue {
    my $self    = shift;
    my $revenue = $self->_getByFieldName('totalRevenue');
    return $revenue < 0 ? abs($revenue) : 0;
}

sub sales {
    my $self  = shift;
    my $sales = $self->_getByFieldName('sales');
    if ( exists $self->_unverifiedFieldMap->{'foc'} ) {
        my $foc = $self->_getByFieldName('foc');
        $sales = $foc if ( $foc > 0 );
    }
    return $sales;
}

sub free {
    my $self = shift;
    my $free;
    if ( exists $self->_unverifiedFieldMap->{'foc'} ) {
        my $foc = $self->_getByFieldName('foc');
        $free = 1 if ( $foc > 0 );
    }
    return $free;
}

sub _isValidSaleRecord {
    my $self = shift;

    # Look at the line if it's free or has revenue, and has a track or album name
    #
    return ( $self->free || $self->totalRevenue ) && ( $self->trackName || $self->albumName );

}

###
1;    # Play nicely.
###
