#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------
package RPS::Track::TrackContractList;

use strict;
use warnings;

use lib '/app/tools/rps/lib';
use RPS::Track::TrackContract;
use RPS::Track::TrackContract;
use RPS::DB::Item::TrackContract;

use Common::FormObject;
use base 'Common::FormObject';


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

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

	my $trackID = $args{trackID};
	my $contractID = $args{artistContractID};

	my $collection;
    $self->{TrackContract} = [];

    # Note - if we know the track, then we to see the contracts.
    # And if we know the contract, we need to see the tracks.
    #
	if ($trackID)
	{
		$collection = RPS::DB::Item::TrackContract->GetByTrackID($trackID);
	}
	elsif($contractID)
	{
		$collection = RPS::DB::Item::TrackContract->GetByContractID($contractID);
	}
    else
    {
        assert(0);
    }

	while ($collection->hasNext())
	{
		my $obj = $collection->next();

		push @{$self->{TrackContract}}, $self->_createObject($obj);
	}
    return $self;
}


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

    return RPS::Track::TrackContract->new(_dbItem => $dbItem);
}




sub _listProperties
{
    return
    {
        TrackContract => 1
    };
}


sub getList
{
	my ($self) = @_;

	return $self->{TrackContract};
}


1;

