package RPS::Import::Musiwave::Subscription;

use strict;

use lib '/app/tools/common/lib';
use Common::Date;

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

use Data::Dumper;

sub _headerIdentifier {{ trackName => 'Track Title' }}

sub _getDateBegin {
    my $self = shift;

    my $filename = $self->filename() || return;
    $filename =~ /(\d{8})_\d{8}/ || $self->fail( "Could not determine date from filename: $filename" );

    return $1;
}

sub _getDateEnd {
    my $self = shift;

    my $filename = $self->filename() || return;
    $filename =~ /\d{8}_(\d{8})/ || $self->fail( "Could not determine date from filename: $filename" );

    return $1;
}

sub formatType { RPS::File::Sale::FORMAT_STREAM }
sub mediaType { RPS::DB::Item::MediaType::kMediaTypeAudio }
sub productType {
    my $type = shift->_getByFieldName('productType') || return;

    return lc($type) eq 'single full-track' ? RPS::File::Sale::TYPE_TRACK :
           undef;
}

sub artistName {
    my $self = shift;
    my $trackArtist = $self->_getByFieldName('trackArtist');
    my $albumArtist = $self->_getByFieldName('albumArtist');

    return $self->productType eq RPS::File::Sale::TYPE_TRACK ? $trackArtist : $albumArtist;
}

sub serviceID {
    my $self = shift;
    my $service = $self->_getByFieldName( 'serviceID' );

    my $serviceID = $self->getServiceID( $service ) if( $service );

    $self->fail( "Unknown service '$service'" ) unless( $serviceID );

    return $serviceID;
}

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