#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------
package RPS::Catalog::SearchResults::Albums;

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

use lib '/app/tools/rps/lib';
use RPS::DB::Item::Album;
use RPS::DB::Item::AlbumContract;
use RPS::Catalog::Album;

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

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

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

    my $contractID = $args{contractID};
    my $artistID   = $args{artistID};
    my $query      = $args{query};
    $self->{Album} = [];

    my $albumCollection;
    if ($query) {
        $albumCollection = RPS::DB::Item::Album->SearchTitleAndCatalogNumber(
            searchTerm => $args{query},
            limit      => $args{limit},
            contractID => $args{contractID}
        );

    } elsif ($contractID) {
        $albumCollection = RPS::DB::Item::AlbumContract::GetByContractID($contractID);

    } elsif ($artistID) {
        $albumCollection = RPS::DB::Item::Album->GetByArtistID($artistID);
    } else {
        $albumCollection = RPS::DB::Item::Album->GetAll();
    }

    while ( $albumCollection && $albumCollection->hasNext() ) {
        my $albumObj = $albumCollection->next();
        push @{ $self->{Album} }, RPS::Catalog::Album->new( albumID => $albumObj->album_id, loadSubs => 0 );
    }

    return $self;
}

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

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

    return $self->{Album};
}

1;
