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

use strict;
use warnings;

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

use lib '/app/tools/metadata/lib';
use Metadata::DB::Item::ContentImport;
use Metadata::DB::Item::ContentImportData;
use Metadata::DB::Item::ContentImportDataStatus;

use lib '/app/tools/rps/lib';
use RPS::Distribution::AlbumDetail;

use base 'Common::FormObject';

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

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

	$self->{_display}     = $args{display};
	$self->{_page}        = $args{page} || 1;
	$self->{_page_size}   = $args{page_size};
	$self->{_show_all}    = $args{show_all};
    $self->{_catalog_no}  = $args{catalog_no};
    $self->{_null_catno}  = $args{null_catno};
    $self->{_colset}      = $args{colset} || 1;
    $self->{_content_import_data_id} = $args{content_import_data_id};

	$self->{Album} = $self->_getAlbumDetail();

	$self->{Display} = {
       TotalAlbums => Metadata::DB::Item::ContentImportData->GetAlbumCount( criteria => $self->{_display} ),
       ColSet      => $self->{_colset},
       PageSize    => $self->{_page_size},
       Page        => $self->{_page}
	};

    return $self;
}

sub _getAlbumDetail
{
    my $self = shift;
    my @albums;
    my $get_tracks;

    my $albums = Metadata::DB::Item::ContentImportData->GetAlbumSummary(
        limit      => $self->{_page_size},
        page       => $self->{_page},
        criteria   => $self->{_display},
        show_all   => $self->{_show_all},
        content_import_data_id => $self->{_content_import_data_id}
    );

    while ($albums->hasNext())
    {
        my $data = $albums->next();

        # Get tracks if the two catalog numbers match
        $get_tracks = $data->{catalog_no} && $self->{_catalog_no} &&
                      $data->{catalog_no} eq $self->{_catalog_no} ? 1 : undef;

        # Get tracks if the two catalog numbers are null and the null_catno flag is set
        $get_tracks = 1
            if( ! defined($data->{catalog_no}) && ! defined($self->{_catalog_no}) &&
                $self->{_null_catno} );

        push @albums, RPS::Distribution::AlbumDetail->new(
            _dbItem    => $data,
            get_tracks => $get_tracks );
    }

    return \@albums;
}



###
1;#
###
