mirror of
https://github.com/ryankazokas/turbovault-app.git
synced 2026-04-16 21:02:52 +00:00
26 lines
708 B
Ruby
26 lines
708 B
Ruby
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
|