Skip to content

BriefElement

A BriefElement represents a single configured product within a brief and contains the complete client request to produce that product. It embeds all essential specifications including dimensions, materials, decoration, finishes, and quantities. Each BriefElement can have its own manufacturing process details and cost analysis.

  • Define complete product specifications for manufacturing
  • Capture dimensions and layout configurations
  • Specify materials and material compositions
  • Configure decoration and printing requirements
  • Define finishing options (lamination, varnish, stamping, embossing)
  • Set production quantities per decoration variant
PropertyTypeDescription
idUUIDUnique identifier
briefIdUUIDParent brief reference
positionnumberOrder in the brief (0-indexed) - Used to retrieve corresponding BriefElementComputed
productCategoryIdUUIDProduct category
productIdUUIDProduct reference

Important: The position property serves as the index to retrieve the corresponding BriefElementComputed from the briefComputed.briefElements array. It’s also used in the /briefs/:id/process/:elementIndex endpoint.

PropertyTypeDescription
lengthDimensionnumberProduct length (mm)
widthDimensionnumberProduct width (mm)
heightDimensionnumberProduct height (mm)
PropertyTypeDescription
matterIdUUIDMatter type (paper, cardboard, etc.)
materialTypeIdUUIDMaterial type
materialReferenceIdUUIDSpecific material reference
grammagenumberMaterial weight (g/m²)
corrugatedMaterialIdUUIDCorrugated material (optional)
PropertyTypeDescription
decorationsCountDecorationCount[]Required: Quantities per decoration variant
wantDecorationbooleanDecoration requested
sidePrintedenumPrinted side (RECTO, VERSO, RECTO_VERSO)
rectoColorCountnumberRecto total colors
versoColorCountnumberVerso total colors
PropertyTypeDescription
wantLaminationRectobooleanLamination on recto
wantVarnishRectobooleanVarnish on recto
wantStampingRectobooleanStamping on recto
wantEmbossingDebossingRectobooleanEmbossing on recto
RelationshipEntityTypeDescription
briefBriefMany-to-OneParent brief
productProductMany-to-OneProduct reference
productCategoryProductCategoryMany-to-OneProduct category
matterMatterMany-to-OneMaterial matter
materialTypeMaterialTypeMany-to-OneMaterial type
materialReferenceMaterialReferenceMany-to-OneMaterial reference
briefElementPriceBriefElementPriceOne-to-OnePricing data for this element
quoteItemsQuoteItemOne-to-ManyQuote items using this element
articlesArticleOne-to-ManyArticles created from this element

Each BriefElement is a complete product specification with:

  • Dimensions: Length, width, height (mm)
  • Materials: Material type, grammage (g/m²), corrugated specs
  • Decoration: Printing (CMYK, direct tone, digital), colors, coverage
  • Finishes: Lamination, varnish, hot stamping, embossing
  • Quantity: Production quantities per decoration variant

The position property is critical for data retrieval and serves multiple purposes:

The position is used as an array index to retrieve the corresponding BriefElementComputed:

// Example: Accessing computed data for a specific element
const brief = await GET('/briefs/:id/details');
const element = brief.briefElements[0]; // BriefElement at position 0
const computed = brief.briefComputed.briefElements[0]; // Corresponding BriefElementComputed
// The position property links them:
// element.position === 0
// computed matches element because they share the same position index

The position is used in the process endpoint:

Terminal window
# Get manufacturing process for element at position 0
GET /briefs/:id/process/0
# Get manufacturing process for element at position 1
GET /briefs/:id/process/1

A Brief can contain multiple BriefElements, each with a unique position:

Brief (id: "brief-123")
├── BriefElement[position: 0] - Product A (200x150x80mm folding carton)
│ └── BriefElementComputed[position: 0] - Computed data for Product A
│ └── GET /briefs/brief-123/process/0 - Manufacturing for Product A
├── BriefElement[position: 1] - Product B (300x200x100mm display box)
│ └── BriefElementComputed[position: 1] - Computed data for Product B
│ └── GET /briefs/brief-123/process/1 - Manufacturing for Product B
└── BriefElement[position: 2] - Product C (custom sleeve)
└── BriefElementComputed[position: 2] - Computed data for Product C
└── GET /briefs/brief-123/process/2 - Manufacturing for Product C
  • Position is 0-indexed (starts at 0, not 1)
  • Position determines the array index in briefComputed.briefElements[]
  • Position is used as :elementIndex in /briefs/:id/process/:elementIndex
  • Each BriefElement must have a unique position within its Brief

DecorationCount: {quantity: number, decorationIndex: number}

  • quantity: Order quantity for this decoration variant
  • decorationIndex: Decoration variant number (0-11)

LayoutCount: {quantity: number, machineId: string}

  • Used for die-cut tools and flexo plates

HotStamping: {color: string, coverage: number, width: number, height: number}

EmbossingDebossing: {type: 'EMBOSSING'|'DEBOSSING'|'BRAILLE', width: number, height: number, depth: number}