package RPS::Import::ADA::ADACommon;

use strict;


use lib '/app/tools/data_classes/lib';

use lib '/app/tools/rps/lib';
use RPS::Import::ServiceMap;

use base 'RPS::Import::Importer';

sub getServiceID {
    my $self  = shift;
    my $serviceName = shift;

    my $serviceID;
    $serviceName =~ s/\s+$//;
    $serviceID = $self->SUPER::getServiceID(lc ($serviceName)) || $RPS::Import::ServiceMap::SERVICE_ALIASES{ lc $serviceName };
                
    if (!$serviceID)
    {
        # Trying to get the Korean names to match up...
        my $serviceNameCopy = $serviceName;
        $serviceNameCopy =~ s/(.|\n)/sprintf("%02lx", ord $1)/eg;  
        $serviceID = $self->SUPER::getServiceID(lc ($serviceNameCopy)) || $RPS::Import::ServiceMap::SERVICE_ALIASES{ lc $serviceNameCopy }; 
    }

    if( !$serviceID && $self->countryCode && $self->countryCode eq 'KR' )
    {
        # FB16136: Anything coming out of Korea is mapped to ADA
        #
        $serviceID = Client::Service::DSP_ADA;
    }

    # Apply ADA-specific service mappings, if any (FB33)
    #
    if ( !$serviceID && ($serviceName =~ /^\(\?\)\?\?\?\?\?$/ ||
                         $serviceName =~ /^mlj inc.$/i ) )
    {
        $serviceID = Client::Service::DSP_ADA;
    }

    $serviceID = Client::Service::DSP_ADA if( !$serviceID && $serviceName =~ /^Digital Breakage Adj$/i ); # FB393
    $serviceID = Client::Service::DSP_ADA if( !$serviceID && $serviceName =~ /^Digital Breakage Adjustments CZ$/i ); # FB2106
    $serviceID = Client::Service::DSP_ADA if( !$serviceID && $serviceName =~ /^Digital Breakage Adjustments Honduras$/i ); # FB2985
    $serviceID = Client::Service::DSP_ADA if( !$serviceID && $serviceName =~ /^Digital Breakage Adjustments Nicaragua$/i ); # FB2985
    $serviceID = Client::Service::DSP_ADA if( !$serviceID && $serviceName =~ /^Audit Recovery$/i ); # FB573
    $serviceID = Client::Service::DSP_AMAZON if( !$serviceID && $serviceName =~ /^Amazon Digital Services/i ); # FB6386
    $serviceID = Client::Service::DSP_NOKIA if( !$serviceID && $serviceName =~ /^9999996 Nokia Music Australia od2$/i ); # FB2885
    $serviceID = Client::Service::DSP_SPOTIFY if( !$serviceID && $serviceName =~ /^9999822 Spotify$/i ); # FB2885
    $serviceID = Client::Service::DSP_OVI_MUSIC if( !$serviceID && $serviceName =~ /^9999996 OVI Music Australia$/i ); # FB2885
    $serviceID = Client::Service::DSP_ORANGE if ( !$serviceID && $serviceName =~ m/^Orange Mobile UK/i ); #FB2956
    $serviceID = Client::Service::DSP_UNKNOWN if ( !$serviceID && $serviceName =~ m/^\xE0\xB8\x{0161}\xE0/i ); #FB2958


    # ADA has multiple variants of 'Digital Breakage Adjustments'.
    if( !$serviceID && (
        $serviceName =~ /^9999231 DIGITAL BREAKAGE ADJ 4-YT TERM 1$/i ||
        $serviceName =~ /^Digital Breakage Adjustments.*$/i 
    ))
    {
        $serviceID = Client::Service::DSP_ADA;
    }

    if( !$serviceID && (
        $serviceName =~ /^Spotify Digital Breakage Adjustments.*$/i
    ))
    {
        $serviceID = Client::Service::DSP_SPOTIFY;
    }

    if( !$serviceID && (
        $serviceName =~ /^Netease Information Technology.*$/i
    ))
    {
        $serviceID = Client::Service::DSP_NETEASE;
    }


    return $serviceID;
}

sub rPrice    { shift->SUPER::price }
sub rUnits    { shift->SUPER::units }

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