class IgdbGame < ApplicationRecord # Associations has_many :igdb_match_suggestions has_many :games, foreign_key: :igdb_id, primary_key: :igdb_id # Validations validates :igdb_id, presence: true, uniqueness: true validates :name, presence: true # Scopes scope :popular, -> { order(match_count: :desc) } scope :recent, -> { order(last_synced_at: :desc) } # Instance methods def increment_match_count! increment!(:match_count) end def cover_image_url(size = "cover_big") return nil unless cover_url.present? # IGDB uses image IDs like "co1234" # We need to construct the full URL "https://images.igdb.com/igdb/image/upload/t_#{size}/#{cover_url}.jpg" end end