#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::Payee::RecentlyViewedPayeeList;

use strict;
use warnings;
use Data::Dumper;

use lib '/app/tools/rps/lib';
use RPS::ArtistPayee::ArtistPayeeSimple;
use RPS::LabelPayee::LabelPayeeSimple;
use RPS::Publisher::US::PublisherSimple;
use RPS::Publisher::CA::PublisherSimple;

use Common::FormObject;
use RPS::CommandLog;

#use base 'Common::XMLObject';
use base 'RPS::CommandLog';

sub _createLogItemFromDBItem {
    my ( $self, $dbItem ) = @_;

    # First call the inherited method to get the log item
    #
    my $logItem = $self->SUPER::_createLogItemFromDBItem($dbItem);

    # Now we can put stuff inside the log item
    #
    if ( 'RPS::ArtistPayee::Command::Show' eq $logItem->CommandName() ) {
        my $obj = RPS::ArtistPayee::ArtistPayeeSimple->new( artistPayeeID => $logItem->CommandID(), loadSubs => 0 );
        $logItem->{ArtistPayee} = $obj;
    } elsif ( 'RPS::LabelPayee::Command::Show' eq $logItem->CommandName() ) {
        my $obj = RPS::LabelPayee::LabelPayeeSimple->new( labelPayeeID => $logItem->CommandID(), loadSubs => 0 );
        $logItem->{LabelPayee} = $obj;
    } elsif ( 'RPS::Publisher::Command::US::Show' eq $logItem->CommandName() ) {
        my $obj = RPS::Publisher::US::PublisherSimple->new( publisherID => $logItem->CommandID(), loadSubs => 0 );
        $logItem->{Publisher} = $obj;
    } elsif ( 'RPS::Publisher::Command::CA::Show' eq $logItem->CommandName() ) {
        my $obj = RPS::Publisher::CA::PublisherSimple->new( publisherID => $logItem->CommandID(), loadSubs => 0 );
        $logItem->{CAPublisher} = $obj;
    } else {
        assert( 0, "Unexpected log item encountered: " . Dumper($logItem) );
    }

    return $logItem;
}

sub _init {
    my ( $self, %args ) = @_;

    $args{command} = [
        'RPS::ArtistPayee::Command::Show',   'RPS::LabelPayee::Command::Show',
        'RPS::Publisher::Command::US::Show', 'RPS::Publisher::Command::CA::Show'
    ];
    $args{most_recent} = 1;

    return $self->SUPER::_init(%args);
}

1;

