# Portabilität: UNIVERSAL
# Version: 1.0.1
# Zuletzt validiert: 2026-05-17
# Nächste Prüfung: 2026-08-17

ABO - Abonnement- und Vertragsverwaltung
=========================================

BESCHREIBUNG:
  Verwaltet laufende Abonnements und Verträge (Streaming, Software,
  Internet, Mobilfunk etc.). Erkennt Abos automatisch aus Steuer-Posten
  und berechnet monatliche/jaehrliche Kosten.

CLI-BEFEHLE:
  bach abo help              Hilfe anzeigen
  bach abo init              Datenbank-Tabellen erstellen (einmalig)
  bach abo scan              Steuer-Posten nach Abos durchsuchen
  bach abo list              Alle erkannten Abos anzeigen
  bach abo list --alle       Inkl. deaktivierte
  bach abo list --bestaetigt Nur bestaetigte
  bach abo confirm <id>      Abo-Erkennung bestaetigen
  bach abo dismiss <id>      Fehlererkennung entfernen
  bach abo costs             Kostenaufstellung nach Kategorie
  bach abo export            CSV-Export (data/abo_export.csv)
  bach abo patterns          Bekannte Abo-Muster anzeigen
  bach abo sync-mail         Abos aus E-Mails synchronisieren

OPTIONEN:
  --jahr YYYY    Steuerjahr für Scan (Default: aktuelles Jahr)
  --dry-run      Scan nur simulieren

DATENBANK:
  Tabellen in bach.db:

  abo_subscriptions - Erkannte/verwaltete Abos
    id, name, anbieter, kategorie, betrag_monatlich,
    zahlungsintervall, kündigungslink, erkannt_am,
    bestaetigt (0/1), aktiv (0/1)

  abo_payments - Zahlungsverknüpfungen zu Steuer-Posten
    id, subscription_id, posten_id, betrag, datum

  abo_patterns - Bekannte Anbieter-Erkennungsmuster
    id, pattern, anbieter, kategorie, kündigungslink

  fin_contracts - Manuelle Vertragsverwaltung (parallel)
    id, name, kategorie, anbieter, kundennummer, vertragsnummer,
    betrag, intervall, kündigungsfrist_tage, ablauf_datum, ...

WORKFLOW:
  1. bach abo init           (einmalig: Tabellen + Default-Patterns)
  2. bach abo scan           (durchsucht steuer_posten)
  3. bach abo list           (zeigt Ergebnisse)
  4. bach abo confirm <id>   (bestaetige echte Abos)
  5. bach abo dismiss <id>   (entferne Fehlerkennungen)
  6. bach abo costs          (Kostenüberblick)
  7. bach abo sync-mail      (E-Mail-Abos importieren, optional)

BEKANNTE PATTERNS (Auswahl):
  Netflix, Spotify, Microsoft 365, Adobe, Amazon Prime, Disney+,
  Apple/iCloud, YouTube Premium, Dropbox, Google One, ChatGPT/OpenAI,
  Anthropic/Claude, GitHub, JetBrains, 1Password, NordVPN, ExpressVPN

ZUSAMMENSPIEL:
  - bach steuer: Steuer-Posten als Datenquelle für Abo-Scan
  - GUI: Abos CRUD (#573, von Gemini implementiert)
  - fin_contracts: Manuelle Verträge (ergänzt automatische Erkennung)
  - financial_emails: E-Mails mit Abo-Bezug (category = 'abo')

BEISPIELE:
  # Erstmalige Einrichtung:
  bach abo init

  # Abos aus Steuer-Daten erkennen:
  bach abo scan --jahr 2025

  # Alle Abos auflisten (inkl. deaktivierte):
  bach abo list --alle

  # Nur bestaetigte Abos:
  bach abo list --bestaetigt

  # Kostenüberblick nach Kategorie:
  bach abo costs

  # Abo bestaetigen:
  bach abo confirm 8

  # Fehlererkennung entfernen:
  bach abo dismiss 3

  # E-Mail-Abos importieren:
  bach abo sync-mail

  # Export für Haushaltsplanung:
  bach abo export

  # Bekannte Patterns anzeigen:
  bach abo patterns
