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

use strict;
use warnings;

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

use lib '/app/tools/rps/lib';
use RPS::DB::Item::Service;
use RPS::Product::DistributionService;

use lib '/app/tools/distribution/lib';
use Distribution::DB::Item::DistributionService;

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

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

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

    $self->{DistributionService} = [];
    my $serviceCollection =
      Distribution::DB::Item::DistributionService->GetAllClientServices( Common::RSApp::GetClientID(), include_non_configured => 1 );

    # !!! We require there to be a list of services.
    # !!! If there isn't at least one, then we have not set up this client correctly.
    #
    #    assert($serviceCollection->size() > 0);

    while ( $serviceCollection->hasNext() ) {
        my $serviceObj = $serviceCollection->next();
        push @{ $self->{DistributionService} }, RPS::Product::DistributionService->new( _dbItem => $serviceObj );
    }

    return $self;
}

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

    return $self->{DistributionService};
}

sub getActiveList {
    my ($self) = @_;
    my @services;

    use Data::Dumper;
    foreach ( @{ $self->{DistributionService} } ) {
        Common::Log::Debug( Dumper($_) );
        push( @services, $_ ) if ( $_->Status() && $_->Status() eq 'active' );
    }

    return \@services;
}

1;
