package BookPub::RDAS::URL::ProductPrice::BarnesNoble;

use URI::Escape;

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

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

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

use constant kBaseURL => 'http://search.barnesandnoble.com/books/product.aspx?EAN=';

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

sub _ebookSearchURL    { 'http://productsearch.barnesandnoble.com/search/results.aspx?store=EBOOK&WRD=' }
sub _physicalSearchURL { 'http://productsearch.barnesandnoble.com/search/results.aspx?WRD=' }

sub _searchName { }

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

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

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

    if ( $product->isEBook() ) {
        return $self->SUPER::_validateFromISBN(@_);
    }

    return 1;
}

1;
