#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::Catalog::Asset;
use strict;
use warnings;

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

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

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

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

    return $self;
}

sub addImageAsset {
	my ($self, %args) = @_;
	
	my $product_id;
	
	if( $args{upc} ) {
	    $product_id = RPS::DB::Item::Prodcut->GetProductIDByUPC(
						    upc => $args{upc},
							product_type_id => RPS::DB::Item::Product::kProductTypeDigital );
	} elsif( $args{album_id} ) {
		$product_id = RPS::DB::Item::Product->GetDigitalAlbumProduct( $args{album_id} );
	}
	
	my $identifier = $args{filename};
	$identifier =~ s/(.*)\..*$/$1/;
	
	
	my $asset = RPS::DB::Item::Asset->Lookup( identifier => $identifier, asset_type_id => RPS::DB::Item::Asset::kImageType);
    if( ! $asset ) {
        $asset = RPS::DB::Item::Asset->Create( identifier    => $identifier,
		  									   asset_type_id => RPS::DB::Item::Asset::kImageType );
        $asset->save();
    } else {
        RPS::DB::Item::Asset::DeleteAssetFiles( asset_id => $asset->asset_id );
    }
	
	# Add the original asset file
    my $asset_file = RPS::DB::Item::AssetFile->Create(
                        filename => $args{filename},
						asset_file_type_id => RPS::DB::Item::AssetFile::kAssetFileTypeOriginial,
                        asset_id => $asset->asset_id() );
	$asset_file->save();
    
	# Add the thumbnail asset file
    $asset_file = RPS::DB::Item::AssetFile->Create(
                        filename => $identifier . "-" . "Th.jpg",
						asset_file_type_id => RPS::DB::Item::AssetFile::kAssetFileTypeThumbnail,
                        asset_id => $asset->asset_id() );
	$asset_file->save();
	
	# Add the large asset file
    $asset_file = RPS::DB::Item::AssetFile->Create(
                        filename => $identifier . "-" . "L.jpg",
						asset_file_type_id => RPS::DB::Item::AssetFile::kAssetFileTypeLarge,
                        asset_id => $asset->asset_id() );
	$asset_file->save();
	
	# Add the distribution asset file
    $asset_file = RPS::DB::Item::AssetFile->Create(
                        filename => $identifier . "-" . "D.tif",
						asset_file_type_id => RPS::DB::Item::AssetFile::kAssetFileTypeDistribution,
                        asset_id => $asset->asset_id() );
	$asset_file->save();
	
	return unless( $product_id );
}



1;
