How do I make a 2d enemy change direction upon hitting a wall?

I’m trying to make an enemy for my 2d platformer who moves to the right until they reach an edge or a wall, then moving left and repeating the process. I’ve managed to make it so they turn when reaching an edge, but not when hitting a wall. Instead, they keep running into the wall. Here’s my code.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyPatrol : MonoBehaviour
{
    public float speed;
    public float distance;

    private bool movingRight = true;

    public Transform groundDetection;

    void Update()
    {
        transform.Translate(Vector2.right * speed * Time.deltaTime);

        RaycastHit2D groundInfo = Physics2D.Raycast(groundDetection.position, Vector2.down, distance);
        if (groundInfo.collider == false)
        {
            if (movingRight == true)
            {
                transform.eulerAngles = new Vector3(0, -180, 0);
                movingRight = false;
            }
            else
            {
                transform.eulerAngles = new Vector3(0, 0, 0);
                movingRight = true;
            }
          
        }
        private void OnCollisionEnter2D(Collision2D collision)
    if (collide.collider.gameObject.tag == "Wall")
        {
            Debug.Log("E");
            if (movingRight == true)
            {
                transform.eulerAngles = new Vector3(0, -180, 0);
                movingRight = false;
            }
            else
            {
                transform.eulerAngles = new Vector3(0, 0, 0);
                movingRight = true;
            }

        }
    }
}

[SerializeField] Transform wallDetection;
[SerializeField] LayerMask wallLayerMask;

if( movingRight==true )
{
	Vector3 origin = wallDetection.position;
	Vector3 dir = Vector2.right;
	RaycastHit2D hit = Physics2D.Raycast( origin , dir , distance , wallLayerMask );
	if( hit.collider!=null )
	{
		movingRight = false;
		Debug.DrawLine( origin , hit.point , Color.red );
	}
	else Debug.DrawLine( origin , origin + dir*distance , Color.white , 0.01f );
}
else
{
	Vector3 origin = wallDetection.position;
	Vector3 dir = -Vector2.right;
	RaycastHit2D hit = Physics2D.Raycast( origin , dir , distance , wallLayerMask );
	if( hit.collider!=null )
	{
		movingRight = true;
		Debug.DrawLine( origin , hit.point , Color.red );
	}
	else Debug.DrawLine( origin , origin + dir*distance , Color.white , 0.01f );
}