package RPS::Import::BMG::v6;

use strict;
use warnings;

use lib '/app/tools/rps/lib';
use RPS::Import::ServiceMap;

use parent 'RPS::Import::BMG::v4';

sub physical { 0 }

sub _fieldMapExtended {
    {
        digital => {
            option1 => {
                serviceID    => 'K',
                countryCode  => 'G',
                dateBegin    => 'I',
                dateEnd      => 'I',
                productType  => 'O',
                formatType   => 'M',
                artistName   => 'F',
                isrc         => 'D',
                trackName    => 'E',
                units        => 'Z',
                currencyCode => 'AB',
                price        => 'AA',
                mediaType    => 'M',
            },
         },
    };
}

sub productType {
    my $self = shift;

    my $type = $self->_getByFieldName("productType") || '';
    return RPS::File::Sale::TYPE_TRACK  if $type =~ /^DST$/i;

    return $self->handleError( "Unknown product type: '$type'", RPS::DB::Item::SaleImportError::kErrorProductType );
}

sub countryCode {
    my $self = shift;

    my $name = $self->_getByFieldName('countryCode') || '';
    $name =~ s/,/, /;

    return 'ZZ' if $name =~ /^Rest of World$/i;

    my $country = Common::Country->Get($name);
    return $country->alpha2() if $country;

    $self->handleError( "Unknown country code: '$name'", RPS::DB::Item::SaleImportError::kErrorCountry );
    return $name;
}

sub _isValidSaleRecord {
    my $self = shift;

    return $self->units || $self->price;
}

# mapFace
sub _mapFaceServiceID   { 'serviceID' }
sub _mapFaceCountryCode { 'productType' }
sub _mapFaceProductType { 'countryCode' }
sub _mapFaceFormatType  { 'formatType' }
sub _mapFaceMediaType   { 'mediaType' }


1;
