package Distribution::Packager::Nokia;

use strict;

use lib '/app/tools/distribution/lib';
use base 'Distribution::PackagerNew';

# See case 8302
sub _serviceCountries {
    qw( AD AE AL AR AT AU AX BA BD BE BG BH BR BY CA CH CL CN CO CS CY CZ DE DK EE
      EG ES FI FR GB GE GH GI GR HK HR HU ID IE IL IN IS IT JP KE KR KW LI LK LT
      LU LV MA MC MD MK MT MX MY NG NL NO NZ PH PK PL PR PT QA RO RU SA SE SG SI
      SK SM TH TR TW UA US ZA );
}

sub _worldWideTerritory { 'Global' }

sub _requireAllowed { 1 }

sub _templateFile { 'nokia.tt' }

sub _xsdFile { 'nokia-External_GenericOd2Xml_3_0.xsd' }

sub _imageFormat {
    {
        geometry => '240x240',
        density  => 72,
    };
}

sub _audioConverter { 'MediaServe::Audio::Converter::Wav' }

sub _albumAudioFileName {
    my $self   = shift;
    my $album  = shift || die "album required";
    my $volume = shift || die "track required";
    my $track  = shift || die "track required";

    return sprintf( "%s_%d_%d.%s",
        $album->{upc}, $volume->{sequence}, $track->{sequence}, $self->_albumAudioFileExtension( $album, $volume, $track ) );
}

sub _createDistributionPackageName {
    my ( $sec, $min, $hour, $mday, $mon, $year ) = localtime();
    return sprintf( '%d%02d%02d%02d%02d%02d', $year + 1900, $mon + 1, $mday, $hour, $min, $sec );
}

sub _processVolume {
    my $self = shift;
    my ( $album, $volume ) = @_;

    $album->{volume_count} = $album->{volume_count} ? $album->{volume_count} + 1 : 1;

    return $self->SUPER::_processVolume(@_);
}

sub _processTrack {
    my $self = shift;
    my ( $album, $volume, $track ) = @_;

    $album->{track_count} = $album->{track_count} ? $album->{track_count} + 1 : 1;

    return $self->SUPER::_processTrack(@_);
}

1;
