module CanvasSync::Concerns::LegacyColumns

def inherited(subclass)

def inherited(subclass)
  super.tap do
    legacy_column_apply(subclass)
  end
end

def legacy_column_apply(cls)

def legacy_column_apply(cls)
  return if cls.abstract_class
  cid_column = "canvas_#{cls.name.downcase}_id"
  column_names = cls.columns.map(&:name)
  return if column_names.include?('canvas_id') && column_names.include?(cid_column)
  if column_names.include?('canvas_id')
    cls.alias_attribute(cid_column.to_sym, :canvas_id)
  elsif column_names.include?(cid_column)
    cls.alias_attribute(:canvas_id, cid_column.to_sym)
  end
rescue ActiveRecord::StatementInvalid
end