package Stats::Redshift::SaleStage;

use strict;
use warnings;

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

use lib '/app/tools/stats/lib';
use Stats::Redshift::SaleStage::RPS;
use Stats::Redshift::SaleStage::DTMV;

use base 'Stats::Redshift';

__PACKAGE__->mk_accessors(qw/loader/);

sub _init {
    my $self = shift;
	$self->SUPER::_init();
    my $loader;
    if ( ref $self eq 'Stats::Redshift::SaleStage' ) {
        if ( $self->type eq 'rps' ) {
            $loader = Stats::Redshift::SaleStage::RPS->new('rps');
        } else {
            $loader = Stats::Redshift::SaleStage::DTMV->new('dtmv');
        }
        $self->loader($loader);
    }
    $self;
}

sub refresh_sale_stage {
    my $self = shift;

	my $schema = $self->redshift_schema;
	logMessage('info',"Refresh ${schema}.sale_stage");

    $self->truncate('sale_stage');

    my $ins = 'INSERT INTO ' . $self->redshift_schema . '.sale_stage';
    $ins .= $self->loader->redshift_insert;
    $self->dosql($ins);

}

1;
