Change parent slug on child pages

By default I have site.com/projects and the children are site.com/projects/project-name
What I’d like instead is site.com/projects and site.com/project/project-name

I’ve created a route that redirects site.com/projects/project-name to site.com/project/project-name and that’s working great.

However I’m wondering if it’s possible to change that somewhere higher where it trickles down into $page->url() and pagination links as well, rather than always going through my route. Is that possible?

Basically I want $page->url() to return site.com/project/project-name

You could use a page model.

Perfect thanks! Used them in the past so not sure why that didn’t cross my mind, oh well.