From 1aedf92bbdbe72c9e91a415a7f5f0abee2e6ef94 Mon Sep 17 00:00:00 2001 From: Ryan Vasios Date: Tue, 6 Jan 2026 21:11:04 -0500 Subject: [PATCH 1/3] Add payments migration --- .../20260106225822_add_payments_table.rb | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 db/migrate/20260106225822_add_payments_table.rb diff --git a/db/migrate/20260106225822_add_payments_table.rb b/db/migrate/20260106225822_add_payments_table.rb new file mode 100644 index 000000000..b821c975b --- /dev/null +++ b/db/migrate/20260106225822_add_payments_table.rb @@ -0,0 +1,29 @@ +class AddPaymentsTable < ActiveRecord::Migration[8.1] + def change + create_table :payments do |t| + t.references :payer, polymorphic: true, null: false + + t.references :payable, polymorphic: true, null: false + + t.integer :amount_cents, null: false + t.string :currency, null: false, default: "usd" + + t.string :stripe_payment_intent_id, null: false + t.string :stripe_charge_id + + t.string :status, null: false + t.string :failure_code + t.string :failure_message + + t.json :stripe_metadata + + t.timestamps + end + + add_index :payments, :stripe_payment_intent_id, unique: true + add_index :payments, :stripe_charge_id + add_index :payments, [:payer_type, :payer_id] + add_index :payments, [:payable_type, :payable_id] + add_index :payments, [:payable_type, :payable_id, :status] + end +end From 053c2ed816bb41bee4e21b67bf5aa84421362f7d Mon Sep 17 00:00:00 2001 From: Ryan Vasios Date: Tue, 6 Jan 2026 21:20:50 -0500 Subject: [PATCH 2/3] Update schema --- db/schema.rb | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/db/schema.rb b/db/schema.rb index 728c6960e..4283eef4d 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.1].define(version: 2026_01_03_133222) do +ActiveRecord::Schema[8.1].define(version: 2026_01_06_225822) do create_table "action_text_rich_texts", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.text "body", size: :long t.datetime "created_at", null: false @@ -447,6 +447,30 @@ t.index ["noticeable_type", "noticeable_id"], name: "index_notifications_on_noticeable_type_and_noticeable_id" end + create_table "payments", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| + t.integer "amount_cents", null: false + t.datetime "created_at", null: false + t.string "currency", default: "usd", null: false + t.string "failure_code" + t.string "failure_message" + t.bigint "payable_id", null: false + t.string "payable_type", null: false + t.bigint "payer_id", null: false + t.string "payer_type", null: false + t.string "status", null: false + t.string "stripe_charge_id" + t.json "stripe_metadata" + t.string "stripe_payment_intent_id", null: false + t.datetime "updated_at", null: false + t.index ["payable_type", "payable_id", "status"], name: "index_payments_on_payable_type_and_payable_id_and_status" + t.index ["payable_type", "payable_id"], name: "index_payments_on_payable" + t.index ["payable_type", "payable_id"], name: "index_payments_on_payable_type_and_payable_id" + t.index ["payer_type", "payer_id"], name: "index_payments_on_payer" + t.index ["payer_type", "payer_id"], name: "index_payments_on_payer_type_and_payer_id" + t.index ["stripe_charge_id"], name: "index_payments_on_stripe_charge_id" + t.index ["stripe_payment_intent_id"], name: "index_payments_on_stripe_payment_intent_id", unique: true + end + create_table "permissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.datetime "created_at", precision: nil, null: false t.integer "legacy_id" From f30e08aa1e0ecf5d91bef241d540aadc3a11af2b Mon Sep 17 00:00:00 2001 From: Ryan Vasios Date: Wed, 7 Jan 2026 17:08:24 -0500 Subject: [PATCH 3/3] Fix rubocop index errors --- db/migrate/20260106225822_add_payments_table.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/db/migrate/20260106225822_add_payments_table.rb b/db/migrate/20260106225822_add_payments_table.rb index b821c975b..88ae97ece 100644 --- a/db/migrate/20260106225822_add_payments_table.rb +++ b/db/migrate/20260106225822_add_payments_table.rb @@ -22,8 +22,8 @@ def change add_index :payments, :stripe_payment_intent_id, unique: true add_index :payments, :stripe_charge_id - add_index :payments, [:payer_type, :payer_id] - add_index :payments, [:payable_type, :payable_id] - add_index :payments, [:payable_type, :payable_id, :status] + add_index :payments, [ :payer_type, :payer_id ] + add_index :payments, [ :payable_type, :payable_id ] + add_index :payments, [ :payable_type, :payable_id, :status ] end end