#------------------------------------------------------------
# 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;
