package RPS::Import::EMIMusic::Mobile::v1;

use strict;

use lib '/app/tools/data_classes/lib';
use lib '/app/tools/common/lib';
use lib '/app/tools/rps/lib';
use lib '/app/tools/raptor/lib';
use Common::Date;
use Common::Log;
use Common::RSMath;
use Client::Service;

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

use Data::Dumper;

# These files don't contain header lines.
#
sub _noHeader { 1 }

sub _unverifiedFieldMap {
    {
        usageType => 'K',
        vat       => 'I',
    };
}

sub _fieldMap {
    {
        dateBegin       => 'C',
        isrc            => 'D',
        clientProductID => 'D',    # Going to put the DTI in both columns...
        artistName      => 'E',
        trackName       => 'F',
        units           => 'G',
        price           => 'H',
        currencyCode    => 'J',
        countryCode     => 'M',
    };
}

# These are all tracks
#
sub productType { return RPS::File::Sale::TYPE_TRACK; }

my %gFormatTypes = (
    'RIN' => RPS::File::Sale::FORMAT_RINGTONE,
    'OUT' => RPS::File::Sale::FORMAT_RINGBACK,
    'VRT' => RPS::File::Sale::FORMAT_RINGTONE,    # was FORMAT_VIDEORINGER (FB1324)
    'VIC' => RPS::File::Sale::FORMAT_STREAM,      # was FORMAT_VIDEOSTREAM (FB1324)
    'VID' => RPS::File::Sale::FORMAT_DOWNLOAD,    # was FORMAT_VIDEO (FB1324)
                                                  #'IMA'   => RPS::File::Sale::FORMAT_GRAPHIC, # deleted (FB1324)
    'MDD' => RPS::File::Sale::FORMAT_DOWNLOAD,
);

my %gMediaTypes = (
    'RIN' => RPS::DB::Item::MediaType::kMediaTypeAudio,
    'OUT' => RPS::DB::Item::MediaType::kMediaTypeAudio,
    'VRT' => RPS::DB::Item::MediaType::kMediaTypeVideo,
    'VIC' => RPS::DB::Item::MediaType::kMediaTypeVideo,
    'VID' => RPS::DB::Item::MediaType::kMediaTypeVideo,

    #'IMA'   => RPS::DB::Item::MediaType::kMediaTypeVideo,
    'MDD' => RPS::DB::Item::MediaType::kMediaTypeAudio,
);

sub formatType {
    my ($self) = @_;

    my $usage = $self->_getByFieldName('usageType');
    return $gFormatTypes{$usage};
}

sub mediaType {
    my ($self) = @_;

    my $usage = $self->_getByFieldName('usageType');
    return $gMediaTypes{$usage};
}

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