# 📚 EspoCRM Dokumentations-Index

**Schneller Zugriff auf alle Dokumentations-Ressourcen**

---

## 🎯 Quick Links für AI Agents

### START HIER ⭐
1. **[docs/ESPOCRM_BEST_PRACTICES.md](docs/ESPOCRM_BEST_PRACTICES.md)** - Vollständiges Entwickler-Handbuch
2. **[docs/README.md](docs/README.md)** - Dokumentations-Navigation & Workflow-Guide
3. `python3 custom/scripts/ki_project_overview.py` - Aktueller Projekt-Status für AI

### Essentials
- **[docs/tools/QUICKSTART.md](docs/tools/QUICKSTART.md)** - 5-Minuten Quick Start
- **[custom/scripts/validate_and_rebuild.py](custom/scripts/validate_and_rebuild.py)** - Haupt-Validierungs-Tool
- **Validierung ausführen:** `python3 custom/scripts/validate_and_rebuild.py`

---

## 📁 Dokumentations-Struktur

```
custom/
├── README.md                          ← Custom Actions Blueprint (Architektur)
├── CUSTOM_DIRECTORY.md                ← Verzeichnisstruktur-Übersicht
│
├── docs/                              ← 🆕 ZENTRALE DOKUMENTATION
│   ├── README.md                      ← Dokumentations-Navigation (START)
│   ├── ESPOCRM_BEST_PRACTICES.md     ← ⭐ HAUPTDOKUMENTATION
│   ├── TESTERGEBNISSE_JUNCTION_TABLE.md  ← Junction Table Guide
│   ├── ENTWICKLUNGSPLAN_ENTWICKLUNGEN.md ← Puls-System Spezifikation
│   │
│   ├── tools/                         ← Tool-Dokumentation
│   │   ├── QUICKSTART.md
│   │   ├── VALIDATION_TOOLS.md
│   │   ├── E2E_TESTS_README.md
│   │   ├── KI_OVERVIEW_README.md
│   │   └── VALIDATOR_README.md
│   │
│   └── workflows/                     ← Workflow-Dokumentation
│       └── README.md
│
├── scripts/                           ← Entwicklungs-Tools
│   ├── validate_and_rebuild.py       ← Haupt-Validierungs-Tool
│   ├── e2e_tests.py                  ← End-to-End Tests
│   ├── ki_project_overview.py        ← Projekt-Analyse für AI
│   ├── espocrm_api_client.py         ← API Client Library
│   ├── ki-overview.sh                ← Legacy Overview Script
│   ├── run_e2e_tests.sh              ← E2E Test Runner
│   └── junctiontabletests/           ← Junction Table Tests
│
└── workflows/                         ← Workflow JSON-Definitionen
    └── README.md                     ← Workflow-Befehle
```

---

## 📖 Dokumentations-Kategorien

### 1️⃣ Entwickler-Handbuch

#### [docs/ESPOCRM_BEST_PRACTICES.md](docs/ESPOCRM_BEST_PRACTICES.md) ⭐
**Das Hauptdokument - Start hier!**

**Inhalt:**
- ✅ Projekt-Übersicht & System-Architektur
- ✅ Architektur-Prinzipien (Clean Code, 3-Schichten)
- ✅ Entity-Entwicklung (Templates, Naming, i18n)
- ✅ Relationship-Patterns (One-to-Many, Many-to-Many, Junction)
- ✅ API-Entwicklung (REST, Custom Endpoints)
- ✅ Hook-Entwicklung (Entity Lifecycle Events)
- ✅ Workflow-Management
- ✅ Testing & Validierung
- ✅ Fehlerbehandlung & Troubleshooting
- ✅ Deployment-Prozess

**Wann verwenden:**
- Neuen AI Agent briefen
- Entity erstellen
- Relationship implementieren
- API-Endpoint entwickeln
- Hook für Validierung/Berechnung erstellen
- Fehler debuggen

---

### 2️⃣ Spezial-Themen

#### [docs/TESTERGEBNISSE_JUNCTION_TABLE.md](docs/TESTERGEBNISSE_JUNCTION_TABLE.md)
**Junction Tables mit additionalColumns**

**Inhalt:**
- Many-to-Many Relationships mit Zusatzfeldern
- Junction Entity als API-Endpoint
- API-CRUD Operationen
- Vollständige Code-Beispiele
- ⚠️ UI-Panel Warnung (405 Fehler)

**Wann verwenden:**
- Many-to-Many mit Zusatzfeldern implementieren
- Junction Entity API nutzen
- additionalColumns verstehen

---

#### [docs/ENTWICKLUNGSPLAN_ENTWICKLUNGEN.md](docs/ENTWICKLUNGSPLAN_ENTWICKLUNGEN.md)
**Puls-System (CPuls) Spezifikation**

**Inhalt:**
- Posteingangs-System mit KI-Analyse
- Team-basierte Dokumenten-Workflows
- First-Read-Closes Prinzip
- Entity-Definitionen CPuls, CPulsTeamZuordnung
- Middleware-Architektur

**Wann verwenden:**
- CPuls-Entity weiterentwickeln
- Dokumenten-Workflow verstehen
- KI-Integration planen

---

### 3️⃣ Architektur & Struktur

#### [README.md](README.md)
**Custom Actions - Implementierungsprinzip**

**Inhalt:**
- Drei-Schichten-Architektur
- Custom Button Actions Blueprint
- Entity-Erstellung mit Relationen
- Code-Templates
- Sicherheit & ACL

**Wann verwenden:**
- Custom Button Action erstellen
- Controller/Service Pattern verstehen
- Architektur-Overview benötigen

---

#### [CUSTOM_DIRECTORY.md](CUSTOM_DIRECTORY.md)
**Verzeichnisstruktur-Übersicht**

**Inhalt:**
- Vollständige custom/ Struktur
- Backend (Espo/Custom/)
- Frontend (client/custom/)
- Metadata-Organisation
- Scripts & Workflows

**Wann verwenden:**
- Datei-Platzierung nachschlagen
- Verzeichnis-Organisation verstehen
- Neue Dateien korrekt anlegen

---

### 4️⃣ Tool-Dokumentation

#### [docs/tools/QUICKSTART.md](docs/tools/QUICKSTART.md)
**5-Minuten Quick Start**

```bash
python3 custom/scripts/validate_and_rebuild.py
```

---

#### [docs/tools/VALIDATION_TOOLS.md](docs/tools/VALIDATION_TOOLS.md)
**Validierungs-Tools Details**
- PHP-CLI (php -l)
- CSSLint
- JSHint
- Integration

---

#### [docs/tools/E2E_TESTS_README.md](docs/tools/E2E_TESTS_README.md)
**End-to-End Test Framework**
- CRUD-Tests
- Relationship-Tests
- Konfiguration

---

#### [docs/tools/KI_OVERVIEW_README.md](docs/tools/KI_OVERVIEW_README.md)
**KI-Projekt-Übersicht Tool**

```bash
python3 custom/scripts/ki_project_overview.py > /tmp/project-overview.txt
```

---

### 5️⃣ Workflow-Management

#### [docs/workflows/README.md](docs/workflows/README.md)
**Workflow-Format & Management**

**Befehle:**
```bash
# Liste
php custom/scripts/workflow_manager.php list

# Import
php custom/scripts/workflow_manager.php import custom/workflows/my-workflow.json

# Export
php custom/scripts/workflow_manager.php export
```

---

## 🛠️ Wichtigste Tools

| Tool | Zweck | Befehl |
|------|-------|--------|
| **validate_and_rebuild.py** | 🎯 Validierung + Rebuild + E2E + Fehlerlog | `python3 custom/scripts/validate_and_rebuild.py` |
| **ki_project_overview.py** | 📊 Projekt-Analyse für AI | `python3 custom/scripts/ki_project_overview.py` |
| **e2e_tests.py** | 🧪 End-to-End CRUD Tests | `python3 custom/scripts/e2e_tests.py` |

**NEU in validate_and_rebuild.py:**
- ✅ Automatische Fehlerlog-Analyse bei Rebuild-Fehlern
- ✅ Zeigt letzte 50 Log-Zeilen
- ✅ Filtert ERROR/WARNING/EXCEPTION
- ✅ Gibt Log-File-Pfad aus

---

## 🎓 Typische Workflows

### 1. Neuen AI Agent briefen

```bash
# 1. Hauptdokumentation lesen
cat custom/docs/ESPOCRM_BEST_PRACTICES.md

# 2. Aktuellen Projekt-Status holen
python3 custom/scripts/ki_project_overview.py > /tmp/project-overview.txt

# 3. Dokumentations-Navigation
cat custom/docs/README.md
```

---

### 2. Neue Entity entwickeln

```bash
# 1. Template nachschlagen
cat custom/docs/ESPOCRM_BEST_PRACTICES.md | grep -A 50 "Entity Definition Template"

# 2. Entity-Dateien erstellen (entityDefs, scopes, i18n)

# 3. Validierung + Rebuild
python3 custom/scripts/validate_and_rebuild.py
```

---

### 3. Relationship implementieren

```bash
# 1. Pattern nachschlagen
cat custom/docs/ESPOCRM_BEST_PRACTICES.md | grep -A 100 "Relationship-Patterns"

# 2. Links konfigurieren

# 3. Validierung (prüft bidirektionale Konsistenz)
python3 custom/scripts/validate_and_rebuild.py
```

---

### 4. Junction Table mit additionalColumns

```bash
# 1. Vollständige Anleitung
cat custom/docs/TESTERGEBNISSE_JUNCTION_TABLE.md

# 2. Implementierung (Entity + Controller + Service)

# 3. Validierung
python3 custom/scripts/validate_and_rebuild.py
```

---

### 5. Fehler debuggen

```bash
# 1. Validierung ausführen (zeigt automatisch Fehlerlog)
python3 custom/scripts/validate_and_rebuild.py

# 2. Troubleshooting Guide
cat custom/docs/ESPOCRM_BEST_PRACTICES.md | grep -A 200 "Troubleshooting"
```

---

## 🆘 Support & Hilfe

### Bei Problemen:

1. **Fehlerlog-Analyse:**
   ```bash
   python3 custom/scripts/validate_and_rebuild.py
   # → Zeigt automatisch Fehlerlog bei Rebuild-Fehlern
   ```

2. **Troubleshooting Guide:**
   ```bash
   cat custom/docs/ESPOCRM_BEST_PRACTICES.md | grep -A 300 "Troubleshooting"
   ```

3. **Häufige Fehler:**
   - Layout `false` → `{}` ändern
   - i18n fehlt → beide Sprachen (de_DE + en_US) anlegen
   - Relationship kaputt → bidirektional prüfen (foreign)
   - ACL 403 → Rechte in Admin UI setzen
   - 405 Fehler → Keine additionalColumns in UI-Panels!

---

## 📊 System-Info

- **EspoCRM Version:** 9.3.2
- **PHP Version:** 8.2.30
- **Database:** MariaDB 12.2.2
- **Docker Container:** espocrm, espocrm-db
- **Workspace:** `/var/lib/docker/volumes/vmh-espocrm_espocrm/_data`

---

## 🔄 Reorganisation (9. März 2026)

**Änderungen:**
- ✅ Alle Dokumentation zentralisiert in `custom/docs/`
- ✅ Tool-Dokumentation in `custom/docs/tools/`
- ✅ Workflow-Dokumentation in `custom/docs/workflows/`
- ✅ Neue Hauptdokumentation: `ESPOCRM_BEST_PRACTICES.md`
- ✅ Test-Scripts organisiert in `custom/scripts/junctiontabletests/`
- ✅ validate_and_rebuild.py erweitert um automatische Fehlerlog-Ausgabe

**Migration:**
- `scripts/KI_OVERVIEW_README.md` → `docs/tools/`
- `scripts/VALIDATION_TOOLS.md` → `docs/tools/`
- `scripts/E2E_TESTS_README.md` → `docs/tools/`
- `scripts/QUICKSTART.md` → `docs/tools/`
- `scripts/VALIDATOR_README.md` → `docs/tools/`
- `workflows/README.md` → `docs/workflows/`
- `TESTERGEBNISSE_JUNCTION_TABLE.md` → `docs/`
- `ENTWICKLUNGSPLAN_ENTWICKLUNGEN.md` → `docs/`

---

**Letzte Aktualisierung:** 9. März 2026

**Für Fragen:** Siehe `custom/docs/ESPOCRM_BEST_PRACTICES.md`
