[Ken] Design Version Element
Design Version Elements represents individual material options within a design versionโs material slots. They are generated by joining material slot definitions with attribute option configurations and visual ordering metadata.
Key Concept
Design Version Elements joins the following tables:
- Material Slots (defined per design version, owns material_type)
- AAOJ (Attribute_Attribute_Option_Junction) - junction table
- ForcegentoAttributeOptionVisualOrder (AV) - represents the actual material
When you create a new ForcegentoAttributeOptionVisualOrder record linked to an AAOJ, a corresponding Design Version Element automatically appears in the view.
What is a Design Version Element?
A Design Version Element combines data from Material Slot, AAOJ, and ForcegentoAttributeOptionVisualOrder to provide a complete picture of available material options for each material slot. It enables:
- Material Options - Each slotโs available material choices (fabrics, paints, etc.)
- Visual Configuration - Control color tinting, thumbnails, and display properties
- Attribute Linking - Connect product attributes to specific material options
- Ordering & Display - Position and visibility rules per material option
- Localization - Support multiple languages for element names and labels
Hierarchy Relationship
Design Family โ Design Version โ Material Slot โ Design Version Element(s)
โ
Design Product Attribute Junction (DPJ)
โ
Attribute Attribute Option Junction (AAOJ) โโ ForcegentoAttributeOptionVisualOrder (AV) โโ Material
โ
(generates view records)
โ
Design Version ElementsDatabase Structure:
- Material Slot - Defined at Design Version level, owns a
material_type(fabric, paint, etc.) - AAOJ (Attribute_Attribute_Option_Junction) - Junction table that links attributes to attribute options
- ForcegentoAttributeOptionVisualOrder (AV) - Represents the actual material with visual properties, position, and metadata
- Design Version Element - Database VIEW that joins the above tables
Example: Sofa Customization
Design Family: "DANISH SOFA"
โโโ Design Version: "v2.0"
โโโ Material Slot: "Element0" (material_type: "fabric")
โ โโโ Design Version Elements (view records):
โ โโโ Element: "Standard Gray Fabric" (AAOJ: #123)
โ โโโ Element: "Premium Navy Fabric" (AAOJ: #124)
โ โโโ Element: "Luxury Velvet" (AAOJ: #125)
โ
โโโ Material Slot: "Element1" (material_type: "paint")
โ โโโ Design Version Elements (view records):
โ โโโ Element: "White Oak" (AAOJ: #126)
โ โโโ Element: "Walnut Stain" (AAOJ: #127)
โ โโโ Element: "Black Matte" (AAOJ: #128)
โ
โโโ Material Slot: "Element2" (material_type: "wood")
โโโ Design Version Elements (view records):
โโโ Element: "Natural Wood" (AAOJ: #129)
โโโ Element: "Brushed Metal" (AAOJ: #130)Key Insight:
- Material Slot defines WHERE and WHAT TYPE (e.g., โElement0โ accepts โfabricโ materials)
- AAOJ is a junction table linking attributes to attribute options
- ForcegentoAttributeOptionVisualOrder (AV) represents the material itself
- Each AV record linked via AAOJ creates a Design Version Element (the specific material option)
Attributes & Metadata
Design Version Elements are database view records that expose joined data from multiple tables. The attributes come from different source tables in the underlying data model.
Database View Nature
Since Design Version Element is a view (not a table), you cannot directly insert/update/delete records. Instead:
- Create/update AAOJ records to link attributes
- Create/update ForcegentoAttributeOptionVisualOrder (AV) records - these represent the materials
- The view automatically reflects these changes
Core Identity
Basic identifiers and naming (from AAOJ and related tables):
| Attribute | Type | Description |
|---|---|---|
sfid | String (18 chars) | Primary key, Salesforce ID format |
index_number | Integer | Numeric identifier for 3D App |
name | String (max 80) | Design version name |
element_name | String (max 255) | AV value name |
element_label_name | String (max 255) | material label name |
element_sfid | String (18 chars) | AV sfid |
Example:
sfid: "a80OQ000002A34BYAS"
index_number: 1
name: "v2.0"
element_name: "AV-xxxxxx"
element_label_name: "Burnt Orange Fabric"
element_sfid: "a81OQ000002A35CYAS"Relationships
Links to parent entities and attribute configurations (these define what appears in the view):
| Attribute | Type | Description |
|---|---|---|
design_family_sfid | Foreign Key | Reference to parent Design Family |
design_product_attribute_junction_sfid | Foreign Key | Junction to product attributes (links to Material Slot) |
attribute_attribute_option_junction_sfid | Foreign Key | AAOJ - Junction table linking attribute to attribute option |
Data Flow:
Design Version
โโโ Defines Material Slots (via design_product_attribute_junction)
โ โโโ Each slot has material_type (fabric, paint, etc.)
โ
AAOJ (Attribute_Attribute_Option_Junction)
โโโ Junction table: links Attribute โ Attribute Option
โโโ Does NOT contain material data
โโโ Referenced by: attribute_attribute_option_junction_sfid
โ
ForcegentoAttributeOptionVisualOrder (AV)
โโโ Represents the MATERIAL itself
โโโ Contains: material properties, visual settings, position, thumbnails, RGBA
โโโ Links to AAOJ via aaoj_sfid
โโโ This is the actual material record
โ
Design Version Element (VIEW)
โโโ Joins Material Slot + AAOJ + AV โ Shows materials per slotCreating a New Material Option:
To add a new material to a slot:
- AAOJ exists or create - Junction linking attribute to attribute option
- Create ForcegentoAttributeOptionVisualOrder (AV) - This represents the material
- Design Version Element automatically appears in the view
Example:
// Step 1: AAOJ junction (may already exist)
AAOJ Record #131
โโโ attribute_sfid: "element0_attribute" (links to Material Slot "Element0")
โโโ attribute_option_sfid: "burnt_orange_option"
โโโ Purpose: Junction linking attribute to option
// Step 2: ForcegentoAttributeOptionVisualOrder (THE MATERIAL)
AV Record #450
โโโ aaoj_sfid: #131 (references AAOJ)
โโโ sfid: "AV-xxxxxx"
โโโ name: "v2.0"
โโโ position: 10
โโโ thumbnail_on_app: "cloudinary.com/..."
โโโ r: 0.9, g: 0.5, b: 0.2, a: 1.0 (orange tint)
โโโ visibility_app_jp_ja: "Catalog, Search"
โโโ is_default: false
โโโ This IS the material record
// Step 3: Design Version Element appears automatically
Design Version Element (view record)
โโโ sfid: (computed from view)
โโโ attribute_attribute_option_junction_sfid: #131
โโโ name: "v2.0" (from AV)
โโโ material_slot: "Element0" (from Material Slot)
โโโ material_type: "fabric" (from Material Slot)
โโโ position: 10 (from AV)
โโโ thumbnail_on_app: "cloudinary.com/..." (from AV)
โโโ r, g, b, a: from AVMaterial Properties
Material type and slot information (inherited from Material Slot definition):
| Attribute | Type | Description | Source |
|---|---|---|---|
material_type | String (Enum) | Type of material (fabric, paint, leather, etc.) | From Material Slot |
base_material_type | String | Base material classification | From AV (ForcegentoAttributeOptionVisualOrder) |
replaceable_materials | String/Array | Materials that can replace this element | From Material Slot configuration |
material_slot | String | Slot identifier where material is applied | From Material Slot |
Material Type Values:
The material_type is owned by the Material Slot, not the individual element. All Design Version Elements within the same slot share the same material_type.
| Type | Common Use Cases |
|---|---|
fabric | Upholstery, cushions, curtains |
paint | Wood frames, walls, metal finishes |
leather | Premium upholstery, accents |
wood | Natural wood finishes, flooring |
metal | Hardware, legs, frames |
wallpaper | Wall coverings |
hdri | Environmental lighting |
floor | Flooring materials |
picture | Decorative images, artwork |
Example Configuration:
// Material Slot definition
Material Slot: "Element0"
โโโ material_type: "fabric"
โโโ material_slot: "cushion_main"
โโโ replaceable_materials: ["fabric", "leather", "velvet"]
// All materials (AV records) in this slot inherit the material_type
AV Record: "Gray Fabric" (material_type: "fabric" from slot)
AV Record: "Navy Fabric" (material_type: "fabric" from slot)
AV Record: "Beige Fabric" (material_type: "fabric" from slot)
// Separate slot with different material_type
Material Slot: "Element1"
โโโ material_type: "paint"
โโโ material_slot: "frame_surface"
โโโ replaceable_materials: ["paint", "stain", "lacquer"]
AV Record: "White Oak" (material_type: "paint" from slot)
AV Record: "Walnut" (material_type: "paint" from slot)Slot-Level Material Type
The material_type is defined at the Material Slot level, not per element. This ensures consistency - all fabric options appear together, all paint options together, etc.
Default Material Flags
Boolean flags indicating which default material category this element belongs to:
| Attribute | Type | Description |
|---|---|---|
default_fabric | Boolean | Default fabric material element |
default_paint | Boolean | Default paint material element |
default_leather | Boolean | Default leather material element |
default_floor | Boolean | Default floor material element |
default_curtain | Boolean | Default curtain material element |
default_hdri | Boolean | Default HDRI environment element |
default_wallpaper | Boolean | Default wallpaper material element |
default_picture | Boolean | Default picture/artwork element |
Usage Pattern:
Each Design Version Element typically has only one default flag set to true:
// Cushion fabric element
default_fabric: true
default_paint: false
default_leather: false
// ... other flags: false
// Frame paint element
default_fabric: false
default_paint: true
default_leather: false
// ... other flags: false
// Premium leather option
default_fabric: false
default_paint: false
default_leather: true
// ... other flags: falseApplication Flow:
- Initial Load - System checks default flags
- Material Assignment - Applies the flagged material type
- User Override - Customer can change if
replaceable_materialsallows - Rendering - 3D engine applies material to specified
material_slot
Default Material Priority
Only one default flag should be true per element. Multiple flags set to true may cause undefined behavior in material application.
Visual Properties
Controls appearance, color tinting, and thumbnail display (from ForcegentoAttributeOptionVisualOrder - the material record):
| Attribute | Type | Description | Source |
|---|---|---|---|
thumbnail_on_app | URL | Thumbnail image URL for app display | AV (ForcegentoAttributeOptionVisualOrder) |
element_thumbnail_url | URL | Element-specific thumbnail | AV (ForcegentoAttributeOptionVisualOrder) |
r | Float (0-1) | Red channel for texture tinting | AV (ForcegentoAttributeOptionVisualOrder) |
g | Float (0-1) | Green channel for texture tinting | AV (ForcegentoAttributeOptionVisualOrder) |
b | Float (0-1) | Blue channel for texture tinting | AV (ForcegentoAttributeOptionVisualOrder) |
a | Float (0-1) | Alpha channel for transparency | AV (ForcegentoAttributeOptionVisualOrder) |
original_h | Integer | Original texture height in pixels | AV (ForcegentoAttributeOptionVisualOrder) |
original_w | Integer | Original texture width in pixels | AV (ForcegentoAttributeOptionVisualOrder) |
RGBA Color Tinting:
The RGBA values allow runtime color adjustments without creating new textures:
// Pure white (no tint)
r: 1.0, g: 1.0, b: 1.0, a: 1.0
// Red tint (25% red overlay)
r: 1.0, g: 0.75, b: 0.75, a: 1.0
// Blue tint (50% blue overlay)
r: 0.5, g: 0.5, b: 1.0, a: 1.0
// Semi-transparent (50% opacity)
r: 1.0, g: 1.0, b: 1.0, a: 0.5Thumbnail URLs:
Both thumbnail fields serve different purposes:
thumbnail_on_app: Used in mobile/web apps for material selection UIelement_thumbnail_url: Used in catalog and preview contexts
Example:
thumbnail_on_app: "https://res.cloudinary.com/.../cushion_fabric_thumb.jpg"
element_thumbnail_url: "https://res.cloudinary.com/.../cushion_fabric_preview.jpg"
r: 1.0
g: 1.0
b: 1.0
a: 1.0
original_h: 1024
original_w: 1024Color Tinting Workflow:
- Load base texture from asset system
- Apply RGBA multipliers in shader
- Result: Tinted material without new texture file
- Performance: Fast, memory-efficient color variations
Positioning and Display
Controls element ordering and visibility (from ForcegentoAttributeOptionVisualOrder - the material record):
| Attribute | Type | Description | Source |
|---|---|---|---|
position | Integer | Sort order position in UI lists | AV (ForcegentoAttributeOptionVisualOrder) |
is_default | Boolean | Whether this is the default element for its slot | AV (ForcegentoAttributeOptionVisualOrder) |
visibility_app_jp_ja | String (Enum) | Visibility settings for Japanese app | AV (ForcegentoAttributeOptionVisualOrder) |
visibility_limited | Boolean | Whether visibility is restricted | AV (ForcegentoAttributeOptionVisualOrder) |
Position Sorting:
Lower position values appear first in UI. These values come from ForcegentoAttributeOptionVisualOrder (AV - the material records):
Material Slot: "Element0"
โโโ Material (AV): "Standard Gray" (position: 1, AAOJ: #123) โ Shown first
โโโ Material (AV): "Premium Navy" (position: 2, AAOJ: #124)
โโโ Material (AV): "Luxury Beige" (position: 3, AAOJ: #125)
โโโ Material (AV): "Exclusive Velvet" (position: 10, AAOJ: #126) โ Shown lastDefault Element:
Only one material per material_slot should have is_default: true. This is set in the ForcegentoAttributeOptionVisualOrder (AV) record:
// Element0 slot - multiple material options
Material (AV): "Standard Fabric" (is_default: true, AAOJ: #123) โ Selected by default
Material (AV): "Premium Fabric" (is_default: false, AAOJ: #124)
Material (AV): "Leather Option" (is_default: false, AAOJ: #125)Visibility Controls:
| Visibility Setting | Behavior |
|---|---|
"Catalog, Search" | Visible in both catalog and search |
"Catalog" | Catalog only, hidden from search |
"Exclusive Custom Catalog" | Custom/curated collections only |
"Don't Show in App" | Hidden from all UI |
Visibility Limited:
When visibility_limited: true:
- Element restricted to specific user groups
- May require special permissions
- Typically used for premium/exclusive options
Localization
Multi-language support for element names and labels (from various source tables):
| Attribute | Type | Description | Source |
|---|---|---|---|
japanese | String (max 50) | Japanese element name | AAOJ/Attribute Option |
color_palette_tab_label | String | English label for color palette UI | AV (ForcegentoAttributeOptionVisualOrder) |
color_palette_tab_label_ja | String | Japanese label for color palette UI | AV (ForcegentoAttributeOptionVisualOrder) |
Localization Example:
// Element configuration
name: "Seat Cushion Fabric"
japanese: "ๅบง้ข็ๅฐ"
color_palette_tab_label: "Cushion Colors"
color_palette_tab_label_ja: "ใฏใใทใงใณใซใฉใผ"UI Display Flow:
User Language: Japanese (ja-JP)
โโโ Element Name: Use 'japanese' field
โ โโโ Fallback: Use 'name' if japanese is empty
โ
โโโ Color Palette Tab: Use 'color_palette_tab_label_ja'
โโโ Fallback: Use 'color_palette_tab_label' if _ja is empty
User Language: English (en-US)
โโโ Element Name: Use 'name' field
โโโ Color Palette Tab: Use 'color_palette_tab_label'Best Practices:
- Always provide English (
name,color_palette_tab_label) - Provide Japanese for Japan market (
japanese,color_palette_tab_label_ja) - Keep translations concise (50 character limit for Japanese names)
- Use culturally appropriate terminology
Localization Priority
Japanese market customization UI always checks localized fields first. Missing translations fall back to English to ensure UI functionality.
Basic Sofa Customization
Simple furniture with multiple material slots:
Example: Two-Tone Sofa
Design Family: "NORDIC SOFA"
โโโ Design Version: "1.0"
โโโ Material Slot: "Element0" (material_type: "fabric")
โ โโโ Materials (AV records):
โ โโโ AV: "Gray Linen" (AAOJ: #110, position: 1, is_default: true)
โ โโโ AV: "Navy Cotton" (AAOJ: #111, position: 2)
โ โโโ AV: "Brown Leather" (AAOJ: #112, position: 3)
โ
โโโ Material Slot: "Element1" (material_type: "paint")
โ โโโ Materials (AV records):
โ โโโ AV: "White Oak" (AAOJ: #120, position: 1, is_default: true)
โ โโโ AV: "Walnut Stain" (AAOJ: #121, position: 2)
โ โโโ AV: "Black Matte" (AAOJ: #122, position: 3)
โ
โโโ Material Slot: "Element2" (material_type: "wood")
โโโ Materials (AV records):
โโโ AV: "Natural Wood" (AAOJ: #130, position: 1, is_default: true)
โโโ AV: "Dark Walnut" (AAOJ: #131, position: 2)
โโโ AV: "Brushed Metal" (AAOJ: #132, position: 3)Data Structure Behind the Scenes:
Material Slot Table:
โโโ "Element0" โ material_type: "fabric"
โโโ "Element1" โ material_type: "paint"
โโโ "Element2" โ material_type: "wood"
AAOJ Table (9 junction records):
โโโ #110, #111, #112 โ linked to "Element0" attribute
โโโ #120, #121, #122 โ linked to "Element1" attribute
โโโ #130, #131, #132 โ linked to "Element2" attribute
ForcegentoAttributeOptionVisualOrder (AV) Table (9 material records):
โโโ Each AV record IS a material
โโโ Contains: name, thumbnails, position, visibility, RGBA, dimensions
โโโ References AAOJ via aaoj_sfid
โโโ These ARE the actual materials
Design Version Element VIEW:
โโโ Joins Material Slot + AAOJ + AV โ Shows 9 materials across 3 slotsCustomization Flow:
- Customer selects sofa from catalog
- UI displays material slots (seat, frame, legs)
- Each slot shows its Design Version Elements in
positionorder - Default elements (is_default: true) are pre-selected
- Customer can change to other options within each slot
- 3D preview updates materials in real-time
Complex Multi-Element Design
Furniture with many customization options across multiple slots:
Example: Modular Sectional Sofa
Design Family: "MODULAR SECTIONAL"
โโโ Design Version: "3.0"
โโโ Material Slot: "main_cushion" (material_type: "fabric")
โ โโโ Design Version Elements (view records):
โ โโโ "Standard Linen" (AAOJ: #200, position: 1, is_default: true)
โ โโโ "Premium Cotton" (AAOJ: #201, position: 2)
โ โโโ "Velvet Luxury" (AAOJ: #202, position: 3)
โ โโโ "Leather Premium" (AAOJ: #203, position: 4)
โ
โโโ Material Slot: "accent_cushion" (material_type: "fabric")
โ โโโ Design Version Elements (view records):
โ โโโ "Matching Accent" (AAOJ: #210, position: 1, is_default: true)
โ โโโ "Contrast Blue" (AAOJ: #211, position: 2, r: 0.3, g: 0.5, b: 0.9)
โ โโโ "Contrast Red" (AAOJ: #212, position: 3, r: 0.9, g: 0.3, b: 0.3)
โ
โโโ Material Slot: "back_panel" (material_type: "fabric")
โ โโโ Design Version Elements (view records):
โ โโโ "Standard Fabric" (AAOJ: #220, position: 1, is_default: true)
โ โโโ "Leather Back" (AAOJ: #221, position: 2)
โ
โโโ Material Slot: "frame_finish" (material_type: "paint")
โ โโโ Design Version Elements (view records):
โ โโโ "Natural Oak" (AAOJ: #230, position: 1, is_default: true)
โ โโโ "Walnut Stain" (AAOJ: #231, position: 2)
โ โโโ "Black Lacquer" (AAOJ: #232, position: 3)
โ
โโโ Material Slot: "leg_hardware" (material_type: "metal")
โ โโโ Design Version Elements (view records):
โ โโโ "Brushed Steel" (AAOJ: #240, position: 1, is_default: true)
โ โโโ "Polished Chrome" (AAOJ: #241, position: 2)
โ โโโ "Matte Black" (AAOJ: #242, position: 3)
โ
โโโ Material Slot: "piping" (material_type: "fabric")
โ โโโ Design Version Elements (view records):
โ โโโ "Standard Piping" (AAOJ: #250, position: 1, is_default: true)
โ โโโ "Contrast Piping" (AAOJ: #251, position: 2, visibility_limited: true)
โ
โโโ Material Slot: "throw_pillow" (material_type: "fabric")
โโโ Design Version Elements (view records):
โโโ "Matching Pillow" (AAOJ: #260, position: 1, is_default: true)
โโโ "Velvet Pillow" (AAOJ: #261, position: 2)
โโโ "Pattern Pillow" (AAOJ: #262, position: 3)Database Record Count:
- Material Slots: 7
- AAOJ Records: 20 (links to attribute options)
- ForcegentoAttributeOptionVisualOrder Records: 20 (visual properties)
- Design Version Elements (VIEW): 20 (automatically generated)
Benefits:
- โ Granular control over every material surface
- โ Each slot groups related material options
- โ Mix and match across slots
- โ Color tinting for accent elements (RGB values)
- โ
Premium options via
visibility_limited - โ
Organized by slot, then by
positionwithin slot
Room Scene Configuration
Environmental elements for 3D room scenes with multiple material slots:
Example: Complete Room Design
Design Family: "LIVING ROOM SCENE"
โโโ Design Version: "2.0"
โโโ Material Slot: "sofa_upholstery" (material_type: "fabric")
โ โโโ Design Version Elements:
โ โโโ "Gray Linen" (AAOJ: #300)
โ โโโ "Navy Cotton" (AAOJ: #301)
โ โโโ "Beige Velvet" (AAOJ: #302)
โ
โโโ Material Slot: "wall_surface" (material_type: "paint")
โ โโโ Design Version Elements:
โ โโโ "Warm White" (AAOJ: #310)
โ โโโ "Light Gray" (AAOJ: #311)
โ โโโ "Sage Green" (AAOJ: #312)
โ
โโโ Material Slot: "accent_wall" (material_type: "wallpaper")
โ โโโ Design Version Elements:
โ โโโ "No Wallpaper" (AAOJ: #320, is_default: true)
โ โโโ "Geometric Pattern" (AAOJ: #321)
โ โโโ "Floral Design" (AAOJ: #322)
โ โโโ "Solid Color" (AAOJ: #323)
โ
โโโ Material Slot: "floor_surface" (material_type: "floor")
โ โโโ Design Version Elements:
โ โโโ "Oak Hardwood" (AAOJ: #330)
โ โโโ "Marble Tile" (AAOJ: #331)
โ โโโ "Beige Carpet" (AAOJ: #332)
โ
โโโ Material Slot: "window_treatment" (material_type: "fabric")
โ โโโ Design Version Elements:
โ โโโ "Sheer White" (AAOJ: #340, default_curtain: true)
โ โโโ "Linen Drapes" (AAOJ: #341)
โ โโโ "Blackout Curtain" (AAOJ: #342)
โ
โโโ Material Slot: "artwork_frame" (material_type: "picture")
โ โโโ Design Version Elements:
โ โโโ "Abstract Art 1" (AAOJ: #350, original_h: 1920, original_w: 1080)
โ โโโ "Abstract Art 2" (AAOJ: #351, original_h: 1920, original_w: 1080)
โ โโโ "Landscape Photo" (AAOJ: #352, original_h: 1920, original_w: 1080)
โ
โโโ Material Slot: "environment_light" (material_type: "hdri")
โโโ Design Version Elements:
โโโ "Daylight Soft" (AAOJ: #360, default_hdri: true)
โโโ "Sunset Warm" (AAOJ: #361)
โโโ "Studio Bright" (AAOJ: #362)Scene Composition:
This configuration enables complete room customization through 7 material slots:
| Slot | Material Type | Purpose | Elements |
|---|---|---|---|
| sofa_upholstery | fabric | Furniture materials | 3 options |
| wall_surface | paint | Wall finishes | 3 options |
| accent_wall | wallpaper | Feature wall | 4 options |
| floor_surface | floor | Flooring materials | 3 options |
| window_treatment | fabric | Curtains/drapes | 3 options |
| artwork_frame | picture | Wall decorations | 3 options |
| environment_light | hdri | Lighting atmosphere | 3 options |
Total: 7 Material Slots, 22 Design Version Elements (view records)
Premium Material Options
Exclusive materials with visibility controls managed through ForcegentoAttributeOptionVisualOrder:
Example: Luxury Armchair Collection
Design Family: "LUXURY ARMCHAIR"
โโโ Design Version: "1.0"
โโโ Material Slot: "upholstery" (material_type: "fabric")
โโโ Design Version Elements (view records from different tiers):
โโโ "Standard Fabric" (Public Tier)
โ โโโ AAOJ: #400
โ โโโ position: 1
โ โโโ is_default: true
โ โโโ visibility_app_jp_ja: "Catalog, Search"
โ โโโ visibility_limited: false
โ
โโโ "Premium Linen" (Public Tier)
โ โโโ AAOJ: #401
โ โโโ position: 2
โ โโโ is_default: false
โ โโโ visibility_app_jp_ja: "Catalog, Search"
โ โโโ visibility_limited: false
โ
โโโ "Premium Leather" (Limited Tier)
โ โโโ AAOJ: #402
โ โโโ position: 3
โ โโโ is_default: false
โ โโโ visibility_app_jp_ja: "Catalog"
โ โโโ visibility_limited: true
โ
โโโ "Exclusive Velvet" (Exclusive Tier)
โ โโโ AAOJ: #403
โ โโโ position: 4
โ โโโ is_default: false
โ โโโ visibility_app_jp_ja: "Exclusive Custom Catalog"
โ โโโ visibility_limited: true
โ
โโโ "Italian Leather" (Hidden)
โโโ AAOJ: #404
โโโ position: 5
โโโ is_default: false
โโโ visibility_app_jp_ja: "Don't Show in App"
โโโ visibility_limited: trueVisibility Configuration:
All visibility settings come from ForcegentoAttributeOptionVisualOrder records:
| AAOJ ID | Material Option | Visibility Setting | Limited? | Who Sees It |
|---|---|---|---|---|
| #400 | Standard Fabric | "Catalog, Search" | false | Everyone |
| #401 | Premium Linen | "Catalog, Search" | false | Everyone |
| #402 | Premium Leather | "Catalog" | true | Registered users |
| #403 | Exclusive Velvet | "Exclusive Custom Catalog" | true | VIP/Partners |
| #404 | Italian Leather | "Don't Show in App" | true | Admin only |
Data Flow Diagram
โโโโโโโโโโโโโโโโโโโ
โ Design Version โ
โ โ
โโโโโโโโโโฌโโโโโโโโโ
โ has many
โผ
โโโโโโโโโโโโโโโโโโโ owns โโโโโโโโโโโโโโโโ
โ Material Slot โโโโโโโโโโโโโโโโโโโmaterial_type โ
โ โ โโโโโโโโโโโโโโโโ
โโโโโโโโโโฌโโโโโโโโโ
โ defines attribute
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Attribute โ
โ โ
โโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
โ linked by
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ AAOJ โโโโโโโโโโ AttributeOption โ
โ (junction table) โ links โ (japanese name) โ
โโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ referenced by
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ForcegentoAttributeOption โ
โ VisualOrder (AV) โ
โ **THIS IS THE MATERIAL** โ
โ โ
โ Contains: โ
โ - name, thumbnails โ
โ - position, visibility โ
โ - RGBA color values โ
โ - dimensions (h, w) โ
โ - localization labels โ
โ - base_material_type โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ all joined into
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DesignVersionElement โ
โ (DATABASE VIEW - read only) โ
โ Shows materials per slot โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโWorking with the View
Read-Only View
You cannot directly INSERT, UPDATE, or DELETE Design Version Element records. All changes must be made to the underlying source tables.