Diseño de la raíz agregada correctamente

Tengo algunos problemas para diseñar la raíz agregada. Así es como lo veo en mi mente :)

Store (the aggregate root)
-> Sales - A store create a sale every day
 -> Zones - A store is divided into zones
    -> Styles - A zone has x number of styles
       --> Colors - A style has x number of colors
    etc..

Ahora basado en esto mi raíz agregada sería la tienda. Sin embargo, si fuera ahora a crear un Repositorio en torno a eso, ¿se vería algo así?

public class StoreRepository()
{
  Store GetById() {...}
  StoreZone GetZone() {...}
  List<StoreZoneStyle> GetStylesByZone() {...}
  List<Color> GetColorsByStyle() {...}
}

¿Es esa una buena manera de continuar? No hace falta decir que soy nuevo en DDD.

Respuestas a la pregunta(3)

Su respuesta a la pregunta