Validate that ProjectNamespace is a leaf node in the Namespaces hierarchy
ProjectNamespace acts as a namespace wrapper on Project. Even though ProjectNamespace is a namespace, we would want to reduce its footprint by making sure that initially it can only be a leaf node in the Namespaces hierarchy, i.e. it cannot be parent of other Namespaces and it cannot have child projects.
This is a 2 fold decission:
- This keeps ProjectNamespace coupled to the Project to the point when we are ready to decouple it, so deleting the ProjectNamespace or Project means the same thing logically as both would represent a lead node.
- This would still allow us to move functionality between Project and Namespace through ProjectNamespace to the point where we will be able to just drop the Project and transform the ProjectNamespace into a full-fledged Namespace.
Edited by Alexandru Croitor