package RPS::Import::INGrooves::v21;

use strict;

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

use lib '/app/tools/rps/lib';
use base 'RPS::Import::INGrooves::v13';

sub _fieldMap
{
    {
        labelName        => 'M',
        serviceID        => 'B',
        countryCode      => 'L',
        dateBegin        => 'C',
        productType      => 'Q', # PRODUCT TYPE
        formatType       => 'P', # ASSET TYPE
        mediaType        => 'O', # SALES TYPE
        artistName       => 'D',
        serviceProductID => 'K', # CATALOG
        upc              => 'F',
        albumName        => 'E',
        isrc             => 'I',
        trackName        => 'G',
        units            => 'S',
        free             => 'R',
        price            => 'U',
    }
}

# we need to override this method from v13
sub price {
    my $self = shift;
    my $price = $self->_getByFieldName( 'price' ) || return;

    return $price;
}

sub units {
    my $self = shift;
    my $units = $self->_getByFieldName( 'units' ) || return;
    my $price = $self->_getByFieldName( 'price' );

    if( defined($price) ) {
        return $price < 0 ? abs($units) * -1 : $units;
    } else {
        return $units;
    }

}

sub free {
    my $self = shift;
    my $units = $self->_getByFieldName( 'units' );
    my $price = $self->_getByFieldName( 'price' );

    # Check the transaction type to see if the sale is marked 'free'
    #
    my $free = $self->SUPER::free =~ /giveaway|sale - promo/i;

    # Lines with +/- units and 0 revenue are also considered free
    #
    $free = 1 if( $units && 0 == $price );

    return $free;
}


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