# Permite múltiplos pilares por entrega (ex.: Normal + Bônus + Retirada na mesma
# entrega). Antes a unicidade era [consolidacao_id, tracking_id] (um tipo por
# entrega); agora é [consolidacao_id, tracking_id, tipo] (um por pilar).
class AllowMultipleTiposPerEntrega < ActiveRecord::Migration[7.1]
  def up
    if index_name_exists?(:consolidacao_entregas, 'idx_consolidacao_entrega_unique')
      remove_index :consolidacao_entregas, name: 'idx_consolidacao_entrega_unique'
    end
    unless index_name_exists?(:consolidacao_entregas, 'idx_consolidacao_entrega_tipo_unique')
      add_index :consolidacao_entregas, %i[consolidacao_id tracking_id tipo],
                unique: true, name: 'idx_consolidacao_entrega_tipo_unique'
    end
  end

  def down
    if index_name_exists?(:consolidacao_entregas, 'idx_consolidacao_entrega_tipo_unique')
      remove_index :consolidacao_entregas, name: 'idx_consolidacao_entrega_tipo_unique'
    end
    unless index_name_exists?(:consolidacao_entregas, 'idx_consolidacao_entrega_unique')
      add_index :consolidacao_entregas, %i[consolidacao_id tracking_id],
                unique: true, name: 'idx_consolidacao_entrega_unique'
    end
  end
end
