class UnreadMigration < ActiveRecord::Migration[6.0]
  def self.up
    create_table ReadMark, force: true, options: create_options do |t|
      t.references :readable, polymorphic: { null: false }
      t.references :reader,   polymorphic: { null: false }
      t.datetime :timestamp, null: false
      t.timestamps
    end

    add_index ReadMark, %i[reader_id reader_type readable_type readable_id], name: "read_marks_reader_readable_index", unique: true
  end

  def self.down
    drop_table ReadMark
  end

  def self.create_options
    options = ""
    if defined?(ActiveRecord::ConnectionAdapters::Mysql2Adapter) \
      && ActiveRecord::Base.connection.instance_of?(ActiveRecord::ConnectionAdapters::Mysql2Adapter)
      options = "DEFAULT CHARSET=latin1"
    end
    options
  end
end