package RPS::Import::Koch::Physical;

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 _processHeader {
    my $self = shift;

    return if( $self->{_dateBegin} );

    my $date = $self->_getByFieldName('dateBegin') || return;

    ($self->{_dateBegin}) = $date =~ /Month Period:\s*(\d{2}\/\d{4})/;
}

sub productType {
    my $self = shift;
    my $catalogID = $self->_getByFieldName('productType');

    if( $catalogID =~ /CD/ ) {
        return RPS::File::Sale::TYPE_CD;
    } elsif( $catalogID =~ /BO/ ) {
        return RPS::File::Sale::TYPE_CD;
    } elsif( $catalogID =~ /LP/ ) {
        return RPS::File::Sale::TYPE_LP;
    } elsif( $catalogID =~ /DV/ ) {
        return RPS::File::Sale::TYPE_DVD;
    } else {
        die "Could not determine product type from catalog id: $catalogID";
    }
}

sub _getDateBegin { shift->{_dateBegin} }
sub _getDateEnd   { shift->{_dateEnd} }

sub physical     { 1 }
sub channel      { RPS::File::Sale::CHANNEL_RETAIL }
sub priceLevel   { RPS::File::Sale::PLEVEL_UNKNOWN }
sub countryCode  { 'US' }
sub currencyCode { 'USD' }

sub returns { abs(shift->SUPER::returns()) }
sub returnsRevenue { abs(shift->SUPER::returnsRevenue()) }

sub albumName {
    my $field = shift->SUPER::albumName();
    my ($artist,$album) = split( /[\/;:]/, $field );
    $album = $artist unless($album);

    $album =~ s/^\s+//;
    $album =~ s/\s+$//;

    return $album;
}

sub artistName {
    my $field = shift->SUPER::artistName();
    my ($artist, $album) = split( /[\/:;]/, $field );

    $artist =~ s/^\s+//;
    $artist =~ s/\s+$//;

    return $album ? $artist : undef;
}

# Disable validation
sub _validateTotalSum {}
sub _validateSaleTotalSum {}


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