Making a shader receive light

I have this shader called Curved and it seems to be some kind of unlit material (I have no idea about shaders). I need it to receive lights and shadows like a regular diffuse shader, is it possible?

Shader "Custom/Curved" {
  Properties {
      _MainTex ("Base (RGB)", 2D) = "white" {}
      _QOffset ("Offset", Vector) = (0,0,0,0)
      _Dist ("Distance", Float) = 100.0
  }
  SubShader {
      Tags { "RenderType"="Opaque" }
      Pass
      {
          CGPROGRAM
          #pragma vertex vert
          #pragma fragment frag
          #include "UnityCG.cginc"

          sampler2D _MainTex;
          float4 _QOffset;
          float _Dist;
          
          struct v2f {
              float4 pos : SV_POSITION;
              float4 uv : TEXCOORD0;
          };

          v2f vert (appdata_base v)
          {
              v2f o;
              float4 vPos = mul (UNITY_MATRIX_MV, v.vertex);
              float zOff = vPos.z/_Dist;
              vPos += _QOffset*zOff*zOff;
              o.pos = mul (UNITY_MATRIX_P, vPos);
              o.uv = v.texcoord;
              return o;
          }

          half4 frag (v2f i) : COLOR
          {
              half4 col = tex2D(_MainTex, i.uv.xy);
              return col;
          }
          ENDCG
      }
  }
  FallBack "Diffuse"
}

If you want your shader to work with lights and shadows, you should seriously consider converting this shader to a Surface Shader. Also, note that shaders are a complex topic, so expect to spend some time learning about how they work.