package BookPub::Import::Importer::Google::Version4;

use strict;

use Common::Assert;
use Data::Dumper;

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

sub _headerIdentifier { ( rTitle => 'Title' ) }

sub _fieldMap {
    {
        currencyCode => 'K',
        countryCode  => 'L',
        dateBegin    => 'A',
        rIsbn13      => 'F',
        rTitle       => 'H',
        rAuthor      => 'I',
        rUnits       => 'D',
        rListPrice   => 'J',
        rDiscount    => 'M',
        rRevenue     => 'N',
    };
}

sub priceType        { 'rrp' }
sub purchaseType     { BookPub::DB::Item::Sale::kPurchaseTypeDownload }
sub productType      { BookPub::DB::Item::Sale::kProductTypeEBook }
sub deriveDateFormat { 1 }

sub _isValidSaleRecord {
    my $self = shift;
    my $date = $self->_getDateBegin();

    return unless ( $date && $date =~ /\d/ );
    return $self->rTitle || $self->rIsbn10 || $self->rIsbn13;
}

sub _derivedDateMonthHint {

    # Attempt to get a month hint from the filename
    shift->filename =~ /\d{4}_(\d{2})/;

    return $1;
}

sub rAuthor {
    my $self = shift;

    my $author = $self->SUPER::rAuthor;

    $author =~ s/ ~autofilled~$//;

    return $author;
}

sub rTitle {
    my $self = shift;

    my $title = $self->SUPER::rTitle();
    $title =~ s/ ~autofilled~$//;

    if ( $title =~ /(.+):.+/ ) {
        $title = $1;
    }

    return $title;
}

sub rSubtitle {
    my $self = shift;

    my $title = $self->SUPER::rTitle();
    my $subtitle;

    if ( $title =~ /.+: (.+)/ ) {
        $subtitle = $1;
    }

    return $subtitle;
}

1;
