#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------
package MediaServe::Image::Matcher;
use strict;
use warnings;

use lib '/app/tools/common/lib';
use Common::RSApp;
use Common::Util;
use Common::Assert;

use lib '/app/tools/rps/lib';
use RPS::Catalog::ImageUpload;

use lib '/app/tools/mediaserve/lib';
use MediaServe::Matcher;

use base 'MediaServe::Matcher';

sub asset_db_class { 'MediaServe::DB::Item::AlbumFile' }
sub id_field       { 'album_id' }

sub get_match_criteria {
    my $self     = shift;
    my $filename = shift;

    assert($self);
    assert($filename);

    my ($file) = split( /[-\.]/, $filename );

    my %args;

    if ( $file =~ /^album_(\d+)/ ) {
        $args{album_id} = $1;
    } else {
        $args{upc_ean} = $file;
    }

    return %args;
}

sub remove_duplicate_assets {
    my $self     = shift;
    my $filename = shift;
    my $album_id = shift;

    assert($self);
    assert($filename);
    assert($album_id);

    my ($base) = split( /[\.-]/, $filename );

    Common::Log::Debug("   - Removing duplicates for '$base'") if ($base);
    return unless ($base);

    my $duplicate_album_files = MediaServe::DB::Item::AlbumFile->GetDuplicateAssets( $base, $album_id );

    my $album_file;
    my $media_file;

    while ( $duplicate_album_files->hasNext() ) {
        $album_file = $duplicate_album_files->next();

        $media_file = MediaServe::DB::Item::MediaFile->Lookup( media_file_id => $album_file->media_file_id );

        $media_file->delete();
        $album_file->delete();
    }
}

1;
