# RiccardoAdvisor – Aromenberater & Geräteberater

Beide Berater laufen auf derselben Engine, nur mit unterschiedlichen Fragen und Bewertungsregeln.

## Seiten
- `/aromenberater` – Geschmack, Süße, Kühle, säuerlich, fertig oder selbst mischen, Ausschlüsse
- `/geraeteberater` – Erfahrung, Zugverhalten, Akku, Budget

Die Fragen werden einzeln durchgeklickt (Fortschrittsbalken, Zurück, Überspringen). Ohne JavaScript
stehen alle Fragen untereinander und das Formular funktioniert als normales Formular. Die Antworten
stehen in der Adresse (`?q[taste][]=frucht…`), Ergebnisse sind damit teilbar und verlinkbar.

## Bewertung
Jeder Artikel bekommt ein Profil:
1. gepflegte Daten zuerst – Eigenschaften („Geschmack“, „Liquid-Typ“) und Zusatzfelder `rz_notes`,
   `rz_profile` (fruchtig, suess, frisch, saeuerlich, cremig 0–5), `rz_specs`, `rz_is_device`
2. Lücken füllt das Geschmacks-Wörterbuch (`FlavorKeywords`, ~80 Begriffe deutsch/englisch) aus Name
   und Beschreibung – neue Artikel tauchen also ohne Pflegeaufwand sinnvoll auf

Die Antwortoptionen tragen die Gewichtungen (Feld `weights`, im Admin pflegbar):

| Aromenberater | Bedeutung |
|---|---|
| `groups`, `filterGroups` | Geschmacksgruppe, optional als harter Filter |
| `notes` | einzelne Noten (Mango, Erdbeere …) |
| `axes` | Zielwerte je Achse, der Abstand zählt |
| `liquidTypes`, `filterTypes` | Nikotinsalz, Longfill, Basis / Shot |
| `avoid` | schließt Artikel mit dieser Note/Gruppe aus |

| Geräteberater | Bedeutung |
|---|---|
| `builds`, `filterBuilds` | Bauart, Reihenfolge = Empfehlungsreihenfolge |
| `batteryMin`, `wattMin`, `wattMax`, `tankMin` | Technikfenster |
| `priceMax`, `priceMin` | Budget (innerhalb des Budgets zählt der Abstand) |

Liegen die Treffer dicht zusammen, zeigt die Seite „Top-Empfehlung“ statt einer Prozentzahl –
eine Zahl, die bei allen fast gleich ist, sagt nichts aus.

## Admin
*Inhalte → Berater*: Fragen je Berater anlegen, sortieren, Antworten samt Gewichtungen pflegen.
Kürzel müssen je Berater eindeutig sein; der Startbestand kommt aus der Migration und ist änderbar.

## Grenzen
- Der Artikelpool wird pro Aufruf geladen (max. 250 Artikel). Für ein deutlich größeres Sortiment
  sollte das Profil vorberechnet und gespeichert werden.
- Für den Geräteberater fehlen im Sortiment noch Angaben zu Zugverhalten (MTL/DL) und Wartung –
  die Empfehlung stützt sich bislang auf Bauart, Akku, Leistung, Tank und Preis.

## Build
`bin/build-storefront.sh` bzw. `bin/build-administration.sh` (als root, danach `chown -R www-data:www-data`).

## Ein Berater für Gerät und Geschmack (seit 18.09.2026)

Aromen- und Geräteberater sind zusammengelegt: **`/berater`**. Die erste Frage ist das Ziel:

| Ziel | `?ziel=` | Fragen | Ergebnis |
|---|---|---|---|
| Ein Gerät finden | `geraet` | Geräte-Fragen | bis zu 6 Geräte |
| Eine Sorte finden | `aroma` | Geschmacks-Fragen | bis zu 6 Sorten |
| Beides | `beides` | erst Gerät, dann Geschmack | je 3 Geräte und Sorten + Übergang zum Starterset |

Die alten Adressen `/aromenberater` und `/geraeteberater` leiten dauerhaft (301) mit
vorgewähltem Ziel weiter, Links von außen und aus älteren Mails funktionieren also weiter.
Mit vorgewähltem Ziel beginnt der Berater direkt bei der ersten Frage dieses Ziels.

Fragen und Gewichte werden wie bisher unter *Inhalte → Berater* gepflegt – getrennt nach
Ablauf (Gerät / Geschmack). Die Fragencodes müssen über beide Abläufe eindeutig sein, weil
bei „beides" alle Antworten in einem Formular stehen.

Ohne JavaScript stehen alle Fragen untereinander; der Server wertet nur die aus, die zum
gewählten Ziel gehören.
