# shape3d Kurzbeschreibung Diese App zeigt eine 3D-Druck-Materialmatrix: Welche Materialien laufen auf welchen Druckern, inkl. Eigenschaften, Anforderungen und Sicherheits-/Emissionsindikatoren. Die Oberfläche lädt Daten per API und rendert sie als Tabelle mit optionalem Drucker-Vergleich. Was wird angezeigt - Materialliste mit Metadaten (z. B. Eigenschaften, Tg, Düsen-/Plattenanforderung, Anwendung, Kinder-Sicherheit, Emission). - Pro ausgewähltem Drucker eine Kompatibilitäts-Spalte (voll/teilweise/mit Zusatz/nicht unterstützt). - Auswahl: Einzelansicht (ein Drucker) oder Vergleich (mehrere Drucker). Datenquellen (flexibel gehalten) Die App ist so aufgebaut, dass UI und Datenzugriff getrennt sind. Je nach Reimport/Neustrukturierung können Dateinamen und Pfade abweichen, solange die folgenden Rollen weiterhin existieren: - Einstiegspunkt (z. B. `public/index.php`): Lädt eine Seite/Ansicht, die das Layout und die Matrix enthält. - Matrix-Ansicht (z. B. `partials/landing/main/material-matrix.php`): Enthält das Markup + JS, das die Daten lädt und die Tabelle rendert. - API-Endpoints (z. B. `public/api/*`): Stellen JSON bereit für - Drucker-Liste - Material-Liste - Drucker-spezifische Material-Kompatibilität - DB-Zugriff (z. B. `tools/db.php`): Baut eine DB-Verbindung und wird von den API-Endpunkten genutzt. Aktuelle DB-Struktur (Schema-Orientierung) Das Schema besteht aus drei Kern-Tabellen, die für die Materialmatrix benötigt werden: 1) materials - Stammdaten der Materialien (Code/Name/Short-Desc, Eigenschaften, Tg, Anforderungen, Anwendung). - Flags für Kinder-Sicherheit und Emission. - `is_active` steuert Sichtbarkeit. 2) printers - Stammdaten der Drucker (Name/Brand/Modell, Temperaturgrenzen, Bauvolumen, Notes). - `is_active` steuert Sichtbarkeit. 3) printer_material_support - Zuordnung Drucker ↔ Material (M:N). - `support_level` beschreibt die Kompatibilität. - `partial_reason` / `extra_info` liefern Detailhinweise. Datenfluss (funktional) 1) UI lädt die Druckerliste. 2) Für den gewählten Drucker (oder mehrere) werden Materialien inkl. Support-Level geladen. 3) Die Tabelle rendert Materialinfos und pro Drucker eine Support-Badge-Zelle. Hinweise für Reimport/Neuaufbau - Die Datei-/Ordnernamen dürfen sich ändern, solange die Rollen (UI, API, DB-Zugriff) abgebildet sind. - Die API muss weiterhin JSON liefern, das die Matrix-Ansicht erwarten kann: - `printer`: Drucker-Datensatz - `materials`: Liste der Materialien mit optionalem `support_level` + Zusatzinfos. - Die Datenbank kann migriert werden, solange Material-, Drucker- und Zuordnungsdaten semantisch erhalten bleiben. Sicherheit - Zugangsdaten sollten nicht im Repo liegen. Nutze ENV-Variablen oder separate Configs pro Environment.