namespace :igdb do desc "Manually run IGDB sync job" task sync: :environment do puts "šŸ”„ Starting IGDB sync..." IgdbSyncJob.perform_now puts "āœ… IGDB sync completed!" end desc "Check IGDB sync status" task status: :environment do puts "\nšŸ“Š IGDB Sync Status" puts "=" * 50 enabled_users = User.where(igdb_sync_enabled: true) puts "Users with sync enabled: #{enabled_users.count}" enabled_users.each do |user| unmatched = user.games.igdb_unmatched.count matched = user.games.igdb_matched.count pending = user.igdb_match_suggestions.status_pending.count puts "\n šŸ‘¤ #{user.username}" puts " - Matched: #{matched}" puts " - Unmatched: #{unmatched}" puts " - Pending review: #{pending}" if user.igdb_last_synced_at puts " - Last synced: #{user.igdb_last_synced_at.strftime('%Y-%m-%d %H:%M')}" end end puts "\nāš™ļø Background Job Status" puts " Job running: #{IgdbSyncJob.running? ? 'Yes' : 'No'}" puts "=" * 50 end desc "Clear IGDB sync lock (if stuck)" task clear_lock: :environment do Rails.cache.delete("igdb_sync_job:running") puts "āœ… Cleared IGDB sync lock" end end