class ReportagePhoto < ActiveRecord::Base

  belongs_to :image, primary_key: :ms_image_id, foreign_key: :photo_ms_id
  belongs_to :reportage
  validates :reportage_id, :photo_ms_id, presence: true

  after_destroy do
    unless self.reportage.nil?
      self.reportage.decrement!(:nb_photos,1) unless self.reportage.nb_photos <= 0
      if self.reportage.prem_photo == self.photo_ms_id && self.reportage.reportage_photos.count > 0
        next_pic = self.reportage.reportage_photos.order(:rang).first
        if next_pic.nil?
          self.reportage.destroy
        else
          next_pic_img = Image.find_by(ms_image_id: next_pic.photo_ms_id)
          if next_pic_img.nil?
            next_pic.destroy
          else
            self.reportage.update(prem_photo: next_pic_img.ms_image_id, string_key: next_pic_img.provider.string_key)
          end
        end
      end
    end
  end

  after_create do
    self.reportage.increment!(:nb_photos,1)
    self.update(rang: self.reportage.nb_photos - 1)
  end
end