package BookPub::Import::Importer::CNPeReading::Version2;

use strict;

use lib '/app/tools/common/lib';

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

sub _fieldMap {
    {
        dateBegin          => 'B',
        rTitle             => 'D',
        rIsbn13            => 'C',
        rImprint           => 'K',
        rInstitution       => 'A',
        rUnits             => 'E',
        rListPrice         => 'H',
        rListPriceCurrency => 'G',
        rDiscount          => 'I',
        rRevenue           => 'J',
        currencyCode       => 'G',
        rModel             => 'F',
    }
}

sub _headerIdentifier { ( rIsbn13 => 'eISBN' ) }
sub _useIsSaleRec     { 1 }
sub priceType         { 'rrp' }
sub countryCode       { 'CN' }
sub productType       { BookPub::DB::Item::Sale::kProductTypeEBook }
sub rProductType      { BookPub::DB::Item::Sale::kProductTypeEBook }
sub purchaseType      { BookPub::DB::Item::Sale::kPurchaseTypeDownload }
sub priceTypeQualifierID       { BookPub::DB::Item::PriceTypeQualifier::kCorporate }    # Library
sub _autoParseTitleAndSubtitle { 1 }

sub rServiceName {
    return BookPub::Tracker::Service::GetDefaultServiceName(
        service_id => shift->serviceID
    );
}

sub discount {
    my $self = shift;
    my $discount = $self->_getByFieldName('rDiscount') || return;
    $discount = 1 - $discount;
    return $discount;
}

sub _getDateBegin {
    my $self = shift;

    my $date = $self->_getByFieldName('dateBegin') || return;
    return $date if $date =~ /^\d{4}-[01]\d-[0-3]\d$/;

    $self->fail("Cannot determine date from '$date'");
}

sub _isSaleRec {
    my $self = shift;

    return unless $self->rTitle;
    return $self->SUPER::_isSaleRec;
}

1;
