package BookPub::RDAS::URL::ProductPrice::Borders;

use URI::Escape;

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

use lib '/app/tools/bookpub/lib';
use BookPub::RDAS::Request::ProductSearch::Borders;
use BookPub::Catalog::Product::Book;
use BookPub::Catalog::Book;
use BookPub::Tracker::Service;

use base 'BookPub::RDAS::URL::ProductPrice';

use constant kBaseURL => 'http://www.borders.com/online/store/TitleDetail?sku=';

sub serviceID { return BookPub::Tracker::Service::BORDERS() }

sub _ebookSearchURL    { 'http://www.borders.com/online/store/SearchResults?simple=1&type=44&keyword=' }
sub _physicalSearchURL { 'http://www.borders.com/online/store/SearchResults?keyword=%s&type=0&simple=1' }

sub _searchRequestObject {
    my $self = shift;
    return new BookPub::RDAS::Request::ProductSearch::Borders(@_);
}

# If we want to search by name on Borders they block requests with queries
# over 100 characters.
sub _searchName { }

sub _validateFromISBN {
    my $self    = shift;
    my %args    = @_;
    my $request = $args{request};
    my $product = $args{product};

    assert($request);
    assert($product);

    Log->notice(" ++ Start ISBN validation");

    return 1;
    return $request->success();
}

sub _validateFromName {
    my $self    = shift;
    my %args    = @_;
    my $request = $args{request};
    my $product = $args{product};

    assert($request);
    assert($product);

    Log->notice(" ++ Start ISBN validation");

    return 1;
    return $request->success();
}

sub _validateTitleMatch  { die }
sub _validateAuthorMatch { die }

1;
