class Tapioca::Dsl::Compilers::IdentityCache

def create_aliased_fetch_by_methods(field, klass)

def create_aliased_fetch_by_methods(field, klass)
  type, _ = Helpers::ActiveRecordColumnTypeHelper.new(
    constant,
    column_type_option: Helpers::ActiveRecordColumnTypeHelper::ColumnTypeOption::Nilable,
  ).type_for(field.alias_name.to_s)
  multi_type = type.delete_prefix("T.nilable(").delete_suffix(")").delete_prefix("::")
  suffix = field.send(:fetch_method_suffix)
  parameters = field.key_fields.map do |arg|
    create_param(arg.to_s, type: "T.untyped")
  end
  klass.create_method(
    "fetch_#{suffix}",
    class_method: true,
    parameters: parameters,
    return_type: field.unique ? type : COLLECTION_TYPE.call(type),
  )
  klass.create_method(
    "fetch_multi_#{suffix}",
    class_method: true,
    parameters: [create_param("keys", type: "T::Enumerable[T.untyped]")],
    return_type: COLLECTION_TYPE.call(multi_type),
  )
end