Checkpoint: headless JSON architecture documented + cleanup (Stufe 1+2)

Restore point before Stufe 3 (central resolver-service refactoring).

Includes this session's work:
- Success Story (usecase) rebuild: new fields/tabs, UsecaseSerializer,
  thin List/Show renderers, MM relations, inline content elements.
- vitec_columns content block (two-column layout with per-item content)
  incl. unified header section; special-cased JSON resolution.
- Container per-column flex (items[].config align/justify) + gap on parent.
- Unified header section across CEs/plugins/containers; header fields in JSON.
- ISO-style architecture spec: Documentation/Headless-JSON-Architecture.md.
- Cleanup: removed local scratch + verified .bak backups.
- Fixes: B-6 (undefined thumbnail variable in Downloadcardcollection image
  resolver), B-7 (unsatisfiable legacy CType OR branch in Downloadcard/Datasheets).

Rollback: git reset --hard snapshot-2026-07-09-pre-stufe3

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
o-rasche
2026-07-09 10:01:56 +02:00
parent c6759186cb
commit bb7c03235d
237 changed files with 6698 additions and 1749 deletions

110
packages/vitec/ext_tables.sql Executable file → Normal file
View File

@@ -93,27 +93,51 @@ CREATE TABLE tx_vitec_product_related_mm (
);
CREATE TABLE tx_vitec_domain_model_usecase (
uid int(11) NOT NULL auto_increment,
pid int(11) DEFAULT '0' NOT NULL,
tstamp int(11) DEFAULT '0' NOT NULL,
crdate int(11) DEFAULT '0' NOT NULL,
cruser_id int(11) DEFAULT '0' NOT NULL,
deleted tinyint(4) DEFAULT '0' NOT NULL,
hidden tinyint(4) DEFAULT '0' NOT NULL,
starttime int(11) DEFAULT '0' NOT NULL,
endtime int(11) DEFAULT '0' NOT NULL,
title varchar(255) DEFAULT '' NOT NULL,
slug varchar(255) DEFAULT '' NOT NULL,
teaser varchar(255) DEFAULT '' NOT NULL,
subtitle varchar(255) DEFAULT '' NOT NULL,
description text,
caseimage INTEGER,
logoimage INTEGER,
singlepid varchar(255) DEFAULT '' NOT NULL,
subtitle varchar(255) DEFAULT '' NOT NULL,
card_image int(11) unsigned DEFAULT '0' NOT NULL,
customer_logo int(11) unsigned DEFAULT '0' NOT NULL,
teaser text,
market int(11) unsigned DEFAULT '0' NOT NULL,
hero_bgimage int(11) unsigned DEFAULT '0' NOT NULL,
hero_small_image int(11) unsigned DEFAULT '0' NOT NULL,
hero_video int(11) unsigned DEFAULT '0' NOT NULL,
hero_overlay_color varchar(20) DEFAULT '' NOT NULL,
hero_overlay_opacity decimal(3,2) DEFAULT '0.00' NOT NULL,
content_elements int(11) unsigned DEFAULT '0' NOT NULL,
solutions int(11) unsigned DEFAULT '0' NOT NULL,
products int(11) unsigned DEFAULT '0' NOT NULL,
categories int(11) unsigned DEFAULT '0' NOT NULL,
seo_title varchar(255) DEFAULT '' NOT NULL,
seo_description text,
no_index smallint(5) unsigned DEFAULT '0' NOT NULL,
no_follow smallint(5) unsigned DEFAULT '0' NOT NULL,
canonical_link varchar(1024) DEFAULT '' NOT NULL,
og_title varchar(255) DEFAULT '' NOT NULL,
og_description text,
og_image int(11) unsigned DEFAULT '0' NOT NULL,
twitter_title varchar(255) DEFAULT '' NOT NULL,
twitter_description text,
twitter_image int(11) unsigned DEFAULT '0' NOT NULL,
layout_variant varchar(30) DEFAULT 'standard' NOT NULL,
background_variant varchar(20) DEFAULT 'none' NOT NULL,
accent_color varchar(20) DEFAULT '' NOT NULL,
hideonapp smallint(5) unsigned DEFAULT '0' NOT NULL,
hideonwebsite smallint(5) unsigned DEFAULT '0' NOT NULL,
PRIMARY KEY (uid),
KEY parent (pid)
hideonwebsite smallint(5) unsigned DEFAULT '0' NOT NULL,
featured smallint(5) unsigned DEFAULT '0' NOT NULL,
show_related smallint(5) unsigned DEFAULT '1' NOT NULL,
hero_layout varchar(20) DEFAULT 'fullscreen' NOT NULL,
text_theme varchar(20) DEFAULT 'light' NOT NULL,
description text,
singlepid varchar(255) DEFAULT '' NOT NULL
);
CREATE TABLE tx_vitec_domain_model_solution (
@@ -169,5 +193,53 @@ ADD type VARCHAR(255) DEFAULT '' NOT NULL;
CREATE TABLE tt_content (
tx_vitec_bg_variant VARCHAR(20) DEFAULT 'none' NOT NULL
tx_vitec_bg_variant VARCHAR(20) DEFAULT 'none' NOT NULL,
tx_vitec_gap VARCHAR(5) DEFAULT '3' NOT NULL,
tx_vitec_col1_align VARCHAR(20) DEFAULT 'stretch' NOT NULL,
tx_vitec_col1_justify VARCHAR(20) DEFAULT 'flex-start' NOT NULL,
tx_vitec_col2_align VARCHAR(20) DEFAULT 'stretch' NOT NULL,
tx_vitec_col2_justify VARCHAR(20) DEFAULT 'flex-start' NOT NULL,
tx_vitec_col3_align VARCHAR(20) DEFAULT 'stretch' NOT NULL,
tx_vitec_col3_justify VARCHAR(20) DEFAULT 'flex-start' NOT NULL,
tx_vitec_col4_align VARCHAR(20) DEFAULT 'stretch' NOT NULL,
tx_vitec_col4_justify VARCHAR(20) DEFAULT 'flex-start' NOT NULL,
tx_vitec_usecase_content int(11) unsigned DEFAULT '0' NOT NULL
);
CREATE TABLE tx_vitec_domain_model_event (
title varchar(255) DEFAULT '' NOT NULL,
slug varchar(255) DEFAULT '' NOT NULL,
teaser varchar(255) DEFAULT '' NOT NULL,
description text,
eventstart int(11) DEFAULT '0' NOT NULL,
eventend int(11) DEFAULT '0' NOT NULL,
venue varchar(255) DEFAULT '' NOT NULL,
booth varchar(255) DEFAULT '' NOT NULL,
city varchar(255) DEFAULT '' NOT NULL,
country varchar(255) DEFAULT '' NOT NULL,
attendancemode varchar(20) DEFAULT 'offline' NOT NULL,
eventstatus varchar(20) DEFAULT 'scheduled' NOT NULL,
eventurl varchar(1024) DEFAULT '' NOT NULL,
meetinglink varchar(1024) DEFAULT '' NOT NULL,
image int(11) unsigned DEFAULT '0' NOT NULL,
hideonwebsite smallint(5) unsigned DEFAULT '0' NOT NULL,
hideonapp smallint(5) unsigned DEFAULT '0' NOT NULL
);
CREATE TABLE tx_vitec_usecase_solution_mm (
uid_local int(11) unsigned DEFAULT '0' NOT NULL,
uid_foreign int(11) unsigned DEFAULT '0' NOT NULL,
sorting int(11) unsigned DEFAULT '0' NOT NULL,
sorting_foreign int(11) unsigned DEFAULT '0' NOT NULL,
KEY uid_local (uid_local),
KEY uid_foreign (uid_foreign)
);
CREATE TABLE tx_vitec_usecase_product_mm (
uid_local int(11) unsigned DEFAULT '0' NOT NULL,
uid_foreign int(11) unsigned DEFAULT '0' NOT NULL,
sorting int(11) unsigned DEFAULT '0' NOT NULL,
sorting_foreign int(11) unsigned DEFAULT '0' NOT NULL,
KEY uid_local (uid_local),
KEY uid_foreign (uid_foreign)
);