#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package Metadata::DB::Item::ContentImportDataStatus;
use strict;
use warnings;
use lib '/app/tools/common/lib';
use Common::DB::Item;
use Common::DB::ItemCollection;
use Common::Assert;

use base 'Common::DB::Item';

use constant kTable => 'content_import_data_status';
use constant kDB    => Common::DB::Item::kClientDB();

sub Search {
    my ( $class, %args ) = @_;
    my $type   = $args{type};
    my $CIDid  = $args{content_import_data_id};
    my $status = $args{status};

    assert( $CIDid, "Content Import Data ID required in search" );

    my $dbo = Common::RSApp::GetClientDB();

    my $where;

    $where = " content_import_data_id = " . $dbo->DBQuote($CIDid);
    $where .= " AND type = " . $dbo->DBQuote($type) if ($type);

    if ($status) {
        $where .= " AND status = " . $dbo->DBQuote($status);
    }

    my $sql = "SELECT content_import_data_status.* FROM " . kTable . " WHERE $where";

    Common::Log::Debug("Running Query: $sql");

    return $class->SUPER::GetAll($sql);
}

sub GetAlbumErrors {
    my ( $class, %args ) = @_;
    my $CIDid = $args{content_import_data_id};
    my $status;

    assert( $CIDid, "Content Import Data ID required in search" );

    my $contentImport = Metadata::DB::Item::ContentImportData->Lookup( content_import_data_id => $CIDid );
    my $catalog_no = $contentImport->catalog_no() if ($contentImport);

    my $dbo = Common::RSApp::GetClientDB();

    my $where;

    $where = " catalog_no = " . $dbo->DBQuote($catalog_no);
    $where .= " AND type IN ('album', 'legacy') ";

    if ($status) {
        $where .= " AND status = " . $dbo->DBQuote($status);
    }

    my $sql =
        "SELECT content_import_data_status.* FROM "
      . kTable . " "
      . "LEFT JOIN content_import_data USING (content_import_data_id) WHERE $where";

    Common::Log::Debug("Running Query: $sql");

    return $class->SUPER::GetAll($sql);
}

1;
