#!/usr/bin/perl

use strict;
use warnings;

use lib '/app/tools/common/lib';
use Common::Session;
use Common::Amazon::SQS::OrchardTransferEvents;

my $dbx = Common::Session::getdbx('admindb');

eval {
    my $sqs = Common::Amazon::SQS::OrchardTransferEvents->new;
    while ( my $messages = $sqs->get_messages ) {
        foreach my $message ( @{$messages} ) {
            my $data = $sqs->parse_message($message);
            if ( defined $data ) {
                my $rec;
                foreach my $row ( @{$data} ) {
                    $rec = $dbx->resultset('Report::SqsOrchardTransferEvent')->update_or_new( $row, { 'key' => 'uidx_filename' } );
                    if ( $rec->in_storage ) {
                        $rec->updated_at(Common::Session::mysql_now);
                        $rec->update;
                    } else {
                        $rec->created_at(Common::Session::mysql_now);
                        $rec->insert;
                    }
                }
                if ( defined $rec ) {
                    $sqs->delete_message($message);
                }
            } else {
                logMessage( 'error', 'message can not be parsed' );
                $sqs->delete_message($message);
            }
        }
		sleep 3;
    }
};
if ($@) {
    my $err;
}
