Am I doing the right thing? Should I walk away?

I was in a relationship with a guy for almost 3 years. he did hit me on one occasion in which I had slapped him and he slapped me back. Because I believe in gender equality and that no one should lay there hands on anyone I took him back. Some arguments escalated to him cursing words bitch and fuck you. At one point he called me a whore repeatedly for about a month and stopped. He never slapped or hit me in anyway again. However after taking him back after the physical altercation he repeatedly left me. 3 months before our 3rd year anniversary he kissed another girl and left the relationship. Over the break up he's said he's sorry but had also got mad and told me to kill myself
I've always known about his anger issues and I understood staying with him would bring hurt w. e he had episodes.
He went to therapy for a few months but when his parents stopped supporting it. Over the break up he's gone back to smoking drinking and picked up doing coke he said we could try again after high school graduaction.
Today was prom and he invited me last minute to his hotel party. Neither of us attended the actual prom.
i realize how much we are a drug to each other it takes more strength to stay away from him than to forgive him.
But I don't forgive him for cheating and I feel like id end up getting hurt repeatedly.
Don't get me wrong our 1st year together and the last few months before he cheated were bliss. And he seemed like he would be the one if it weren't for the cheating and what followed after.
I believe he has major depressive disorder but he did not stay long enough in therapy to find out. Am I making the right choice by telling him that I do not see us getting back together in a healthy relationship? Or am I making the wrong choice because no one is perfect and I out up with it this long and I'd be throwing away 3 years if even though (none perfect years) years that still made me happy.
I struggle with staying away from him.
Am I doing the right thing? Should I walk away?
Add Opinion