class CreateAssistantsAndScopes < ActiveRecord::Migration[7.0]
  def change
    create_table :assistants do |t|
      t.string :name, null: false
      t.string :index_name, null: false
      t.timestamps
    end

    add_index :assistants, :index_name, unique: true

    # Create the Polymorphic Join Table
    create_table :assistant_scopes do |t|
      t.references :assistant, null: false, foreign_key: true
      t.references :scopable, polymorphic: true, null: false
      t.timestamps
    end

    add_index :assistant_scopes, %i[assistant_id scopable_type scopable_id], unique: true, name: "index_assistant_scopes_uniqueness"
  end
end
