We should get rid of this dual URLs, where public and private URLs are different. Let's:
- Make all URLs look like the private URLs, so using UUIDs.
- So in all models, we should have a UUID stored alongside the numerical primary key.
- Primary key is still used for foreign keys.
- But in URLs we use UUIDs.
- UUID fields should have an index in the database.
- We should resolve those UUIDs directly to related objects.
- We should make that all old public URLs (numerical) redirect to UUID ones, on the backend (301 status code).
- Any client code should be updated to use UUID based URLs everywhere.
- Any client code for redirects should be removed.
We should get rid of this dual URLs, where public and private URLs are different. Let's: