package BookPub::Import::Importer::Amazon::Version30;

use strict;

use lib '/app/tools/bookpub/lib';
use base 'BookPub::Import::Importer::Amazon::Version29';

sub _fieldMap {
    {
        serviceProductID   => 'G',
        currencyCode       => 'AP',
        countryCode        => 'Y',
        rState             => 'AA',
        rPostalCode        => 'X',
        dateBegin          => 'D',
        rIsbn13            => 'F',
        rTitle             => 'H',
        rAuthor            => 'I',
        rUnits             => 'K',
        rListPrice         => 'M',
        rListPriceCurrency => 'N',
        rPurchasePrice     => 'O',
        rRevenue           => 'AO',
        rTaxAmount         => 'AQ',
    };
}
sub _unverifiedFieldMap {
    {
        transactionStatus => 'L',
        transactionType   => 'R',
    };
}

sub rServiceName { 'Amazon' }
sub isFree {
    my $self = shift;

    return (((!$self->rRevenue || $self->rRevenue =~ /^0.0+/) && $self->rUnits) ? 'Y' : 'N');
}

sub countryCode {
    my $self = shift;

    my $countryCode = $self->_getByFieldName('countryCode') || 'CA';

    return $countryCode || $self->fail("Can't determine country_code from '$countryCode'.");
}

sub _isSaleRec {
    my $self = shift;

    my $transactionStatus = $self->_getByFieldName('transactionStatus');

    return 0 if ($transactionStatus =~ /^(?:REFUNDED_NOT_RECEIVED|FULFILLED_NOT_PAID)$/i  && !$self->rRevenue);
    return 0 unless ($self->rTitle && $self->rIsbn13 && $self->dateBegin);

    return $self->SUPER::_isSaleRec();
}

1;
