#------------------------------------------------------------
# Copyright (C) 2009 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------
package RPS::ArtistRole;

use strict;
use warnings;

use lib '/app/tools/rps/lib';
use Common::FormObject;
use base 'Common::FormObject';

use RPS::DB::Item::ArtistRole;


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

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

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

    my $rval = $self->_initProperties(\%properties);

    return $rval;
}

sub _propertiesFromDB
{
	my ($self, $hrProperties, $id) = @_;

	my $dbItem = RPS::DB::Item::ArtistRole->Lookup(artist_role_id => $id);
	$self->_propertiesFromDBItem($hrProperties, $dbItem);
}

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

	$hrProperties->{artist_role_id}   = $dbItem->artist_role_id;
	$hrProperties->{role}             = $dbItem->role;
	$hrProperties->{display_order}    = $dbItem->display_order;
}

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

}


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

	$self->{ArtistRoleID}  = Common::FormObject::Scalar::ID->new(value => $props->{artist_role_id}, readOnly => 1);
	$self->{Role}          = Common::FormObject::Scalar::String->new(value => $props->{role}, readOnly => 1);
	$self->{DisplayOrder}  = Common::FormObject::Scalar->new(value => $props->{display_order}, readOnly => 1);

	return $self;
}



1;
