#!/usr/bin/perl -w 

use FindBin;
use lib "$FindBin::Bin/../../perl_lib";

use strict;
use EPrints;

if( !defined $ARGV[0] )
{
	print "\nUsage is:";
	print "\n\t{that script} repository_id {eprintid}\n\n";
	exit(1);
}

my $session = new EPrints::Session( 1, $ARGV[0] ) or die("cant create Session object");

my $list;
if( defined $ARGV[1] )
{

	$list = EPrints::List->new( 
		session => $session,
		dataset => $session->dataset( 'eprint' ),
		ids => [$ARGV[1]]
	);
}
else
{
	my $ds = $session->dataset( 'eprint' );

	my $search = EPrints::Search->new( 
		session => $session,
		dataset => $session->dataset( 'eprint' ),
		allow_blank => 1
	);

	$list = $search->perform_search;
}

my $info = { deleted => 0 };

$list->map( sub {

	my( $session, $ds, $eprint, $info ) = @_;

	my @docs = $eprint->get_all_documents;

	foreach my $doc ( $eprint->get_all_documents )
	{
                my @covers = ($doc->get_related_objects( EPrints::Utils::make_relation( "hasCoversheetVersion" ) ),
                		$doc->get_related_objects( EPrints::Utils::make_relation( "hasCoversheetVersionOf" ) )
		);

		$eprint->set_under_construction( 1 );
		foreach my $cover (@covers)
		{
			$doc->remove_object_relations( $cover );
			$cover->remove();
			$info->{deleted}++;
		}
		$doc->commit;
		$eprint->set_under_construction( 0 );
	}
}, $info );

print "\nDeleted ".$info->{deleted}." cover(s)";

$session->terminate;
exit( 1 );


