package RPS::Import::SelectArchambault::v2;

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 { ( upc => 'upc' ) }

sub _fieldMap {
    {
        dateBegin   => 'A',
        productType => 'B',
        artistName  => 'F',
        upc         => 'C',
        albumName   => 'E',
        isrc        => 'D',
        trackName   => 'E',
        units       => 'G',
        price       => 'H',
    };
}

sub countryCode  { 'CA' }
sub currencyCode { 'CAD' }
sub formatType   { RPS::File::Sale::FORMAT_DOWNLOAD }
sub mediaType    { RPS::DB::Item::MediaType::kMediaTypeAudio }

sub productType {
    my $self = shift;
    my $type = $self->_getByFieldName('productType') || return;

    if ( $type =~ /track/i ) {
        return RPS::File::Sale::TYPE_TRACK;
    } elsif ( $type =~ /playlist/i ) {
        return RPS::File::Sale::TYPE_ALBUM;
    }

    $self->fail("Unknown product type '$type'");
}

sub albumName {
    my $self = shift;
    my $name = $self->SUPER::albumName() || return;

    return $self->productType() eq RPS::File::Sale::TYPE_ALBUM ? $name : undef;
}

sub trackName {
    my $self = shift;
    my $name = $self->SUPER::trackName() || return;

    return $self->productType() eq RPS::File::Sale::TYPE_TRACK ? $name : undef;
}

sub _getDateBegin {
    my $self = shift;
    my $date = $self->SUPER::_getDateBegin() || return;

    if ( $date =~ /^(\d{4})(\d{2})$/ ) {
        return "$2-$1";
    }

    return;
}

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