#---------------------------------------------------------------
# Copyright (C) 2009 RoyaltyShare, Inc.      All Rights Reserved
#---------------------------------------------------------------
package Support::Reports::RoyaltyRunStatus;

use strict;
use warnings;
use Carp;

use lib '/app/tools/common/lib';
use Common::Assert;

use Common::FormObject;
use base 'Support::MultiClientReport';

sub _init {
    my $self = shift;
    my %args = @_;

    $self->{_runType}    = $args{run_type};
    $self->{_noActivity} = $args{no_activity};

    return $self->SUPER::_init(@_);
}

sub runType { shift->{_runType} }

sub databaseClass {
    my $self = shift;

    assert( $self->runType, "Run type required" );

    if ( $self->runType eq 'artist' ) {
        return 'RPS::DB::Item::ArtistRoyaltyRun';
    } elsif ( $self->runType eq 'label' ) {
        return 'RPS::DB::Item::LabelRoyaltyRun';
    } elsif ( $self->runType eq 'mechanical' ) {
        return 'RPS::DB::Item::MechanicalRun';
    } elsif ( $self->runType eq 'ca_mechanical' ) {
        return 'RPS::DB::Item::CAMechanicalRun';
    } elsif ( $self->runType eq 'uk_mechanical' ) {
        return 'RPS::DB::Item::UKMechanicalRun';
    } else {
        die "Unknown run type";
    }
}

sub databaseMethod {
    my $self = shift;
    return $self->{_noActivity} ? 'SearchNotModified' : 'SearchLastModified';
}

sub selectFields { }

1;
