package BookPub::Import::Importer::Storytel::Version4;

use strict;
use warnings;

use lib '/app/tools/bookpub/lib';
use parent 'BookPub::Import::Importer::Storytel::Version3';


sub _fieldMap {
    my $self = shift;

    my $sheet = lc( $self->sheetname || '' );
    return {} unless $sheet && $sheet =~ /A\-books/i;

    return {
        dateBegin          => 'P',
        productType        => 'B',
        rAuthor            => 'A',
        rTitle             => 'B',
        rIsbn13            => 'C',
        rImprint           => 'O',
        countryCode        => 'D',
        rUnits             => 'F',
        rUnitPrice         => 'K',
        rListPrice         => 'K',
        rListPriceCurrency => 'K1',
        rDiscount          => 'E',
        rRevenue           => 'L',
        currencyCode       => 'L1',
    }

}

sub productType  { BookPub::DB::Item::Sale::kProductTypeAudioBook }
sub rProductType { BookPub::DB::Item::Sale::kProductTypeAudioBook }

sub dateBegin {
    my $self = shift;

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

    if ($date =~ /^(\d{4})-(\d{2})-(\d{2}) to/) {
        return sprintf( "%04d-%02d-%02d", $1, $2, $3 );
    }

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

sub dateEnd {
    my $self = shift;

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

    if ($date =~ /to (\d{4})-(\d{2})-(\d{2})$/) {
        return sprintf( "%04d-%02d-%02d", $1, $2, $3 );
    }

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

sub rListPriceCurrency {
    my $self = shift;

    my ( $currencyCode ) = $self->_getByFieldName('rListPriceCurrency') =~ /\((\w+)\)/;
    return $currencyCode;
}

sub currencyCode {
    my $self  = shift;

    my ( $currencyCode ) = $self->_getByFieldName('currencyCode') =~ /\((\w+)\)/;
    return $currencyCode;
}

1;
