package BookPub::Import::Importer::Mobcast::Version3;

use strict;

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

sub _fieldMap {
    {
        currencyCode => 'F',
        countryCode  => 'L',
        isbn         => 'A',
        rTitle       => 'B',
        rUnits       => 'G',
        rListPrice   => 'E',
        rDiscount    => 'I',
        rRevenue     => 'K',
    };
}

sub rDistributor       { 'Mobcast' }
sub productType        { BookPub::DB::Item::Sale::kProductTypeEBook }
sub _dateNormalization { 'month' }

sub _getDateBegin {
    my $self     = shift;
    my $filename = $self->filename;
    my $date;
    my %months = (
        january   => 1,
        february  => 2,
        march     => 3,
        april     => 4,
        may       => 5,
        june      => 6,
        july      => 7,
        august    => 8,
        september => 9,
        october   => 10,
        november  => 11,
        december  => 12,
    );
    my $months_joined = join "|", keys %months;

    if ( $filename =~ /(\d{4}_\d{2})\./ ) {
        $date = $1;
        $date =~ s/_/-/;
        return $date;
    } elsif ( $filename =~ /_($months_joined)_(\d{4})_/ ) {
        my $monthText = $1;
        my $year      = $2;
        my $month     = $months{ lc($monthText) };

        $date = sprintf( "%04d-%02d", $year, $month );
        return $date;
    } else {
        $self->fail("Unable to determine date from filename: $filename");
    }

    return;
}

sub _getDateEnd {
    shift->_getDateBegin();
}

1;
