[SAM-08] Sammlung und Wunschliste aus BGG importieren #25

Open
opened 2026-11-02 13:42:49 +00:00 by cschlaefke · 4 comments
Owner

Story

Als BGG-Nutzer
möchte ich Sammlung, Wunschliste und vorbestellte Spiele von BGG übernehmen,
damit ich meine bestehende Sammlung nicht abtippen muss.

Akzeptanzkriterien

Quelle: requirements/20-r1-akzeptanzkriterien.md § SAM-08 (Referenz in Tests/PR: „SAM-08 Kriterium n“), Stand 2026-11-02 inkl. Klärungen, N12 und N12a

  • 1. Gegeben ein verknüpftes BGG-Konto, wenn ich den Import starte, dann sehe ich den Fortschritt und danach eine Zusammenfassung: übernommen, bereits vorhanden, vorläufig angelegt (Klärung 12).
  • 2. Gegeben der Import, dann werden die BGG-Status so übernommen: „owned“ → Sammlung; „wishlist“ und „want to buy“ → Wunschliste; „preordered“ → Einkaufsliste; „want to play“ wird ignoriert. Ist ein Spiel bei BGG zugleich besessen und gewünscht, kommt es in die Sammlung (Klärungen 1, 34).
  • 3. Gegeben ein BGG-Spiel ist im Katalog über seine BGG-Kennung bekannt, dann wird es diesem Eintrag zugeordnet.
  • 4. Gegeben ein BGG-Spiel fehlt im Katalog, dann wird es automatisch als vorläufiger privater Eintrag (KAT-04) angelegt und übernommen, in der Zusammenfassung als „vorläufig angelegt“ gezeigt, und eine Meldung an den Admin entsteht automatisch (Klärung 12).
  • 5. Gegeben ich breche den Import ab oder er schlägt fehl, dann bleibt mein Bestand in einem konsistenten Zustand: nichts ist halb übernommen.
  • 6. Gegeben BGG antwortet mit einem Fehler oder einer Begrenzung, dann sehe ich eine verständliche Meldung und kann es später erneut versuchen.
  • 7. Gegeben der Importdialog, dann zeigt er „Powered by BGG“ mit Link.
  • 8. (neu) Gegeben ein Spiel meiner BGG-Wunschliste hat eine BGG-Priorität, dann wird sie so übernommen: 1–2 → hoch, 3 → mittel, 4–5 → niedrig (Klärung 34).
  • 9. (neu) Gegeben meine BGG-Sammlung oder -Wunschliste enthält Erweiterungen, dann werden sie ebenfalls importiert (Klärung 34).
  • 10. (neu) Gegeben der Import legt nach Kriterium 4 automatisch Meldungen an, dann zählen sie nicht auf das Tageslimit aus KAT-04 Kriterium 7, sind als „aus Import“ gekennzeichnet und je Spiel (BGG-Kennung) dedupliziert: Für ein Spiel, zu dem schon eine offene Meldung aus einem Import besteht, entsteht keine weitere (N12). Die Deduplizierung gilt je Nutzer: Jeder Nutzer hat höchstens eine offene Import-Meldung je BGG-Spiel; Meldungen verschiedener Nutzer zum selben Spiel bleiben getrennt und werden beim Konto-Löschen mit dem jeweiligen Nutzer gelöscht (N12a).

Querschnitt

Es gelten alle Querschnittskriterien aus 20-r1-akzeptanzkriterien.md § „Querschnitt für R1“ (Datenschutz QUE-04, Sicherheit der Daten, Sprachen QUE-05, Barrierefreiheit QUE-06, Zustände/Fehler/Netz, Plattformen).
Besonders relevant: Zustände, Fehler und Netz Kriterium 1–3 (Fortschritt, Fehler, keine halben Daten), Barrierefreiheit Kriterium 1 (Fortschritt für Screenreader), Sicherheit der Daten Kriterium 1.

Nicht im Scope

  • Automatischer Hintergrund-Abgleich (F9)
  • Import von Partien (Plays) aus BGG (nicht gefordert)
  • BGG-Status „want to play“ (Klärung 34)

Klärungen

Verbindlich laut requirements/r1-klaerungen.md (2026-11-02):

  • 1: Ein Spiel steht in genau einer Liste; besessen und gewünscht → Sammlung → Kriterium 2.
  • 12: Fehlende BGG-Spiele werden automatisch als vorläufige private Einträge angelegt; Zusammenfassung zeigt „vorläufig angelegt“; Meldung an den Admin entsteht automatisch → Kriterien 1, 4.
  • 34: owned → Sammlung; wishlist und want to buy → Wunschliste; preordered → Einkaufsliste; want to play ignoriert; Priorität 1–2 hoch, 3 mittel, 4–5 niedrig; Erweiterungen werden importiert → Kriterien 2, 8, 9.
  • N12: Automatisch beim Import erzeugte Meldungen zählen nicht auf das Tageslimit; sie sind je Spiel (BGG-ID) dedupliziert und als „aus Import“ gekennzeichnet → Kriterium 10 (und KAT-04 #13 Kriterium 7).
  • N12a: Deduplizierung je Nutzer und BGG-ID; Meldungen verschiedener Nutzer bleiben getrennt → Kriterium 10.

Offene Fragen

Keine.

Planung

  • Epic: SAM Sammlung & Listen
  • Priorität: Should (R1 darf laut S1 ohne BGG-Import starten, wenn die Lizenz fehlt)
  • Größe: XL
  • Etappe: R1.4 Abschluss (nur mit BGG-Lizenz, S1)
  • Abhängigkeiten: SAM-07 (#24), SAM-01 (#6), SAM-04 (#8), SAM-05 (#9, neu wegen „preordered“ → Einkaufsliste), KAT-05 (#2, bgg_id), KAT-04 (#13); externe Voraussetzung: BGG-Lizenz (S1)

Mögliche Schnitte für die Spec

  • SAM-08a Import Sammlung inkl. Zuordnung, vorläufiger Einträge, automatischer Meldungen und Zusammenfassung (Kriterien 1–4, 7, 9, 10)
  • SAM-08b Import Wunsch- und Einkaufsliste inkl. Prioritäten (Kriterien 2, 8)
  • SAM-08c Abbruch, Fehler, Rate-Limit (Kriterien 5–6)

Referenzen

  • Akzeptanzkriterien: requirements/20-r1-akzeptanzkriterien.md § SAM-08
  • Klärungen: requirements/r1-klaerungen.md (inkl. N12, N12a)
  • Story-Entwurf: requirements/r1-story-entwurf.md (freigegeben 2026-11-02)
  • Backlog: requirements/backlog.md
## Story **Als** BGG-Nutzer **möchte ich** Sammlung, Wunschliste und vorbestellte Spiele von BGG übernehmen, **damit** ich meine bestehende Sammlung nicht abtippen muss. ## Akzeptanzkriterien Quelle: `requirements/20-r1-akzeptanzkriterien.md` § SAM-08 (Referenz in Tests/PR: „SAM-08 Kriterium n“), Stand 2026-11-02 inkl. Klärungen, N12 und N12a - [ ] **1.** Gegeben ein verknüpftes BGG-Konto, wenn ich den Import starte, dann sehe ich den Fortschritt und danach eine Zusammenfassung: übernommen, bereits vorhanden, vorläufig angelegt (Klärung 12). - [ ] **2.** Gegeben der Import, dann werden die BGG-Status so übernommen: „owned“ → Sammlung; „wishlist“ und „want to buy“ → Wunschliste; „preordered“ → Einkaufsliste; „want to play“ wird ignoriert. Ist ein Spiel bei BGG zugleich besessen und gewünscht, kommt es in die Sammlung (Klärungen 1, 34). - [ ] **3.** Gegeben ein BGG-Spiel ist im Katalog über seine BGG-Kennung bekannt, dann wird es diesem Eintrag zugeordnet. - [ ] **4.** Gegeben ein BGG-Spiel fehlt im Katalog, dann wird es automatisch als vorläufiger privater Eintrag (KAT-04) angelegt und übernommen, in der Zusammenfassung als „vorläufig angelegt“ gezeigt, und eine Meldung an den Admin entsteht automatisch (Klärung 12). - [ ] **5.** Gegeben ich breche den Import ab oder er schlägt fehl, dann bleibt mein Bestand in einem konsistenten Zustand: nichts ist halb übernommen. - [ ] **6.** Gegeben BGG antwortet mit einem Fehler oder einer Begrenzung, dann sehe ich eine verständliche Meldung und kann es später erneut versuchen. - [ ] **7.** Gegeben der Importdialog, dann zeigt er „Powered by BGG“ mit Link. - [ ] **8.** *(neu)* Gegeben ein Spiel meiner BGG-Wunschliste hat eine BGG-Priorität, dann wird sie so übernommen: 1–2 → hoch, 3 → mittel, 4–5 → niedrig (Klärung 34). - [ ] **9.** *(neu)* Gegeben meine BGG-Sammlung oder -Wunschliste enthält Erweiterungen, dann werden sie ebenfalls importiert (Klärung 34). - [ ] **10.** *(neu)* Gegeben der Import legt nach Kriterium 4 automatisch Meldungen an, dann zählen sie nicht auf das Tageslimit aus KAT-04 Kriterium 7, sind als „aus Import“ gekennzeichnet und je Spiel (BGG-Kennung) dedupliziert: Für ein Spiel, zu dem schon eine offene Meldung aus einem Import besteht, entsteht keine weitere (N12). Die Deduplizierung gilt **je Nutzer**: Jeder Nutzer hat höchstens eine offene Import-Meldung je BGG-Spiel; Meldungen verschiedener Nutzer zum selben Spiel bleiben getrennt und werden beim Konto-Löschen mit dem jeweiligen Nutzer gelöscht (N12a). ## Querschnitt Es gelten alle Querschnittskriterien aus `20-r1-akzeptanzkriterien.md` § „Querschnitt für R1“ (Datenschutz QUE-04, Sicherheit der Daten, Sprachen QUE-05, Barrierefreiheit QUE-06, Zustände/Fehler/Netz, Plattformen). Besonders relevant: **Zustände, Fehler und Netz Kriterium 1–3** (Fortschritt, Fehler, keine halben Daten), **Barrierefreiheit Kriterium 1** (Fortschritt für Screenreader), Sicherheit der Daten Kriterium 1. ## Nicht im Scope - Automatischer Hintergrund-Abgleich (F9) - Import von Partien (Plays) aus BGG (nicht gefordert) - BGG-Status „want to play“ (Klärung 34) ## Klärungen Verbindlich laut `requirements/r1-klaerungen.md` (2026-11-02): - **1:** Ein Spiel steht in genau einer Liste; besessen und gewünscht → Sammlung → Kriterium 2. - **12:** Fehlende BGG-Spiele werden automatisch als vorläufige private Einträge angelegt; Zusammenfassung zeigt „vorläufig angelegt“; Meldung an den Admin entsteht automatisch → Kriterien 1, 4. - **34:** owned → Sammlung; wishlist und want to buy → Wunschliste; preordered → Einkaufsliste; want to play ignoriert; Priorität 1–2 hoch, 3 mittel, 4–5 niedrig; Erweiterungen werden importiert → Kriterien 2, 8, 9. - **N12:** Automatisch beim Import erzeugte Meldungen zählen nicht auf das Tageslimit; sie sind je Spiel (BGG-ID) dedupliziert und als „aus Import“ gekennzeichnet → Kriterium 10 (und KAT-04 #13 Kriterium 7). - **N12a:** Deduplizierung je Nutzer und BGG-ID; Meldungen verschiedener Nutzer bleiben getrennt → Kriterium 10. ## Offene Fragen Keine. ## Planung - Epic: SAM Sammlung & Listen - Priorität: Should (R1 darf laut S1 ohne BGG-Import starten, wenn die Lizenz fehlt) - Größe: XL - Etappe: R1.4 Abschluss (nur mit BGG-Lizenz, S1) - Abhängigkeiten: SAM-07 (#24), SAM-01 (#6), SAM-04 (#8), SAM-05 (#9, neu wegen „preordered“ → Einkaufsliste), KAT-05 (#2, bgg_id), KAT-04 (#13); externe Voraussetzung: BGG-Lizenz (S1) ## Mögliche Schnitte für die Spec - SAM-08a Import Sammlung inkl. Zuordnung, vorläufiger Einträge, automatischer Meldungen und Zusammenfassung (Kriterien 1–4, 7, 9, 10) - SAM-08b Import Wunsch- und Einkaufsliste inkl. Prioritäten (Kriterien 2, 8) - SAM-08c Abbruch, Fehler, Rate-Limit (Kriterien 5–6) ## Referenzen - Akzeptanzkriterien: `requirements/20-r1-akzeptanzkriterien.md` § SAM-08 - Klärungen: `requirements/r1-klaerungen.md` (inkl. N12, N12a) - Story-Entwurf: `requirements/r1-story-entwurf.md` (freigegeben 2026-11-02) - Backlog: `requirements/backlog.md`
cschlaefke added the
type/story
prio/should
needs-clarification
epic/sammlung
size/xl
labels 2026-11-02 13:42:49 +00:00
cschlaefke added a new dependency 2026-11-02 13:43:42 +00:00
cschlaefke added a new dependency 2026-11-02 13:43:43 +00:00
cschlaefke added a new dependency 2026-11-02 13:43:44 +00:00
cschlaefke added a new dependency 2026-11-02 13:43:45 +00:00
cschlaefke added a new dependency 2026-11-02 13:43:46 +00:00
cschlaefke added a new dependency 2026-11-02 13:43:47 +00:00
Author
Owner

Offene fachliche Fragen aus requirements/r1-story-entwurf.md, Abschnitt 5 (Nummerierung wie im Entwurf). Bitte hier beantworten; nach Klärung wird needs-clarification entfernt.

Frage 1: SAM-04 Krit. 2 / SAM-06 Krit. 3 / SAM-08 vs. O8 und Migration: SAM-04 erlaubt ein Spiel gleichzeitig in Sammlung und auf der Wunschliste („andere Edition“). collection_items hat aber unique (owner_id, game_id) und genau einen Wert list, also ein Spiel nur in einer der drei Listen. Annahme 7 spricht nur von „höchstens einmal in der Sammlung“. Was gilt: Darf ein Spiel gleichzeitig in Sammlung, Wunsch- und Einkaufsliste stehen?

Frage 12: SAM-08 Krit. 4 vs. Datenmodell: Akzeptanzkriterium: fehlende BGG-Spiele landen in „nicht gefunden“ und können gemeldet werden. Datenmodell: Import legt fehlende Spiele automatisch als private Einträge an. Was gilt?

Frage 34: SAM-08 Krit. 2: Welche BGG-Status zählen (owned, want to buy, want to play, wishlist mit Priorität 1–5, preordered)? Wie wird die BGG-Wunschlistenpriorität auf hoch/mittel/niedrig abgebildet? Was geschieht, wenn ein Spiel bei BGG zugleich besessen und gewünscht ist? Werden Erweiterungen importiert?

**Offene fachliche Fragen** aus `requirements/r1-story-entwurf.md`, Abschnitt 5 (Nummerierung wie im Entwurf). Bitte hier beantworten; nach Klärung wird `needs-clarification` entfernt. **Frage 1:** SAM-04 Krit. 2 / SAM-06 Krit. 3 / SAM-08 vs. O8 und Migration: SAM-04 erlaubt ein Spiel gleichzeitig in Sammlung und auf der Wunschliste („andere Edition“). `collection_items` hat aber `unique (owner_id, game_id)` und genau einen Wert `list`, also ein Spiel nur in einer der drei Listen. Annahme 7 spricht nur von „höchstens einmal in der Sammlung“. Was gilt: Darf ein Spiel gleichzeitig in Sammlung, Wunsch- und Einkaufsliste stehen? **Frage 12:** SAM-08 Krit. 4 vs. Datenmodell: Akzeptanzkriterium: fehlende BGG-Spiele landen in „nicht gefunden“ und können gemeldet werden. Datenmodell: Import legt fehlende Spiele automatisch als private Einträge an. Was gilt? **Frage 34:** SAM-08 Krit. 2: Welche BGG-Status zählen (owned, want to buy, want to play, wishlist mit Priorität 1–5, preordered)? Wie wird die BGG-Wunschlistenpriorität auf hoch/mittel/niedrig abgebildet? Was geschieht, wenn ein Spiel bei BGG zugleich besessen und gewünscht ist? Werden Erweiterungen importiert?
cschlaefke added this to the R1 milestone 2026-11-02 13:53:54 +00:00
cschlaefke added a new dependency 2026-11-02 14:36:16 +00:00
Author
Owner

Klärungen eingearbeitet (2026-11-02): Fragen 1, 12, 34 laut requirements/r1-klaerungen.md. Die Zusammenfassung in Kriterium 1 zeigt jetzt „vorläufig angelegt“ statt „nicht gefunden“. Kriterium 2 enthält die Zuordnung der BGG-Status inkl. Einkaufsliste. Nach Kriterium 4 werden fehlende Spiele automatisch als vorläufige Einträge angelegt, die Meldung an den Admin entsteht automatisch. Neu sind Kriterium 8 (Prioritäten) und 9 (Erweiterungen). Neue Abhängigkeit #25 → #9, weil „preordered“ auf die Einkaufsliste geht.

Neue offene Frage (Label needs-clarification bleibt):

  • N12 – Automatische Meldungen beim Import vs. Tageslimit: KAT-04 Kriterium 7 begrenzt Meldungen auf 10 je Nutzer und Tag (Klärung 27). Beim BGG-Import können deutlich mehr fehlende Spiele auf einmal anfallen. Zählen automatisch erzeugte Meldungen auf das Limit? Mögliche Antworten: Sie zählen nicht. Oder: Sie zählen, und überzählige Spiele werden nur vorläufig angelegt, ohne Meldung. Oder: Meldungen werden pro BGG-Kennung zusammengefasst, damit dasselbe Spiel von mehreren Nutzern nur einmal gemeldet wird.
Klärungen eingearbeitet (2026-11-02): Fragen 1, 12, 34 laut `requirements/r1-klaerungen.md`. Die Zusammenfassung in Kriterium 1 zeigt jetzt „vorläufig angelegt“ statt „nicht gefunden“. Kriterium 2 enthält die Zuordnung der BGG-Status inkl. Einkaufsliste. Nach Kriterium 4 werden fehlende Spiele automatisch als vorläufige Einträge angelegt, die Meldung an den Admin entsteht automatisch. Neu sind Kriterium 8 (Prioritäten) und 9 (Erweiterungen). Neue Abhängigkeit #25 → #9, weil „preordered“ auf die Einkaufsliste geht. **Neue offene Frage (Label `needs-clarification` bleibt):** - **N12 – Automatische Meldungen beim Import vs. Tageslimit:** KAT-04 Kriterium 7 begrenzt Meldungen auf 10 je Nutzer und Tag (Klärung 27). Beim BGG-Import können deutlich mehr fehlende Spiele auf einmal anfallen. Zählen automatisch erzeugte Meldungen auf das Limit? Mögliche Antworten: Sie zählen nicht. Oder: Sie zählen, und überzählige Spiele werden nur vorläufig angelegt, ohne Meldung. Oder: Meldungen werden pro BGG-Kennung zusammengefasst, damit dasselbe Spiel von mehreren Nutzern nur einmal gemeldet wird.
Author
Owner

Klärungen N12 eingearbeitet (2026-11-02)

  • N12 → Kriterium 10 neu: Automatisch beim Import erzeugte Meldungen zählen nicht auf das Tageslimit (KAT-04 #13 Kriterium 7 entsprechend ergänzt), sind als „aus Import“ gekennzeichnet und je Spiel (BGG-Kennung) dedupliziert.
  • Schnittvorschlag SAM-08a um Kriterium 10 ergänzt.

Neue Folgefrage N12a (Label needs-clarification bleibt):
Gilt die Deduplizierung „je Spiel (BGG-ID)“

  • (a) je Nutzer – jeder Nutzer hat höchstens eine offene Import-Meldung je BGG-ID, oder
  • (b) über alle Nutzer – es gibt systemweit höchstens eine offene Import-Meldung je BGG-ID, an der die vorläufigen Einträge mehrerer Nutzer hängen?

Warum das wichtig ist:

  1. Konto löschen (KTO-05 #23 Kriterium 2): Dort werden „meine offenen Meldungen“ hart gelöscht. Bei (b) hängt an einer Meldung auch der Eintrag anderer Nutzer – würde sie gelöscht, verlören diese ihre Meldung. Bei (b) bräuchte es eine Regel, z. B. „Meldung bleibt bestehen, solange noch ein anderer Nutzer daran hängt; mein Bezug wird entfernt“.
  2. Ergebnishinweis (KAT-04 Kriterien 4–5): Bei (b) muss das Ergebnis (freigegeben/zusammengeführt/abgelehnt) bei allen betroffenen vorläufigen Einträgen ankommen, nicht nur beim ersten Melder.
  3. Datenmodell: (b) bedeutet eine Zuordnung „eine Meldung ↔ mehrere vorläufige Einträge“, (a) nicht.

Bitte (a) oder (b) wählen; bei (b) zusätzlich, was beim Löschen des Kontos mit einer geteilten Meldung passiert.

Klärungen N12 eingearbeitet (2026-11-02) - **N12** → Kriterium 10 neu: Automatisch beim Import erzeugte Meldungen zählen nicht auf das Tageslimit (KAT-04 #13 Kriterium 7 entsprechend ergänzt), sind als „aus Import“ gekennzeichnet und je Spiel (BGG-Kennung) dedupliziert. - Schnittvorschlag SAM-08a um Kriterium 10 ergänzt. **Neue Folgefrage N12a (Label `needs-clarification` bleibt):** Gilt die Deduplizierung „je Spiel (BGG-ID)“ - **(a) je Nutzer** – jeder Nutzer hat höchstens eine offene Import-Meldung je BGG-ID, oder - **(b) über alle Nutzer** – es gibt systemweit höchstens eine offene Import-Meldung je BGG-ID, an der die vorläufigen Einträge mehrerer Nutzer hängen? Warum das wichtig ist: 1. **Konto löschen (KTO-05 #23 Kriterium 2):** Dort werden „meine offenen Meldungen“ hart gelöscht. Bei (b) hängt an einer Meldung auch der Eintrag anderer Nutzer – würde sie gelöscht, verlören diese ihre Meldung. Bei (b) bräuchte es eine Regel, z. B. „Meldung bleibt bestehen, solange noch ein anderer Nutzer daran hängt; mein Bezug wird entfernt“. 2. **Ergebnishinweis (KAT-04 Kriterien 4–5):** Bei (b) muss das Ergebnis (freigegeben/zusammengeführt/abgelehnt) bei allen betroffenen vorläufigen Einträgen ankommen, nicht nur beim ersten Melder. 3. **Datenmodell:** (b) bedeutet eine Zuordnung „eine Meldung ↔ mehrere vorläufige Einträge“, (a) nicht. Bitte (a) oder (b) wählen; bei (b) zusätzlich, was beim Löschen des Kontos mit einer geteilten Meldung passiert.
cschlaefke removed the
needs-clarification
label 2026-11-02 15:13:02 +00:00
Author
Owner

Klärung N12a eingearbeitet (2026-11-02): Die Deduplizierung automatischer Import-Meldungen gilt je Nutzer und BGG-ID. Meldungen verschiedener Nutzer zum selben Spiel bleiben getrennt und werden beim Konto-Löschen mit dem jeweiligen Nutzer gelöscht (Kriterium 10). Keine offenen Fragen mehr, needs-clarification entfernt.

Klärung N12a eingearbeitet (2026-11-02): Die Deduplizierung automatischer Import-Meldungen gilt **je Nutzer** und BGG-ID. Meldungen verschiedener Nutzer zum selben Spiel bleiben getrennt und werden beim Konto-Löschen mit dem jeweiligen Nutzer gelöscht (Kriterium 10). Keine offenen Fragen mehr, `needs-clarification` entfernt.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference: cschlaefke/Shuffle#25
No description provided.