# frozen_string_literal: true

class PostHotlinkedMedia < ActiveRecord::Base
  belongs_to :post
  belongs_to :upload
  enum status: {
         downloaded: "downloaded",
         too_large: "too_large",
         download_failed: "download_failed",
         upload_create_failed: "upload_create_failed",
       }

  def self.normalize_src(src, reset_scheme: true)
    uri = Addressable::URI.heuristic_parse(src)
    uri.normalize!
    uri.scheme = nil if reset_scheme
    uri.to_s
  rescue URI::Error, Addressable::URI::InvalidURIError
    src
  end
end

# == Schema Information
#
# Table name: post_hotlinked_media
#
#  id         :bigint           not null, primary key
#  post_id    :bigint           not null
#  url        :string           not null
#  status     :enum             not null
#  upload_id  :bigint
#  created_at :datetime         not null
#  updated_at :datetime         not null
#
# Indexes
#
#  index_post_hotlinked_media_on_post_id_and_url_md5  (post_id, md5((url)::text)) UNIQUE
#