#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package Support::DB::Item::Client;
use strict;
use warnings;

use lib '/app/tools/rps/lib';

use lib '/app/tools/common/lib';
use Common::Assert;
use Common::DB::Item::ClientType;

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

use constant kTable => 'client';
use constant kDB    => Common::DB::Item::kCommonDB();

sub GetAll {
    my $class = shift;
    my $query = shift;

    my $sql = "SELECT * FROM " . kTable . " ORDER BY client_name ";

    Common::Log::Debug("SQL: $sql");
    return $class->SUPER::GetAll($sql);
}

sub Search {
    my $class = shift;
    my $query = shift;

    my $where = "";

    if ($query) {
        $where .= " WHERE " . $class->SearchSyntax( field => "client_name", value => $query );
    }

    my $sql = "SELECT * FROM " . kTable . " $where ORDER BY client_name ";

    Common::Log::Debug("SQL: $sql");
    return $class->SUPER::GetAll($sql);
}

sub SearchDistributionClients {
    my $class = shift;
    my $query = shift;

    my $where;

    $where = "WHERE type_mask & " . Common::DB::Item::ClientType::kClientTypeBitMaskDistribution;

    if ($query) {
        $where .= " AND ( " . $class->SearchSyntax( field => "client_name", value => $query ) . ") ";
    }

    my $sql = "SELECT * FROM " . kTable . " $where ORDER BY client_name ";

    Common::Log::Debug("SQL: $sql");
    return $class->SUPER::GetAll($sql);

}

sub GetAllDistributionClients {
    my $class = shift;
    my $query = shift;

    my $where;

    $where = "WHERE type_mask & " . Common::DB::Item::ClientType::kClientTypeBitMaskDistribution;

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

    Common::Log::Debug("SQL: $sql");
    return $class->SUPER::GetAll($sql);
}

1;
