#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::ServiceCategory;

use strict;
use warnings;

use lib '/app/tools/rps/lib';
use RPS::DB::Item::ClientOptions;

use Common::FormObject;
use base 'Common::FormObject';

sub _init {
    my ( $self, %args ) = @_;

    $self->SUPER::_init(%args);

    my %properties;
    if ( $args{_dbItem} ) {
        $self->_propertiesFromDBItem( \%properties, $args{_dbItem} );
    } else {
        $self->_propertiesFromDefaults( \%properties );
    }

    $self->_initProperties( \%properties );

    return $self;
}

sub _propertiesFromDBItem {
    my ( $self, $hrProperties, $dbItem ) = @_;

    $hrProperties->{category_code}  = $dbItem->category_code;
    $hrProperties->{desc}           = $dbItem->desc;
}

sub _initProperties {
    my ( $self, $props ) = @_;

    $self->{CategoryCode} = Common::FormObject::Scalar->new( value => $props->{category_code},  readOnly => 1 );
    $self->{Desc}         = Common::FormObject::Scalar->new( value => $props->{desc},           readOnly => 1 );

    # Get the artist run options, if any
    my $options = RPS::DB::Item::ClientOptions->Lookup( name => 'artist_category_service' );
    my $isSet   = ( $options && $options->value =~ /\Q$props->{category_code}/i ) ? 1 : 0;

    $self->{ExcludeArtist}  = Common::FormObject::Scalar::Boolean->new( value => $isSet );
}

sub _propertiesFromDefaults {
    my ( $self, $hrProperties ) = @_;
}

sub save {
    my ($self) = @_;
    # We don't save anything here; all saving is done through ServiceCategoryList
}

1;
