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

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

use lib '/app/tools/rps/lib';
use RPS::DB::Item::CATrackLicense;
use RPS::DB::Item::CAMechanicalStatementTrack;


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



sub GetByMechanicalStatementIDTrackIDPublisherID
{
	my ($class, $stmtID, $trackID, $publisherID) = @_;

    assert($stmtID);
    assert($trackID);
    assert($publisherID);

	my $sql = "SELECT * FROM ca_mechanical_statement_license"
            . " WHERE ca_mechanical_statement_id=$stmtID"
            . " AND ca_track_license_id in (select ca_track_license_id from ca_track_license where track_id=$trackID and ca_publisher_id=$publisherID)";

    return $class->GetAll($sql);

}


sub GetByMechanicalStatementIDTrackID
{
	my ($class, $stmtID, $trackID) = @_;

    assert($stmtID);
    assert($trackID);

	my $sql = "SELECT * FROM ca_mechanical_statement_license WHERE ca_mechanical_statement_id=$stmtID AND ca_track_license_id in (select ca_track_license_id from ca_track_license where track_id=$trackID)";

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


sub GetByMechanicalStatementID
{
	my ($class, $id) = @_;

	my $sql = "SELECT * FROM ca_mechanical_statement_license WHERE ca_mechanical_statement_id=$id";
    return $class->GetAll($sql);
}


sub DeleteByMechanicalStatementID
{
    my ($class, $id) = @_;

	my $sql = "DELETE from ca_mechanical_statement_license WHERE ca_mechanical_statement_id=$id";
	my $dbo = Common::RSApp::GetClientDB();
    $dbo->DoCmd($sql);
}


sub LicenseCount
{
	my ($class, $licenseID) = @_;

	my $sql = "SELECT * FROM ".kTable." WHERE ca_track_license_id=$licenseID";
    return $class->GetAll($sql)->size();
}


1;
