Product Domain Model

Class diagram showing schema relationships — generated from the OpenAPI specification.

100% Scroll to zoom · Drag to pan
classDiagram
  direction TB
  class Product {
    Gln manufacturerIdGln✱
    string manufacturerProductNumber✱
    ProductDetails details
    ProductDescription[] descriptions
    EtimClassification[] etimClassifications
    LcaEnvironmental lcaEnvironmental
    ProductAttachment[] attachments
  }
  Product --> "1" ProductDetails : details
  Product --> "*" ProductDescription : descriptions
  Product --> "*" EtimClassification : etimClassifications
  Product --> "1" LcaEnvironmental : lcaEnvironmental
  Product --> "*" ProductAttachment : attachments
  class ProductDetails {
    Gtin[] productGtins
    boolean unbrandedProduct
    string brandName
    string productAnnouncementDate
    string productValidityDate✱
    string productObsolescenceDate
    string customsCommodityCode
    number factorCustomsCommodityCode
    string[] countryOfOrigin
    ProductStatus productStatus
    ProductType productType
    boolean customisableProduct
    boolean hasSerialNumber
    integer warrantyConsumer
    integer warrantyBusiness
    string[] relatedManufacturerProductGroup
  }
  class ProductDescription {
    LanguageCode descriptionLanguage✱
    string minimalProductDescription✱
    string uniqueMainProductDescription
    string fullProductDescription
    string productMarketingText
    string productSpecificationText
    string productApplicationInstructions
    string[] productKeyword
    string productPageUrl
  }
  class EtimClassification {
    string etimClassCode✱
    integer etimClassVersion
    string etimReleaseVersion✱
    string etimDynamicReleaseDate
    EtimFeature[] etimFeatures
  }
  EtimClassification --> "*" EtimFeature : etimFeatures
  class EtimFeature {
    string etimFeatureCode✱
    string etimValueCode
    number etimValueNumeric
    number etimValueRangeLower
    number etimValueRangeUpper
    boolean etimValueLogical
    object[] etimValueDetails
    string reasonNoValue
  }
  class LcaEnvironmental {
    string declaredUnitUnit✱
    number declaredUnitQuantity✱
    object[] functionalUnitDescription
    integer lcaReferenceLifetime✱
    string thirdPartyVerification✱
    string epdValidityStartDate✱
    string epdValidityExpiryDate
    string epdOperatorName
    string epdOperatorUri
    string operatorEpdId
    string manufacturerEpdId
    string productCategoryRulesDescription
    string productCategoryRulesUri
    string productSpecificRulesDescription
    string productSpecificRulesUri
    LcaDeclaration[] lcaDeclaration✱
  }
  LcaEnvironmental --> "*" LcaDeclaration : lcaDeclaration
  class LcaDeclaration {
    string lifeCycleStage✱
    string lcaDeclarationIndicator✱
    number declaredUnitGwpTotal
    number declaredUnitGwpFossil
    number declaredUnitGwpBiogenic
    number declaredUnitAp
    number declaredUnitEpFreshwater
    number declaredUnitOdp
    number declaredUnitGwpLuluc
    number declaredUnitEpMarine
    number declaredUnitEpTerrestrial
    number declaredUnitPocp
    number declaredUnitAdpe
    number declaredUnitAdpf
    number declaredUnitWdp
    number declaredUnitPert
    number declaredUnitPenrt
    number declaredUnitPm
    number declaredUnitIrp
    number declaredUnitEtpfw
    number declaredUnitHtpc
    number declaredUnitHtpnc
    number declaredUnitSqp
  }
  class ProductAttachment {
    AttachmentType attachmentType✱
    AttachmentTypeSpecification attachmentTypeSpecification
    integer attachmentOrder
    AttachmentDetails[] attachmentDetails✱
  }
  ProductAttachment --> "*" AttachmentDetails : attachmentDetails
  class AttachmentDetails {
    LanguageCode[] attachmentLanguage
    string attachmentFilename
    string attachmentUri✱
    object[] attachmentDescription
    string attachmentIssueDate
    string attachmentExpiryDate
  }