package BookPub::Import::Importer::BookPal::v1;

use strict;
use warnings;

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

sub _fieldMap {
    {
        dateBegin          => 'AA',
        dateEnd            => 'AA',
        rAuthor            => 'AJ',
        rTitle             => 'AI',
        rIsbn13            => 'AF',
        rImprint           => 'AN',
        rState             => 'J',
        rPostalCode        => 'N',
        countryCode        => 'I',
        serviceProductID   => 'AH',
        rUnits             => 'AO',
        rUnitPrice         => 'AP',
        rListPrice         => 'CI',
        rListPriceCurrency => 'AT',
        rDiscount          => 'AQ',
        rRevenue           => 'AU',
        currencyCode       => 'AT',
        rTaxAmount         => 'AY',
        rFee               => 'AS',
    };
}

sub _headerIdentifier { rTitle => 'Product title' }
sub purchaseType      { BookPub::DB::Item::Sale::kPurchaseTypeDownload }
sub productType       { BookPub::DB::Item::Sale::kProductTypeEBook }
sub rProductType      { BookPub::DB::Item::Sale::kProductTypeEBook }
sub priceType         { 'agency' }
sub _useIsSaleRec     { 1 }

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

sub currencyCode {
    my $self = shift;

    my $currencyCode = $self->_getByFieldName('currencyCode') || '';
    if ( $currencyCode =~ /^US\s+Dollars$/i ) {
        return 'USD';
    }

    $self->fail("Unable to find currency code in '$currencyCode'");
}

sub rListPriceCurrency {
    return shift->currencyCode;
}


1;
