ActiveAdmin.register WarpEngine::PlatformLink, as: "Platform Link" do
  permit_params :name, :url, :platform, :position

  menu parent: "🌀 WarpEngine", priority: 5, label: "🔗 Platform Links"

  config.sort_order = "platform_asc"

  scope :all, default: true
  scope("TIC-80")     { |s| s.where(platform: "tic80") }
  scope("Ebitengine") { |s| s.where(platform: "ebitengine") }
  scope("LOVE")       { |s| s.where(platform: "love") }
  scope("C64")        { |s| s.where(platform: "c64") }
  scope("Godot")      { |s| s.where(platform: "godot") }
  scope("Bevy")       { |s| s.where(platform: "bevy") }
  scope("Phaser")     { |s| s.where(platform: "phaser") }

  index do
    selectable_column
    id_column
    column :platform
    column :name
    column(:url) { |pl| link_to pl.url, pl.url, target: "_blank" }
    column :position
    column :created_at
    actions
  end

  filter :platform, as: :select, collection: %w[tic80 ebitengine love c64 godot bevy phaser]
  filter :name

  form do |f|
    f.inputs do
      f.input :platform, as: :select, collection: %w[tic80 ebitengine love c64 godot bevy phaser]
      f.input :name
      f.input :url
      f.input :position, as: :number, input_html: { min: 0 }
    end
    f.actions
  end

  show do
    attributes_table do
      row :id
      row :platform
      row :name
      row(:url) { |pl| link_to pl.url, pl.url, target: "_blank" }
      row :position
      row :created_at
      row :updated_at
    end
  end
end
