+
<% case index %>
<% when 0 then %>
diff --git a/db/migrate/20250507204732_add_trust_level_to_users.rb b/db/migrate/20250507204732_add_trust_level_to_users.rb
new file mode 100644
index 0000000..5d3b532
--- /dev/null
+++ b/db/migrate/20250507204732_add_trust_level_to_users.rb
@@ -0,0 +1,32 @@
+class AddTrustLevelToUsers < ActiveRecord::Migration[7.1]
+ def up
+ add_column :users, :trust_level, :integer, default: 0, null: false
+
+ # Convert existing omit_from_leaderboard values
+ execute <<-SQL
+ UPDATE users#{' '}
+ SET trust_level = CASE#{' '}
+ WHEN omit_from_leaderboard = true THEN 1 -- untrusted
+ ELSE 0 -- default
+ END
+ SQL
+
+ # Remove the old column
+ remove_column :users, :omit_from_leaderboard
+ end
+
+ def down
+ add_column :users, :omit_from_leaderboard, :boolean, default: false, null: false
+
+ # Convert back
+ execute <<-SQL
+ UPDATE users#{' '}
+ SET omit_from_leaderboard = CASE#{' '}
+ WHEN trust_level = 1 THEN true -- untrusted
+ ELSE false -- default
+ END
+ SQL
+
+ remove_column :users, :trust_level
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 774a2a7..ca5498a 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema[8.0].define(version: 2025_05_07_184341) do
+ActiveRecord::Schema[8.0].define(version: 2025_05_07_204732) do
# These are extensions that must be enabled in order to support this database
enable_extension "pg_catalog.plpgsql"
@@ -309,7 +309,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_05_07_184341) do
t.string "github_username"
t.string "slack_username"
t.string "slack_neighborhood_channel"
- t.boolean "omit_from_leaderboard", default: false, null: false
+ t.integer "trust_level", default: 0, null: false
t.index ["slack_uid"], name: "index_users_on_slack_uid", unique: true
t.index ["timezone"], name: "index_users_on_timezone"
end