package RPS::Import::Merlin::v61;

use strict;
use warnings;

use lib '/app/tools/rps/lib';
use parent 'RPS::Import::Merlin::v56';

use Date::Calc qw(Decode_Month Days_in_Month);

sub _fieldMap {
    {
        labelName    => 'F',
        countryCode  => 'R',
        dateBegin    => 'B',
        dateEnd      => 'B',
        formatType   => 'M',
        artistName   => 'G',
        upc          => 'I',
        albumName    => 'H',
        isrc         => 'K',
        trackName    => 'J',
        units        => 'O',
        currencyCode => 'U',
        price        => 'U',
        mediaType    => 'M'
    };
}

sub serviceID   { Client::Service::DSP_AWA }
sub productType { RPS::File::Sale::TYPE_TRACK }

sub saleDates {
    my $self = shift;
    my $dt = $self->_getByFieldName('dateBegin');

    my $startDate;
    my $endDate;

    if ( $dt =~ /^(\d{2})[-\/](\d{2})[-\/](\d{4})$/ )    # DD-MM-YYYY or DD/MM/YYYY
    {
        my $year  = $3;
        my $month = $2;
        my $day   = $1;
        $startDate = sprintf( "%04d-%02d-%02d", $year, $month, 1 );
        $endDate = sprintf( "%04d-%02d-%02d", $year, $month, Days_in_Month( $year, $month ) );
	}

    $self->fail("Cannot determine date from '$dt'") unless ($startDate && $endDate);

	return ( $startDate, $endDate );
}

sub formatType {
    my $self = shift;

    my $type = $self->_getByFieldName('formatType') || '';
    return RPS::File::Sale::FORMAT_STREAM if $type =~ /^(?:(?:premium|standard)-unlimited-streaming(?:-6m)?|backup-radio|stream)$/i;
}

1;
