package File::File;

use strict;

#use warnings;
use Carp;
use Data::Dumper;

use lib '/app/tools/data_classes/lib';
use Client::Service;
use Client::Client;
use File::Sale;

use lib '/app/tools/common/lib';
use Common::Assert;
use Common::RSDB;
use Common::Consts;
use Common::RSMath qw(round);
use Common::RSApp;
use Common::Client;
use Common::Locale;

#use RSApache::Command;

use constant FILETYPEID_NORMAL         => 0;
use constant FILETYPEID_LICENSE_INCOME => 1;

use constant FILETYPE_EXCEL          => 1;
use constant FILETYPE_TABSEP         => 2;
use constant FILETYPE_PIPESEP        => 3;
use constant FILETYPE_COMMASEP       => 4;
use constant FILETYPE_LICENSE_INCOME => 5;

use constant STATUS_NEW        => 1;
use constant STATUS_PROCESSING => 2;
use constant STATUS_INVALID    => 3;
use constant STATUS_OPEN       => 4;
use constant STATUS_CLOSED     => 5;
use constant STATUS_IN_QUEUE   => 6;
use constant STATUS_ON_HOLD    => 7;

use lib '/app/tools/data_classes/lib';
use Item;
use base 'Item';

# --------------------------------
# Constructor
# --------------------------------
# JPK - I'd like to restructure this, and move the SUPER invocation logic into _init().
#
sub new {
    my $class = shift;
    my %args  = @_;

    my $self = $class->SUPER::new(@_);

    $self->_init(%args);

    return $self;
}

sub _init {
    my ( $self, %args ) = @_;
    assert( 0, 'override this' );
}

###
1;    # Play nicely.
###
