package BookPub::Import::Importer::Perlego::Version1;

use strict;

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

sub _fieldMap {
    {
        dateBegin        => 'F',
        dateEnd          => 'G',
        rTitle           => 'C',
        rIsbn13          => 'B',
        rRevenue         => 'E',
        currencyCode     => 'D',
        serviceProductID => 'A'
     }
}

sub purchaseType      { BookPub::DB::Item::Sale::kPurchaseTypeSubscriptionDL }
sub productType       { BookPub::DB::Item::Sale::kProductTypeEBook }
sub rProductType      { BookPub::DB::Item::Sale::kProductTypeEBook }
sub currencyCode      { return shift->_getByFieldName('currencyCode') }
sub _headerIdentifier { rTitle => 'Title' }
sub rServiceName      { "Perlego" }
sub priceType         { "rrp" }
sub countryCode       { "GB" }
sub _useIsSaleRec     { 1 }
sub units             { shift->rUnits }

sub rUnits {
    my $self = shift;

    my $rRevenue = $self->_getByFieldName( 'rRevenue' ) || 0;
    my $rUnits = $rRevenue <=> 0;
    return $rUnits || 1;
}

sub _getDateBegin {
    my $self = shift;

    my $date = $self->_getByFieldName( 'dateBegin' ) || "";

    if( $date && $date =~ /^([[0-9-]+)\s.+$/i ) {
        return $1;
    }
}

sub _getDateEnd {
    my $self = shift;

    my $date = $self->_getByFieldName( 'dateEnd' ) || "";

    if( $date && $date =~ /^([0-9-]+)\s.+$/i ) {
        return $1;
    }
}

sub _isSaleRec {
    my $self = shift;

    return if $self->{_endOfData};

    unless ( $self->SUPER::_isSaleRec ) {
        $self->{_endOfData} = 1;
        return;
    }

    return 1;
}

1;
