0006_prozesse_seed.sql
Pfad: migrations/0006_prozesse_seed.sql
Ext: sql
Größe: 10758 Bytes
Geändert: 2026-07-16 16:59:35+02
-- Migration 0006: Reale Prozesse dieses Systems = die /doku-Ablaeufe.
-- Jedes Artefakt verweist auf real existierenden Code/Schema. Eine Transaktion.
DO $$
DECLARE
a_bes bigint; a_app bigint; a_db_akt bigint;
sy_web bigint; sy_pg bigint;
p_lesen bigint; p_zeigen bigint; p_speichern bigint;
f_idx bigint; f_rt bigint; f_dla bigint; f_dda bigint; f_dsa bigint; f_repo bigint;
f_m2h bigint; f_h2m bigint; f_vl bigint; f_vd bigint; f_tab bigint; f_ed bigint;
y_disp bigint; y_dla bigint; y_liste bigint; y_dda bigint; y_byslug bigint;
y_m2h bigint; y_dsa bigint; y_h2m bigint; y_save bigint;
db bigint; t_doku bigint; t_hist bigint; c_slug bigint; c_body bigint;
api_l bigint; api_s bigint; api_v bigint;
l1 bigint; l2 bigint; l3 bigint; l4 bigint; l5 bigint;
z1 bigint; z2 bigint; z3 bigint; z4 bigint; z5 bigint;
s1 bigint; s2 bigint; s3 bigint; s4 bigint; s5 bigint; s6 bigint;
base text := '';
BEGIN
INSERT INTO akteur(name) VALUES('Besucher') RETURNING id INTO a_bes;
INSERT INTO akteur(name) VALUES('Anwendung') RETURNING id INTO a_app;
INSERT INTO akteur(name) VALUES('Datenbank') RETURNING id INTO a_db_akt;
INSERT INTO system(name) VALUES('demo.karlkratz.com') RETURNING id INTO sy_web;
INSERT INTO system(name) VALUES('PostgreSQL') RETURNING id INTO sy_pg;
INSERT INTO artefakt(typ,bezeichner) VALUES('datei',base||'public/index.php') RETURNING id INTO f_idx;
INSERT INTO artefakt(typ,bezeichner) VALUES('datei',base||'src/Infrastructure/Http/Router.php') RETURNING id INTO f_rt;
INSERT INTO artefakt(typ,bezeichner) VALUES('datei',base||'src/Infrastructure/Http/DokuListeAction.php') RETURNING id INTO f_dla;
INSERT INTO artefakt(typ,bezeichner) VALUES('datei',base||'src/Infrastructure/Http/DokuDetailAction.php') RETURNING id INTO f_dda;
INSERT INTO artefakt(typ,bezeichner) VALUES('datei',base||'src/Infrastructure/Http/DokuSpeichernAction.php') RETURNING id INTO f_dsa;
INSERT INTO artefakt(typ,bezeichner) VALUES('datei',base||'src/Infrastructure/Persistence/PostgresDokumentationRepository.php') RETURNING id INTO f_repo;
INSERT INTO artefakt(typ,bezeichner) VALUES('datei',base||'src/Infrastructure/Content/MarkdownToHtml.php') RETURNING id INTO f_m2h;
INSERT INTO artefakt(typ,bezeichner) VALUES('datei',base||'src/Infrastructure/Content/HtmlToMarkdown.php') RETURNING id INTO f_h2m;
INSERT INTO artefakt(typ,bezeichner) VALUES('datei',base||'src/Infrastructure/Http/view/doku-liste.php') RETURNING id INTO f_vl;
INSERT INTO artefakt(typ,bezeichner) VALUES('datei',base||'src/Infrastructure/Http/view/doku-detail.php') RETURNING id INTO f_vd;
INSERT INTO artefakt(typ,bezeichner) VALUES('datei',base||'public/assets/tabelle.js') RETURNING id INTO f_tab;
INSERT INTO artefakt(typ,bezeichner) VALUES('datei',base||'public/assets/doku-editor.js') RETURNING id INTO f_ed;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('code_symbol','Demo\Infrastructure\Http\Router::dispatch',f_rt) RETURNING id INTO y_disp;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('code_symbol','Demo\Infrastructure\Http\DokuListeAction::__invoke',f_dla) RETURNING id INTO y_dla;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('code_symbol','Demo\Infrastructure\Persistence\PostgresDokumentationRepository::liste',f_repo) RETURNING id INTO y_liste;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('code_symbol','Demo\Infrastructure\Http\DokuDetailAction::__invoke',f_dda) RETURNING id INTO y_dda;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('code_symbol','Demo\Infrastructure\Persistence\PostgresDokumentationRepository::bySlug',f_repo) RETURNING id INTO y_byslug;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('code_symbol','Demo\Infrastructure\Content\MarkdownToHtml::render',f_m2h) RETURNING id INTO y_m2h;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('code_symbol','Demo\Infrastructure\Http\DokuSpeichernAction::__invoke',f_dsa) RETURNING id INTO y_dsa;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('code_symbol','Demo\Infrastructure\Content\HtmlToMarkdown::convert',f_h2m) RETURNING id INTO y_h2m;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('code_symbol','Demo\Infrastructure\Persistence\PostgresDokumentationRepository::speichereInhalt',f_repo) RETURNING id INTO y_save;
INSERT INTO artefakt(typ,bezeichner) VALUES('datenbank','demo_karlkratz_com') RETURNING id INTO db;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('tabelle','public.dokumentation',db) RETURNING id INTO t_doku;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('tabelle','public.history_dokumentation',db) RETURNING id INTO t_hist;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('spalte','public.dokumentation.slug',t_doku) RETURNING id INTO c_slug;
INSERT INTO artefakt(typ,bezeichner,parent_id) VALUES('spalte','public.dokumentation.body',t_doku) RETURNING id INTO c_body;
INSERT INTO artefakt(typ,bezeichner) VALUES('schnittstelle','GET /doku') RETURNING id INTO api_l;
INSERT INTO artefakt(typ,bezeichner) VALUES('schnittstelle','GET /doku/{slug}') RETURNING id INTO api_s;
INSERT INTO artefakt(typ,bezeichner) VALUES('schnittstelle','POST /doku/{slug}') RETURNING id INTO api_v;
-- Prozess 1: Uebersicht lesen (GET /doku)
INSERT INTO prozesse(slug,titel,beschreibung,tags) VALUES('dokumentation-lesen','Dokumentation: Übersicht (GET /doku)',
E'Liste aller Dokumentationen anzeigen.',ARRAY['doku','read']) RETURNING id INTO p_lesen;
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_lesen,'GET /doku empfangen',a_bes,sy_web) RETURNING id INTO l1;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(l1,api_l,'eingabe'),(l1,f_idx,'beruehrt');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_lesen,'Anfrage routen',a_app,sy_web) RETURNING id INTO l2;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(l2,y_disp,'beruehrt'),(l2,f_rt,'beruehrt');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_lesen,'Übersicht-Action ausführen',a_app,sy_web) RETURNING id INTO l3;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(l3,y_dla,'beruehrt'),(l3,f_dla,'beruehrt');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_lesen,'Dokumentationen laden',a_app,sy_pg) RETURNING id INTO l4;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(l4,y_liste,'beruehrt'),(l4,f_repo,'beruehrt'),(l4,t_doku,'eingabe'),(l4,db,'beruehrt');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_lesen,'Tabelle rendern',a_app,sy_web) RETURNING id INTO l5;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(l5,f_vl,'ausgabe'),(l5,f_tab,'beruehrt');
INSERT INTO schritt_vorgaenger(schritt_id,vorgaenger_id) VALUES(l2,l1),(l3,l2),(l4,l3),(l5,l4);
-- Prozess 2: Anzeigen (GET /doku/{slug})
INSERT INTO prozesse(slug,titel,beschreibung,tags) VALUES('dokumentation-anzeigen','Dokumentation anzeigen (GET /doku/{slug})',
E'Eine Dokumentation als HTML anzeigen und zur Bearbeitung öffnen.',ARRAY['doku','read']) RETURNING id INTO p_zeigen;
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_zeigen,'GET /doku/{slug} empfangen',a_bes,sy_web) RETURNING id INTO z1;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(z1,api_s,'eingabe');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_zeigen,'Detail-Action ausführen',a_app,sy_web) RETURNING id INTO z2;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(z2,y_dda,'beruehrt'),(z2,f_dda,'beruehrt');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_zeigen,'Nach Slug laden',a_app,sy_pg) RETURNING id INTO z3;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(z3,y_byslug,'beruehrt'),(z3,c_slug,'eingabe'),(z3,c_body,'eingabe');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_zeigen,'Markdown zu HTML',a_app,sy_web) RETURNING id INTO z4;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(z4,y_m2h,'beruehrt'),(z4,f_m2h,'beruehrt');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_zeigen,'Detail und Editor rendern',a_app,sy_web) RETURNING id INTO z5;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(z5,f_vd,'ausgabe'),(z5,f_ed,'beruehrt');
INSERT INTO schritt_vorgaenger(schritt_id,vorgaenger_id) VALUES(z2,z1),(z3,z2),(z4,z3),(z5,z4);
-- Prozess 3: Speichern (POST /doku/{slug})
INSERT INTO prozesse(slug,titel,beschreibung,tags) VALUES('dokumentation-speichern','Dokumentation speichern (POST /doku/{slug})',
E'Bearbeiteten Inhalt sanitisieren, als Markdown speichern, Historie schreiben.',ARRAY['doku','update']) RETURNING id INTO p_speichern;
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_speichern,'POST /doku/{slug} empfangen',a_bes,sy_web) RETURNING id INTO s1;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(s1,api_v,'eingabe');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_speichern,'Speichern-Action ausführen',a_app,sy_web) RETURNING id INTO s2;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(s2,y_dsa,'beruehrt'),(s2,f_dsa,'beruehrt');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_speichern,'HTML zu Markdown wandeln',a_app,sy_web) RETURNING id INTO s3;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(s3,y_h2m,'beruehrt'),(s3,f_h2m,'beruehrt');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_speichern,'Markdown persistieren',a_app,sy_pg) RETURNING id INTO s4;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(s4,y_save,'beruehrt'),(s4,c_body,'ausgabe');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_speichern,'Historie schreiben (Trigger)',a_db_akt,sy_pg) RETURNING id INTO s5;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(s5,t_hist,'ausgabe');
INSERT INTO prozess_schritt(prozess_id,name,akteur_id,system_id) VALUES(p_speichern,'Weiterleitung PRG',a_app,sy_web) RETURNING id INTO s6;
INSERT INTO schritt_artefakt(schritt_id,artefakt_id,beziehung) VALUES(s6,api_s,'ausgabe');
INSERT INTO schritt_vorgaenger(schritt_id,vorgaenger_id) VALUES(s2,s1),(s3,s2),(s4,s3),(s5,s4),(s6,s5);
END $$;
Frühere Versionen
| Version | Zeitpunkt | Operation |
|---|---|---|
| 12 | 2026-07-16 19:01:40.807458+02 | UPDATE |