package RPS::Import::7Digital::v10;

use strict;

use Date::Calc qw(Days_in_Month);

use Data::Dumper;

use lib '/app/tools/common/lib';
use Common::Util;
use Common::Consts;

use lib '/app/tools/data_classes/lib';

use lib '/app/tools/rps/lib';
use RPS::File::Sale;
use RPS::DB::Item::MediaType;

use RPS::Import::Importer;
use base 'RPS::Import::Importer';

sub _fieldMap {
    {
        labelName   => 'H',
        countryCode => 'J',
        dateBegin   => 'A',
        dateEnd     => 'A',
        productType => 'P',
        upc         => 'G',
        albumName   => 'C',
        isrc        => 'F',
        trackName   => 'E',
        price       => 'O',
    };
}

sub _unverifiedFieldMap {
    {
        albumArtist => 'B',
        trackArtist => 'D',
    };
}

sub _headerIdentifier { ( dateBegin => 'Sale Date' ) }

sub formatType   { return RPS::File::Sale::FORMAT_DOWNLOAD; }
sub mediaType    { return RPS::DB::Item::MediaType::kMediaTypeAudio; }
sub currencyCode { "GBP" }
sub units        { 1 }

sub productType {
    my $self = shift;

    my $isrc = $self->_getByFieldName('isrc');

    if ($isrc) {
        return RPS::File::Sale::TYPE_TRACK;
    } else {
        return RPS::File::Sale::TYPE_ALBUM;
    }
}

sub artistName {
    my $self = shift;

    if ( $self->productType() eq RPS::File::Sale::TYPE_ALBUM ) {
        return $self->_getByFieldName('albumArtist');
    } else {
        return $self->_getByFieldName('trackArtist');
    }
}

###
1;    # Play nicely.
###
