#------------------------------------------------------------
# Copyright (C) 2009 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------
package BookPub::Market::Command::Report::Full;
use strict;
use warnings;

use Data::Dumper;

use lib '/app/tools/bookpub/lib';
use BookPub::RDAS::Form::ProductMonitor::ProductMonitorAlertList;
use BookPub::RDAS::Form::ProductMonitor::ProductMonitorAlertTypeList;
use BookPub::RDAS::Form::ProductMonitor::ProductMonitorItem;
use BookPub::Catalog::ServiceList::AlertsOnly;
use BookPub::Catalog::Book::WithAuthor;
use BookPub::Catalog::Product::Book::WithFormat;

use base 'BookPub::Market::Command::Report';

use lib '/app/tools/common/lib';
use RSApache::Response::XSLT;

sub cmd { return 'report_full'; }

use constant kDefaultPageSize => 25;
use constant kDefaultView     => 'current';
use constant kDefaultIssue    => 'all';

use constant kCookiePageSize  => 'bookpub_market_report_page_size';
use constant kCookieServiceID => 'bookpub_market_report_page_service_id';
use constant kCookieView      => 'bookpub_market_report_view';
use constant kCookieIssue     => 'bookpub_market_report_issue';

use constant kTemplate => "/app/tools/bookpub/templates/market/report.xsl";

sub _setCookies {
    my ($self) = @_;

    Common::Preference::SetPersistentCookie( kCookieView,      $self->{xml}{Query}{view} );
    Common::Preference::SetPersistentCookie( kCookiePageSize,  $self->{xml}{Query}{pageSize} );
    Common::Preference::SetPersistentCookie( kCookieServiceID, $self->{xml}{Query}{serviceID} );
    Common::Preference::SetPersistentCookie( kCookieIssue,     $self->{xml}{Query}{issue} );

    Common::Preference::StoreCookies();
}

sub _getQueryParams {
    my ( $self, $hashRef ) = @_;

    $self->{xml}{Query}{pageSize} =
      Common::Util::returnFirstDefined( $self->getParam('pageSize'), Common::Preference::GetValue(kCookiePageSize), kDefaultPageSize );
    $self->{xml}{Query}{view} =
      Common::Util::returnFirstDefined( $self->getParam('view'), Common::Preference::GetValue(kCookieView), kDefaultView );
    $self->{xml}{Query}{issue} =
      Common::Util::returnFirstDefined( $self->getParam('issue'), Common::Preference::GetValue(kCookieIssue), kDefaultIssue );
    $self->{xml}{Query}{serviceID} =
      Common::Util::returnFirstDefined( $self->getParam('serviceID'), Common::Preference::GetValue(kCookieServiceID), undef );
    $self->{xml}{Query}{page} = Common::Util::returnFirstDefined( $self->getParam('page'), 1 );
}

1;
