require 'permalink'

class Publication < ActiveRecord::Base
  set_table_name 'publications'
  
  belongs_to  :author, :foreign_key => 'author_id'
  belongs_to  :publication_image, :class_name => 'PublicationImage', :foreign_key => 'image'
  has_many    :publication_versions, :foreign_key => 'publications_id'
  
  def link(zpplink = nil)
		if zpplink.blank?
	    "http://www.zlotemysli.pl/publication/show/#{self.id}/#{Iconv.iconv('utf-8', 'latin2', self.title).join.permalink}.html"
		else
	    "http://www.zlotemysli.pl/#{zpplink}/publication/show/#{self.id}/#{Iconv.iconv('utf-8', 'latin2', self.title).join.permalink}.html"
		end
  end
  
  def cart_link(zpplink = nil)
		if zpplink.blank?
	    "http://www.zlotemysli.pl/cart/addVersion/#{find_printed_version.id}"
		else
	    "http://www.zlotemysli.pl/#{zpplink}/cart/addVersion/#{find_printed_version.id}"
		end
  end
  
  def lowest_price
    begin self.publication_versions.map(&:current_price).min rescue nil end
  end
  
  private
    def find_printed_version
      self.publication_versions.reject{ |pv| pv unless 2 == pv.version }.first || self.publication_versions.first
    end
end
