Arhitecture of Angular 7 online shop
It seems to me more logical that the declaration of all services is done in your "main" rather than in "core". It is better to separate as much as possible the dependencies between modules of the same level.

In addition, the module "core" and "shared" are quite close in philosophy, they allow to share basic code in your project. I think that in the future it will be confusing.

Maybe renamed core to "home" or just a part of your application and just use "shared" to share modules.

Then, personally I will pass the definition of routes in the module file.