HI @Nikolas and thanks for the reply. In my code I initialized all the classes in the init.py and used string reference and everything was working fine.
Mine was the only part of the database with M2M relationships. All other services have O2O or O2M relationships, so the other devs used class reference and there was no circular import. Furthermore we wanted to move the initialize them not in run time.
Since we want to have a common "way of working" we decided to move to the class reference.
We used TYPE_CHECKING since the classes were not initialized in run-time anymore.
Our association table have id, left.id, right.id so i have to explicitly declare the relationship().
But in the end, we decided to stick to initialize in init.py and use string reference, since it seems to be best practice with M2M relationships.