package BookPub::Import::Importer::Follett::Version8;

use strict;
use Memoize;

use lib '/app/tools/common/lib';
use Common::Util;
use Common::Assert;

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

sub _fieldMap {
    {
        rIsbn13    => 'D',
        rTitle     => 'C',
        rAuthor    => 'B',
        rUnits     => 'F',
        rListPrice => 'E',
        rDiscount  => 'G',
        rRevenue   => 'H',
    };
}

sub _unverifiedFieldMap {
    { dateInHeader => 'C1', };
}

sub countryCode { 'US' }

sub _useIsSaleRec              { 1 }
sub _autoParseTitleAndSubtitle { 1 }
sub _headerIdentifier          { ( rIsbn13 => 'ISBN' ) }
sub _dateNormalization         { 'month' }

sub _getDateBegin {
    my $self   = shift;
    my %months = (
        january   => 1,
        february  => 2,
        march     => 3,
        april     => 4,
        may       => 5,
        june      => 6,
        july      => 7,
        august    => 8,
        september => 9,
        october   => 10,
        november  => 11,
        december  => 12,
    );
    my $date = $self->_getByFieldName('dateInHeader');
    if ( $date !~ m/^For (\w+) (\d\d\d\d)$/ ) {
        $self->fail("Unrecognized date field contents: '$date'");
    }
    my $month = $months{ lc($1) };
    return "$2-$month-1";
}

sub _isSaleRec {
    my $self = shift;
    return if ( $self->rDiscount =~ /Total/i );
    return if ( $self->rAuthor =~ /of report/i );
    return $self->SUPER::_isSaleRec();
}

1;
