package RPS::Import::Tunecore::v3;

use strict;

use lib '/app/tools/rps/lib';
use base 'RPS::Import::Importer';

sub _fieldMap {
    {
        labelName    => 'L',
        currencyCode => 'H',
        dateBegin    => 'A',
        dateEnd      => 'A',
        productType  => 'J',
        artistName   => 'M',
        albumName    => 'K',
        trackName    => 'J',
        units        => 'B',
        price        => 'G',
    };
}

sub _headerIdentifier { ( labelName => 'Label Name' ) }

sub formatType  { return RPS::File::Sale::FORMAT_STREAM; }
sub serviceID   { return Client::Service::DSP_TUNECORE; }
sub countryCode { return 'US'; }
sub mediaType   { return RPS::DB::Item::MediaType::kMediaTypeAudio; }

sub productType {
    my $self  = shift;
    my $type  = $self->_getByFieldName('productType' || "");
    return RPS::File::Sale::TYPE_TRACK if $type;

    $self->fail("Cannot determine product type from '$type'");
}

sub units {
    my $self  = shift;

    my $units = $self->_getByFieldName('units') || 0;
    my $price = $self->_getByFieldName('price') || 0;

    return $price < 0 ? abs($units) * -1 : $units;

}

1;
