# RiccardoManuals – Anleitungs-Datenbank

Eigene Datenbank für Bedienungs- und Kurzanleitungen (PDF) mit Storefront-Seite
`/anleitungen` und einem Anleitungs-Block auf der Artikelseite.

## Datenmodell

| Tabelle | Inhalt |
| --- | --- |
| `riccardo_manual` | Titel, Art (Bedienungsanleitung, Kurzanleitung, …), Gerätename, Stand/Version, Sprache, Suchbegriffe, Download-Zähler, Position, `media_id` (PDF), Hersteller, Geräteserie (`property_group_option`) |
| `riccardo_manual_product` | Zuordnung Anleitung ↔ Artikel (n:m) |

Eine Anleitung findet ihren Artikel auf drei Wegen, in dieser Reihenfolge:
direkte Zuordnung → Geräteserie (Merkmal „Geräteserie“) → Hersteller.

## Storefront

- `/anleitungen` – Liste mit Suche, Filter nach Hersteller und Art
  (`frontend.riccardo.manuals.page`).
- `/anleitungen/{manualId}` – zählt den Download und leitet auf die PDF-Datei
  weiter (`frontend.riccardo.manuals.download`).
- Artikelseite: Abschnitt „Anleitungen“ (Theme-Template
  `element/cms-element-product-description-reviews.html.twig`). Geräte ohne
  Anleitung bekommen einen Hinweis mit Link auf die Datenbank.

## Import

```
bin/console riccardo:manuals:import <ordner> [--dry-run]
```

Liest alle PDFs eines Ordners ein und leitet aus dem Dateinamen ab:

- Hersteller (Abgleich mit `product_manufacturer`, längster Treffer am Anfang),
- Gerätename (Rest des Dateinamens),
- Art (`Bedienungsanleitung`, `Kurzanleitung`, `Schnellstart`, …),
- Stand (vierstellige Jahreszahl),
- Geräteserie über das Merkmal „Geräteserie“,
- passende Artikel über Herstellername + Gerätename.

Beispiel-Dateinamen: `Uwell_Crown-5_Kurzanleitung.pdf`,
`Vaporesso XROS 4 Nano - Bedienungsanleitung 2024.pdf`.

Der Lauf ist wiederholbar: die Anleitungs-ID wird aus dem Dateinamen gebildet,
bereits vorhandene Anleitungen werden übersprungen, eine bereits hochgeladene
PDF-Datei wird wiederverwendet. Fehler bei einer Datei brechen den Lauf nicht ab.

## Pflege

Anleitungen werden derzeit per CLI importiert; Titel, Art, Stand und die
Artikel-Zuordnung lassen sich danach über die Admin-API der Entität
`riccardo_manual` korrigieren. Ein Admin-Modul ist noch nicht gebaut.

## Hinweis

Hersteller liegen in der Wawi teils doppelt an (z. B. „Uwell“ zweimal). Der
Import ordnet Artikel deshalb über den Herstellernamen zu, nicht über die ID.
