2025-09-26 18:46:29 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
|
|
class CreateFamilyInvitations < ActiveRecord::Migration[8.0]
|
|
|
|
|
def change
|
2025-09-30 12:43:26 -04:00
|
|
|
create_table :family_invitations do |t|
|
|
|
|
|
t.bigint :family_id, null: false
|
2025-09-26 18:46:29 -04:00
|
|
|
t.string :email, null: false
|
|
|
|
|
t.string :token, null: false
|
|
|
|
|
t.datetime :expires_at, null: false
|
|
|
|
|
t.bigint :invited_by_id, null: false
|
|
|
|
|
t.integer :status, null: false, default: 0 # pending
|
|
|
|
|
t.timestamps
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
add_foreign_key :family_invitations, :families, validate: false
|
|
|
|
|
add_foreign_key :family_invitations, :users, column: :invited_by_id, validate: false
|
|
|
|
|
add_index :family_invitations, :token, unique: true
|
2025-10-05 08:02:18 -04:00
|
|
|
add_index :family_invitations, %i[family_id email], name: 'index_family_invitations_on_family_id_and_email'
|
|
|
|
|
add_index :family_invitations, %i[family_id status expires_at],
|
|
|
|
|
name: 'index_family_invitations_on_family_status_expires'
|
|
|
|
|
add_index :family_invitations, %i[status expires_at],
|
|
|
|
|
name: 'index_family_invitations_on_status_and_expires_at'
|
|
|
|
|
add_index :family_invitations, %i[status updated_at],
|
|
|
|
|
name: 'index_family_invitations_on_status_and_updated_at'
|
2025-09-26 18:46:29 -04:00
|
|
|
end
|
|
|
|
|
end
|