#!/usr/bin/perl
use strict;
use warnings;

use Digest::MD5 qw(md5 md5_hex md5_base64);
use MIME::Parser;
use MIME::Entity;
use MIME::Body;
use Getopt::Long;


use lib qw(Core);
use lib qw(Classes);

use DomainsManager;
use Logger;
use LocalConfiguration;
use Email;

my $SCRIPTNAME = 'create_domains.pl';

my $subject = "REPORT from Create Domains Script";
my $body = '';
my $damains_list = '';
#my $logger = new Logger();


my $DATA_TARGETS_DIR = "/data/CASP9/TARGETS/TR";

my $DATA_MODELS_DIR = "/data/CASP9/predictions/tarballs_all/TR";

my $list = 'conf/tr_list';

open (LIST, $list) || die "Cannot open input file $list: $!";
 while(my $line = <LIST>) {
 	chomp($line);
 	if ($line =~ /^#/){next;}
	if($line =~ /^(\S+)\s+(\S+)/) { 
		my $TARGET = $1;
		my $target = $1;		
		my $domain = 0;
		my $range = $2;
		
		if ($target =~ /^(\S+)-D(\S+)/) { 
			$target = $1;
			$domain = $2;
		}



	my $d_m = new DomainsManager();
# # # 
# # # my $parameters = {'field' => 'd.date'};
# # # my @domains = $d_m->get_all_domains($parameters);
# # # 
# # # for (my $i = 0; $i < scalar(@domains); $i++) {
	
	if(!(-e sprintf("%s/%s-D%s.pdb", $DATA_TARGETS_DIR, $target, $domain))) {
		my $tmp_msg =  $d_m->split_tr_targets_to_domains($target, $domain, $range, $DATA_TARGETS_DIR);
		if($tmp_msg ne '') {
			$body .= "\n TARGET: ". $target ."\n";	
			$body .= $tmp_msg;
		}
	}

	if(!(-e sprintf("%s/%s-D%s", $DATA_MODELS_DIR, $target, $domain))) {
		my $tmp_msg = $d_m->split_tr_models_to_domains($target, $domain, $range, $DATA_MODELS_DIR);
		if($tmp_msg ne '') {
			$body .= "\n TARGET: ". $target ."\n";
			$body .= $tmp_msg;
		}
 	}
	$damains_list .= sprintf("TARGET: %s DOMAIN: %s RANGE: %s \n" , $target, $domain, $range );
}
}

if ($body eq '') {
	$body .= "No new domains were found. \n";
}
$body.= "\n\nAvailable domains list:\n";
$body.= $damains_list;

print "BODY:" . $body . "\n";

#Email::send_email('okrysko@ucdavis.edu', 'casp@predictioncenter.org', 'okrysko@ucdavis.edu', 'okrysko@ucdavis.edu', $subject, $body);

exit(0);
