Aggiunge abbonamenti omaggio admin per sponsor e promozioni.

Gli admin possono concedere o revocare Premium Light/Full senza Stripe;
il piano omaggio ha priorità sui webhook e la società vede un messaggio dedicato.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-02 22:26:19 +02:00
parent 566104aff4
commit 82ff1972a0
24 changed files with 388 additions and 7 deletions

View File

@@ -0,0 +1,10 @@
class AddAdminCompedToSubscriptions < ActiveRecord::Migration[7.2]
def change
change_table :subscriptions, bulk: true do |t|
t.boolean :admin_comped, null: false, default: false
t.string :admin_comped_reason
t.datetime :admin_comped_at
t.references :admin_comped_by, type: :uuid, foreign_key: { to_table: :admin_accounts }
end
end
end

8
backend/db/schema.rb generated
View File

@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.2].define(version: 2026_06_02_120000) do
ActiveRecord::Schema[7.2].define(version: 2026_06_03_120000) do
# These are extensions that must be enabled in order to support this database
enable_extension "pgcrypto"
enable_extension "plpgsql"
@@ -253,6 +253,11 @@ ActiveRecord::Schema[7.2].define(version: 2026_06_02_120000) do
t.uuid "pending_plan_id"
t.string "pending_billing_interval"
t.string "stripe_schedule_id"
t.boolean "admin_comped", default: false, null: false
t.string "admin_comped_reason"
t.datetime "admin_comped_at"
t.uuid "admin_comped_by_id"
t.index ["admin_comped_by_id"], name: "index_subscriptions_on_admin_comped_by_id"
t.index ["club_id"], name: "index_subscriptions_on_club_id", unique: true
t.index ["pending_plan_id"], name: "index_subscriptions_on_pending_plan_id"
t.index ["plan_id"], name: "index_subscriptions_on_plan_id"
@@ -355,6 +360,7 @@ ActiveRecord::Schema[7.2].define(version: 2026_06_02_120000) do
add_foreign_key "stream_events", "stream_sessions"
add_foreign_key "stream_sessions", "matches"
add_foreign_key "stream_sessions", "users"
add_foreign_key "subscriptions", "admin_accounts", column: "admin_comped_by_id"
add_foreign_key "subscriptions", "clubs"
add_foreign_key "subscriptions", "plans"
add_foreign_key "subscriptions", "plans", column: "pending_plan_id"