redmi – How to understand the confusing naming conventions of modern Android companies and prevent getting ripped off?

Here’s the reason for this post and my annoyance –

There is a phone called Redmi 9 whose codename is Lancelot and there is a decent amount of community support for it, TWRP is available as well as some ROMS.

Seeing this I was impressed and ordered it off of Amazon. It clearly said Redmi 9 and the same model with the same price is available on Redmi’s official site as well.

However when I got the phone, enabled USB debugging connected it to my pc and ran adb shell, the name I got in the prompt was cattail and not lancelot!!!

And cattail has next to no community support for rooting and stuff, no TWRP either.

Googling cattail vs lancelot gives a bunch of results and there is a difference in camera alignment in the two phones.

Further while Lancelot is a decent enough phone in itself, cattail is absolutely disappointing. Searching for lancelot on amazon or redmi shows up nothing and when I search “Redmi 9 code name” in any search engine, I got lancelot!! I bought the Redmi 9 believing it was something it was not.

Is Redmi and Amazon straight up lying or am I missing something here? Where is the guide to understanding naming conventions of smartphones? How do I and everyone else who uses Android prevent companies from ripping me/us off?