feat: implement payout system database schema and models

This commit is contained in:
kbe
2025-09-16 23:52:26 +02:00
parent e5ed1a34dd
commit 0399761fb3
23 changed files with 421 additions and 5 deletions

View File

@@ -52,6 +52,8 @@ class DeviseCreateUsers < ActiveRecord::Migration[8.0]
# Add onboarding check on user model
t.boolean :onboarding_completed, default: false, null: false
# add_column :users, :stripe_connected_account_id, :string
t.timestamps null: false
end

View File

@@ -0,0 +1,16 @@
class CreateEarnings < ActiveRecord::Migration[8.0]
def change
create_table :earnings do |t|
t.integer :amount_cents
t.integer :fee_cents
t.integer :status
t.string :stripe_payout_id
t.references :event, null: false, foreign_key: false, index: true
t.references :user, null: false, foreign_key: false, index: true
t.references :order, null: false, foreign_key: false, index: true
t.timestamps
end
end
end

View File

@@ -0,0 +1,6 @@
class AddPayoutFieldsToEvents < ActiveRecord::Migration[8.0]
def change
add_column :events, :payout_requested_at, :datetime
add_column :events, :payout_status, :integer
end
end

View File

@@ -0,0 +1,5 @@
class AddNetAmountToEarnings < ActiveRecord::Migration[8.0]
def change
add_column :earnings, :net_amount_cents, :integer
end
end

View File

@@ -0,0 +1,6 @@
class AddIndexToStripeConnectedAccountIdOnUsers < ActiveRecord::Migration[8.0]
def change
add_column :stripe_connected_account_id_on_users, :stripe_connected_account_id, :string
add_index :stripe_connected_account_id_on_users, :stripe_connected_account_id
end
end

View File

@@ -0,0 +1,11 @@
class UpdatePayoutStatusOnEvents < ActiveRecord::Migration[8.0]
def up
change_column_default :events, :payout_status, from: nil, to: 0
add_index :events, :payout_status
end
def down
change_column_default :events, :payout_status, from: 0, to: nil
remove_index :events, :payout_status
end
end