First of all, as promised: https://medium.com/@abstarreveld/dddomain-models-ports-adapters-and-cqrs-reference-architecture-c-504817df65ec
That’s how I would do it.
Your solution is pretty much what I tried to explain. I think you can be more explicit about types here and there, for example with locations. Those are strings now. But altogether I think it looks pretty neat.