generated: '2026-08-25' method: derived source: graphql/moda-operandi-search-schema.graphql note: Entity-relationship graph derived mechanically from the introspected GraphQL schema — object-typed fields become relationships, and *_id / *_ids scalar fields are recorded as id-references. Moda Operandi publishes no object reference, so no id prefixes or domain descriptions could be sourced; none are invented here. root_entity: Variant domain_summary: The graph is a luxury-retail merchandising catalog organised around four nouns. A DESIGNER is a brand. A TRUNKSHOW is a designer's pre-order runway collection for a season, the concept Moda Operandi was founded on. A LOOK is one styled runway outfit inside a trunkshow. A VARIANT is a buyable SKU (colour/size), and is the entity every search, listing and recommendation query ultimately returns. CollectionResult is not a domain entity but the faceted-search envelope that wraps a VariantConnection with every filter bucket the storefront renders. entity_count: 18 relationship_count: 78 entities: - name: Trunkshow kind: object field_count: 30 identifier: 'id: ID!' slug: true - name: Designer kind: object field_count: 10 identifier: 'id: ID!' slug: true - name: Look kind: object field_count: 25 identifier: 'id: ID!' - name: Variant kind: object field_count: 70 identifier: 'id: ID!' slug: true - name: VariantData kind: object field_count: 22 identifier: 'id: ID!' slug: true - name: CollectionResult kind: object field_count: 22 - name: TrunkshowCollectionResult kind: object field_count: 5 - name: DisplayPage kind: object field_count: 11 slug: true - name: NewTrunkshowPage kind: object field_count: 3 - name: GiftCategory kind: object field_count: 3 slug: true - name: Slide kind: object field_count: 6 identifier: 'id: ID!' - name: NavigatorVertical kind: union field_count: 0 - name: CategoryTree kind: object field_count: 4 slug: true - name: Inventory kind: object field_count: 8 - name: VariantPrice kind: object field_count: 5 - name: TrendingFacet kind: object field_count: 3 - name: UsageStat kind: object field_count: 2 - name: AutocompleteResult kind: object field_count: 6 relationships: - from: Trunkshow to: TrunkshowActiveFor via: active_for cardinality: has_one - from: Trunkshow to: TrunkshowImageUrls via: ending_image_urls cardinality: has_one - from: Trunkshow to: NameSlugId via: limited_designer_data cardinality: has_many - from: Trunkshow to: Look via: look_ids cardinality: has_many binding: id-reference - from: Trunkshow to: LookConnection via: looks cardinality: has_one - from: Trunkshow to: TrunkshowImageUrls via: primary_image_urls cardinality: has_one - from: Trunkshow to: TrunkshowImageUrls via: secondary_image_urls cardinality: has_one - from: Trunkshow to: Variant via: variant_ids cardinality: has_many binding: id-reference - from: Trunkshow to: VariantConnection via: variants cardinality: has_one - from: Look to: Look via: next_look_id cardinality: has_one binding: id-reference - from: Look to: Look via: previous_look_id cardinality: has_one binding: id-reference - from: Look to: LookImageUrls via: primary_image_urls cardinality: has_one - from: Look to: Variant via: primary_product_id cardinality: has_one binding: id-reference - from: Look to: LookImageUrls via: runway_image_urls cardinality: has_one deprecated: true - from: Look to: Trunkshow via: trunkshow cardinality: has_one - from: Look to: Trunkshow via: trunkshow_id cardinality: has_one binding: id-reference - from: Look to: Variant via: variant_ids cardinality: has_many binding: id-reference - from: Look to: VariantConnection via: variants cardinality: has_one - from: Variant to: VariantData via: current_variants_data cardinality: has_one deprecated: true - from: Variant to: CustomizationParameters via: customization_parameters cardinality: has_one - from: Variant to: FitRecommendation via: fit_recommendation cardinality: has_one - from: Variant to: LimitedTrunkshowData via: limited_trunkshow_data cardinality: has_many - from: Variant to: LookConnection via: looks cardinality: has_one - from: Variant to: Variant via: master_variant_id cardinality: has_one binding: id-reference - from: Variant to: VariantData via: master_variants_data cardinality: has_one - from: Variant to: VariantData via: other_variants_data cardinality: has_many - from: Variant to: LookConnection via: paginated_looks cardinality: has_one deprecated: true - from: Variant to: TrunkshowConnection via: paginated_trunkshows cardinality: has_one deprecated: true - from: Variant to: Variant via: product_id cardinality: has_one binding: id-reference - from: Variant to: Look via: recommendation_looks cardinality: has_many - from: Variant to: TrunkshowConnection via: trunkshows cardinality: has_one - from: Variant to: Variant via: variant_ids cardinality: has_many binding: id-reference - from: Variant to: VariantVideo via: videos cardinality: has_many - from: VariantData to: VariantImageUrls via: alternate_image_urls cardinality: has_many - from: VariantData to: Inventory via: inventory cardinality: has_many - from: VariantData to: VariantPrice via: prices cardinality: has_one - from: VariantData to: VariantImageUrls via: primary_image_urls cardinality: has_one - from: VariantData to: VariantDelivery via: process_delivery_dates cardinality: has_one - from: CollectionResult to: NameSlugFacet via: attributes cardinality: has_many - from: CollectionResult to: AvailabilityFacet via: availability cardinality: has_one - from: CollectionResult to: CategoryTree via: category_tree cardinality: has_one - from: CollectionResult to: Facet via: collections cardinality: has_many - from: CollectionResult to: NameSlugFacet via: designers cardinality: has_many - from: CollectionResult to: NameSlugIdFacet via: designers_with_id cardinality: has_many - from: CollectionResult to: Facet via: filter_colors cardinality: has_many - from: CollectionResult to: NameSlugFacet via: materials cardinality: has_many - from: CollectionResult to: PriceRangeInfo via: price_range cardinality: has_one deprecated: true - from: CollectionResult to: NameSlugFacet via: primary_attributes cardinality: has_many - from: CollectionResult to: Facet via: rounded_markdown_percentages cardinality: has_many - from: CollectionResult to: Facet via: sale_tags cardinality: has_many - from: CollectionResult to: Facet via: seasons cardinality: has_many - from: CollectionResult to: SizeFacet via: sizes cardinality: has_many - from: CollectionResult to: Facet via: subcategories cardinality: has_many - from: CollectionResult to: Facet via: tags cardinality: has_many - from: CollectionResult to: VariantConnection via: variants cardinality: has_one - from: TrunkshowCollectionResult to: NameSlugFacet via: categories cardinality: has_many - from: TrunkshowCollectionResult to: NameSlugFacet via: designers cardinality: has_many - from: TrunkshowCollectionResult to: TrunkshowConnection via: trunkshows cardinality: has_one - from: DisplayPage to: GuideSubPage via: guideSubPages cardinality: has_many - from: DisplayPage to: TargetBucket via: targetBuckets cardinality: has_many - from: NewTrunkshowPage to: TrunkshowLook via: looks cardinality: has_many - from: NewTrunkshowPage to: TrunkshowProduct via: products cardinality: has_many - from: NewTrunkshowPage to: Trunkshow via: trunkshow cardinality: has_one - from: GiftCategory to: GiftCategory via: children cardinality: has_many - from: Slide to: Image via: featureImage cardinality: has_one - from: Slide to: Image via: mobileImage cardinality: has_one - from: Slide to: SlideText via: slideText cardinality: has_one - from: CategoryTree to: CategoryTree via: children cardinality: has_many - from: Inventory to: VariantDelivery via: process_delivery_dates cardinality: has_one - from: VariantPrice to: PriceDetails via: current_price cardinality: has_one - from: VariantPrice to: PriceDetails via: deposit_price cardinality: has_one - from: VariantPrice to: PriceDetails via: original_price cardinality: has_one - from: VariantPrice to: PriceDetails via: vat cardinality: has_one - from: AutocompleteResult to: CategoryPage via: category_pages cardinality: has_many - from: AutocompleteResult to: NameSlug via: designer_name_slugs cardinality: has_many - from: AutocompleteResult to: QueryReformulation via: query_reformulations cardinality: has_many deprecated: true - from: AutocompleteResult to: TrendingQuery via: trending_queries cardinality: has_many deprecated: true - from: AutocompleteResult to: TrunkshowAutocompleteFacets via: trunkshow_autocomplete_facets cardinality: has_many