package Common::Amazon::SQS::DBBackupEvents;

use strict;
use warnings;

use File::Basename;

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

sub qname { 'DB-Backup-Events' }

sub parse_message {
    my $self    = shift;
    my $message = shift;

    my $href = $self->message_ref($message);
    my $data;
    foreach my $rec ( @{ $href->{'Records'} } ) {
        my $file = $rec->{'s3'}->{'object'};
        my $path = File::Basename::dirname( $file->{'key'} );
        my $base = File::Basename::basename( $file->{'key'} );

        push @{$data},
          {
            'bucket_name'  => $rec->{'s3'}->{'bucket'}->{'name'},
            'bucket_owner' => $rec->{'s3'}->{'bucket'}->{'ownerIdentity'}->{'principalId'},
            'bucket_arn'   => $rec->{'s3'}->{'bucket'}->{'arn'},
            'filepath'     => $path,
            'filename'     => $base,
            'filesize'     => $file->{'size'},
            'fileseq'      => $file->{'sequencer'},
            'md5sum'       => $file->{'eTag'},
            'event_type'   => $rec->{'eventName'},
            'event_time'   => $self->parse_timestamp( $rec->{'eventTime'} ),
            'event_user'   => $rec->{'userIdentity'}->{'principalId'},
          };
    }
    $data;
}

1;
