class <%= migration_class_name %> < ActiveRecord::Migration<%= migration_version %>

def change
  create_table :kafka_messages, force: true do |t|
    t.string :topic, null: false
    t.binary :message, limit: 10.megabytes
    t.binary :key
    t.string :partition_key
    t.timestamps
  end

  add_index :kafka_messages, [:topic, :id]

  create_table :kafka_topic_info, force: true do |t| # rubocop:disable Rails/CreateTableWithTimestamps
    t.string :topic, null: false
    t.string :locked_by
    t.datetime :locked_at
    t.boolean :error, null: false, default: false
    t.integer :retries, null: false, default: 0
    t.datetime :last_processed_at
  end
  add_index :kafka_topic_info, :topic, unique: true
  add_index :kafka_topic_info, [:locked_by, :error]
  add_index :kafka_topic_info, :locked_at
end

end