# GOG Email Attachment Workflow — Gesundheitsdokumente von Gmail

## Workflow: Anhänge aus Gmail herunterladen und verarbeiten

### 1. Unread Emails suchen

```bash
GOG_KEYRING_PASSWORD=<GOG_KEYRING_PASSWORD> gog -a friday.uplink@gmail.com gmail search 'is:unread' --max 10 --json
```

### 2. Attachment-IDs aus Threads extrahieren

```bash
GOG_KEYRING_PASSWORD=<GOG_KEYRING_PASSWORD> gog -a friday.uplink@gmail.com gmail thread <thread_id> -j
```

In der JSON-Antwort: `payload.parts[].filename` und `payload.parts[].body.attachmentId`

### 3. Attachments herunterladen

```bash
GOG_KEYRING_PASSWORD=<GOG_KEYRING_PASSWORD> gog -a friday.uplink@gmail.com gmail attachment <message_id> <attachment_id> -y -v
```

Output zeigt den Pfad: `~/.config/gogcli/gmail-attachments/<long_name>.bin`

### 4. Dateien umbenennen und verschieben

**Problem:** GOG speichert mit extrem langen Dateinamen (Base64-IDs). `shutil.move()` und `os.rename()` schlagen mit `OSError: [Errno 36] File name too long` fehl.

**Lösung:**
```bash
# Kopiere zuerst (open() funktioniert auch mit langem Pfad)
cp "/path/to/long_name.bin" /home/agent/.hermes/assets/Gesundheit/inbox/260506_Bericht.pdf

# Dann lösche Original
rm "/path/to/long_name.bin"
```

Oder: Erst mit `mv` kurz umbenennen, dann kopieren.

### 5. Dokument klassifizieren und verarbeiten

- **Arztbericht** → PyMuPDF Volltext, Kategorie `BEFUNDE`, Archiv `archiv/befunde/`
- **Laborbericht** → Camelot/pdfplumber, Kategorie `LABOR`, Archiv `archiv/laborberichte/`
- **Excel (.xlsx)** → openpyxl lesen, als Volltext speichern, Kategorie `BEFUNDE`
- **Dokumentendatum** aus Dokument extrahieren und im Text annotieren

### 6. Datenbank-Eintrag erstellen

```python
cursor.execute("""
    INSERT INTO dokumente (datei_name, dateipfad, daten_typ, status, kategorie,
                           extrahierte_inhalte, verarbeite_datum)
    VALUES (?, ?, ?, ?, ?, ?, ?)
""", (
    '260506_Bericht.pdf',
    '/pfad/zur/datei.pdf',
    'pdf', 'eingearbeitet', 'BEFUNDE',
    '[DOKUMENTDATUM: 2026-05-06]\n[BEHANDLER: ...]\n\n' + full_text,
    '2026-05-08 19:14:28'
))
```

### Pitfalls

- **`GOG_KEYRING_PASSWORD=<GOG_KEYRING_PASSWORD>`** muss bei jedem gog-Befehl gesetzt werden
- **`--json`** Flag für parsebare JSON-Ausgabe
- **Dateinamen zu lang** → `shutil.copy2()` statt `shutil.move()` verwenden, dann `os.remove()`
- **Excel-Dateien** → `pandas` nicht verfügbar, `openpyxl` verwenden
- **CHECK-Constraints** → `daten_typ` muss `'pdf'` oder `'image'` sein (kein `'xlsx'`!)
- **Status** → `'neu'`, `'eingearbeitet'` oder `'archiviert'` (kein `'verarbeitet'`!)