package RPS::Import::Amazon::v11;

use strict;
use warnings;

use lib '/app/tools/rps/lib';
use RPS::Import::ServiceMap;

use parent 'RPS::Import::ImporterMixed';

sub physical { 1 }

sub _fieldMapExtended {
    {
        physical => {
            option1 => {
                labelName       => 'B1',
                dateBegin       => 'A',
                dateEnd         => 'A',
                clientProductID => 'C',
                upc             => 'B',
                albumName       => 'D',
                wholesalePrice  => 'I',
                retailPrice     => 'F',
                totalRevenue    => 'J',
            },
         },
    };
}

sub _unverifiedFieldMapExtended {
    {
        physical => {
            option1 => {
                _netUnits => 'H',
            },
        }
    };
}

sub _headerIdentifierExtended {
    {
        physical => {
            option1 => {
                upc => 'External ID',
            },
        },
    };
}

sub countryCode   { 'US' }
sub currencyCode  { 'USD' }
sub serviceID     { Client::Service::DSP_AMAZON }
sub productType   { RPS::File::Sale::TYPE_CD }
sub channel       { RPS::File::Sale::CHANNEL_RETAIL }
sub priceLevel    { RPS::File::Sale::PLEVEL_FULL }


# physical
sub netUnits       { $_[0]->_getByFieldName('_netUnits') || 0 }
sub sales          { $_[0]->netUnits     > 0 ? $_[0]->netUnits         : 0 }
sub salesRevenue   { $_[0]->totalRevenue > 0 ? $_[0]->totalRevenue     : 0 }
sub returns        { $_[0]->netUnits     < 0 ? abs $_[0]->netUnits     : 0 }
sub returnsRevenue { $_[0]->totalRevenue < 0 ? abs $_[0]->totalRevenue : 0 }
sub totalRevenue   { $_[0]->_getByFieldName('totalRevenue') || 0 }

sub _isValidSaleRecord {
    my $self = shift;

    return defined $self->netUnits && $self->netUnits =~ /\d/ && $self->_getByFieldName('albumName');
}


1;
