#!/usr/bin/env python3
"""
Seed the parketry_content_topics table with 120 topics.
Topics are organized by content cluster and priority.
"""

import logging
import re
import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).parent.parent))

from database.connection import test_connection
from database.models import TopicRepository

logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s",
)
logger = logging.getLogger(__name__)


def slugify(text: str) -> str:
    """Convert text to URL-friendly slug."""
    text = text.lower()
    text = re.sub(r"[äÄ]", "ae", text)
    text = re.sub(r"[öÖ]", "oe", text)
    text = re.sub(r"[üÜ]", "ue", text)
    text = re.sub(r"[ß]", "ss", text)
    text = re.sub(r"[^a-z0-9]+", "-", text)
    text = text.strip("-")
    return text


# Topics organized by cluster with priority scores
TOPICS = [
    # === BRANCHEN (Industry-specific) - 15 topics ===
    # Priority A (80-100): High commercial intent
    {
        "title": "ANPR Parkraummanagement für Supermärkte: Komplettlösung für den Einzelhandel",
        "cluster": "branchen",
        "priority": "A",
        "score": 95,
        "target_keywords": "ANPR Supermarkt, Parkplatzüberwachung Einzelhandel",
        "secondary_keywords": "Kennzeichenerkennung Supermarkt, Parkraumbewirtschaftung Einzelhandel",
        "intent": "commercial",
    },
    {
        "title": "Fitness-Studio Parkplätze effizient verwalten mit ANPR-Technologie",
        "cluster": "branchen",
        "priority": "A",
        "score": 92,
        "target_keywords": "ANPR Fitnessstudio, Parkplatzverwaltung Gym",
        "secondary_keywords": "Kennzeichenerkennung Fitness, Mitgliederparkplätze verwalten",
        "intent": "commercial",
    },
    {
        "title": "ANPR-Lösungen für Arztpraxen und medizinische Einrichtungen",
        "cluster": "branchen",
        "priority": "A",
        "score": 90,
        "target_keywords": "ANPR Arztpraxis, Parkplatzmanagement Praxis",
        "secondary_keywords": "Patientenparkplätze verwalten, Kennzeichenerkennung MVZ",
        "intent": "commercial",
    },
    {
        "title": "WEG-Parkplätze verwalten: ANPR für Wohnungseigentümergemeinschaften",
        "cluster": "branchen",
        "priority": "A",
        "score": 88,
        "target_keywords": "ANPR WEG, Tiefgaragenverwaltung Eigentümergemeinschaft",
        "secondary_keywords": "Stellplatzverwaltung WEG, Kennzeichenerkennung Wohnanlage",
        "intent": "commercial",
    },
    {
        "title": "Firmenparkplätze digitalisieren: ANPR für Unternehmen",
        "cluster": "branchen",
        "priority": "A",
        "score": 86,
        "target_keywords": "ANPR Firmenparkplatz, Mitarbeiterparkplätze verwalten",
        "secondary_keywords": "Kennzeichenerkennung Unternehmen, Besucherparkplätze",
        "intent": "commercial",
    },
    {
        "title": "ANPR für Hotels und Gastgewerbe: Gästeparkplätze professionell managen",
        "cluster": "branchen",
        "priority": "B",
        "score": 75,
        "target_keywords": "ANPR Hotel, Hotelparkplatz verwalten",
        "secondary_keywords": "Gästeparkplätze Hotel, Kennzeichenerkennung Gastgewerbe",
        "intent": "commercial",
    },
    {
        "title": "Einkaufszentren und ANPR: Großflächiges Parkraummanagement",
        "cluster": "branchen",
        "priority": "B",
        "score": 72,
        "target_keywords": "ANPR Einkaufszentrum, Parkhaus Shopping Center",
        "secondary_keywords": "Kennzeichenerkennung Mall, Großparkplatz verwalten",
        "intent": "commercial",
    },
    {
        "title": "ANPR für Krankenhäuser: Patientenparkplätze fair verteilen",
        "cluster": "branchen",
        "priority": "B",
        "score": 70,
        "target_keywords": "ANPR Krankenhaus, Patientenparkplatz Klinik",
        "secondary_keywords": "Kennzeichenerkennung Krankenhaus, Besucherparkplätze Klinik",
        "intent": "commercial",
    },
    {
        "title": "Restaurantparkplätze mit ANPR vor Fremdparkern schützen",
        "cluster": "branchen",
        "priority": "B",
        "score": 68,
        "target_keywords": "ANPR Restaurant, Kundenparkplatz Gastronomie",
        "secondary_keywords": "Fremdparker Restaurant, Kennzeichenerkennung Gaststätte",
        "intent": "commercial",
    },
    {
        "title": "ANPR für Universitäten und Hochschulen: Campus-Parken digitalisieren",
        "cluster": "branchen",
        "priority": "B",
        "score": 65,
        "target_keywords": "ANPR Universität, Campus Parkplatzverwaltung",
        "secondary_keywords": "Studentenparkplätze, Kennzeichenerkennung Hochschule",
        "intent": "commercial",
    },
    {
        "title": "Logistikzentren und ANPR: LKW-Parkplätze effizient steuern",
        "cluster": "branchen",
        "priority": "B",
        "score": 62,
        "target_keywords": "ANPR Logistik, LKW Parkplatzmanagement",
        "secondary_keywords": "Kennzeichenerkennung Spedition, Rampenmanagement",
        "intent": "commercial",
    },
    {
        "title": "ANPR für Autohäuser: Kunden- und Werkstattparkplätze trennen",
        "cluster": "branchen",
        "priority": "C",
        "score": 45,
        "target_keywords": "ANPR Autohaus, Kundenparkplatz Autohaus",
        "secondary_keywords": "Werkstattparkplätze, Kennzeichenerkennung Händler",
        "intent": "commercial",
    },
    {
        "title": "Parkraummanagement für Freizeitparks und Großveranstaltungen",
        "cluster": "branchen",
        "priority": "C",
        "score": 42,
        "target_keywords": "ANPR Freizeitpark, Eventparkplatz verwalten",
        "secondary_keywords": "Großparkplatz Event, Kennzeichenerkennung Veranstaltung",
        "intent": "commercial",
    },
    {
        "title": "ANPR für Tankstellen: Kurzzeitparker identifizieren",
        "cluster": "branchen",
        "priority": "C",
        "score": 38,
        "target_keywords": "ANPR Tankstelle, Parkzeit Tankstelle",
        "secondary_keywords": "Dauerparker Tankstelle, Kennzeichenerkennung Raststätte",
        "intent": "commercial",
    },
    {
        "title": "Bibliotheken und öffentliche Einrichtungen: ANPR für Besucherparkplätze",
        "cluster": "branchen",
        "priority": "C",
        "score": 35,
        "target_keywords": "ANPR öffentliche Einrichtung, Besucherparkplatz Bibliothek",
        "secondary_keywords": "Kennzeichenerkennung Bücherei, Parkraum öffentlich",
        "intent": "informational",
    },

    # === KOSTEN (Cost/ROI) - 15 topics ===
    {
        "title": "ANPR Kosten: Was kostet ein Kennzeichenerkennungssystem?",
        "cluster": "kosten",
        "priority": "A",
        "score": 98,
        "target_keywords": "ANPR Kosten, Kennzeichenerkennung Preis",
        "secondary_keywords": "ANPR System Kosten, Parkplatzkamera Preis",
        "intent": "commercial",
    },
    {
        "title": "ROI-Berechnung: Wann amortisiert sich eine ANPR-Anlage?",
        "cluster": "kosten",
        "priority": "A",
        "score": 94,
        "target_keywords": "ANPR ROI, Amortisation Parkplatzüberwachung",
        "secondary_keywords": "Rendite ANPR, Wirtschaftlichkeit Kennzeichenerkennung",
        "intent": "informational",
    },
    {
        "title": "Vertragsstrafen bei Falschparkern: Einnahmen durch ANPR-Überwachung",
        "cluster": "kosten",
        "priority": "A",
        "score": 88,
        "target_keywords": "Vertragsstrafe Privatparkplatz, ANPR Einnahmen",
        "secondary_keywords": "Falschparker Gebühr, Strafzettel privat",
        "intent": "informational",
    },
    {
        "title": "ANPR Miete vs. Kauf: Welches Modell lohnt sich?",
        "cluster": "kosten",
        "priority": "A",
        "score": 85,
        "target_keywords": "ANPR mieten, Kennzeichenerkennung leasen",
        "secondary_keywords": "ANPR Finanzierung, Parkplatzüberwachung Mietmodell",
        "intent": "commercial",
    },
    {
        "title": "Versteckte Kosten bei ANPR-Systemen: Worauf Sie achten müssen",
        "cluster": "kosten",
        "priority": "B",
        "score": 78,
        "target_keywords": "ANPR versteckte Kosten, Kennzeichenerkennung Nebenkosten",
        "secondary_keywords": "ANPR Wartungskosten, laufende Kosten Parkplatz",
        "intent": "informational",
    },
    {
        "title": "Energiekosten ANPR: Stromverbrauch moderner Kennzeichenkameras",
        "cluster": "kosten",
        "priority": "B",
        "score": 72,
        "target_keywords": "ANPR Stromverbrauch, Kennzeichenkamera Energiekosten",
        "secondary_keywords": "Parkplatzkamera Stromkosten, energieeffiziente ANPR",
        "intent": "informational",
    },
    {
        "title": "Fördermittel für Parkraumbewirtschaftung: Zuschüsse für ANPR",
        "cluster": "kosten",
        "priority": "B",
        "score": 68,
        "target_keywords": "Fördermittel Parkplatz, ANPR Zuschuss",
        "secondary_keywords": "Förderung Digitalisierung Parkraum, KfW Parkplatz",
        "intent": "informational",
    },
    {
        "title": "Kostenvergleich: ANPR vs. Schrankenanlage vs. Parkscheibe",
        "cluster": "kosten",
        "priority": "B",
        "score": 65,
        "target_keywords": "ANPR vs Schranke Kosten, Parkscheibenzone Kosten",
        "secondary_keywords": "Schrankenanlage Alternative, günstige Parkraumüberwachung",
        "intent": "informational",
    },
    {
        "title": "ANPR für kleine Parkplätze: Kosten-Nutzen-Analyse unter 20 Stellplätzen",
        "cluster": "kosten",
        "priority": "B",
        "score": 62,
        "target_keywords": "ANPR kleine Parkplätze, Kennzeichenerkennung wenige Stellplätze",
        "secondary_keywords": "ANPR Mini-Parkplatz, kleine Parkfläche überwachen",
        "intent": "commercial",
    },
    {
        "title": "Wartungskosten ANPR: Jährliche Ausgaben kalkulieren",
        "cluster": "kosten",
        "priority": "B",
        "score": 58,
        "target_keywords": "ANPR Wartung Kosten, Kennzeichenkamera Service",
        "secondary_keywords": "ANPR Instandhaltung, Wartungsvertrag Parkplatz",
        "intent": "informational",
    },
    {
        "title": "ANPR Cloud vs. On-Premise: Kostenvergleich der Betriebsmodelle",
        "cluster": "kosten",
        "priority": "C",
        "score": 48,
        "target_keywords": "ANPR Cloud Kosten, On-Premise Parkplatzsystem",
        "secondary_keywords": "SaaS Parkraummanagement, lokale ANPR Installation",
        "intent": "informational",
    },
    {
        "title": "Personalkosten sparen mit ANPR: Automatisierung der Parkraumüberwachung",
        "cluster": "kosten",
        "priority": "C",
        "score": 45,
        "target_keywords": "ANPR Personalkosten, automatische Parkplatzüberwachung",
        "secondary_keywords": "Parkwächter ersetzen, unbemannte Parkraumkontrolle",
        "intent": "informational",
    },
    {
        "title": "Versicherungskosten für ANPR-Anlagen: Was Sie wissen müssen",
        "cluster": "kosten",
        "priority": "C",
        "score": 40,
        "target_keywords": "ANPR Versicherung, Kennzeichenkamera versichern",
        "secondary_keywords": "Vandalismus ANPR, Haftpflicht Parkplatz",
        "intent": "informational",
    },
    {
        "title": "Steuerliche Absetzbarkeit von ANPR-Systemen für Unternehmen",
        "cluster": "kosten",
        "priority": "C",
        "score": 38,
        "target_keywords": "ANPR steuerlich absetzen, Betriebsausgabe Parkplatz",
        "secondary_keywords": "AfA Parkplatzsystem, Kennzeichenerkennung Steuern",
        "intent": "informational",
    },
    {
        "title": "Preismodelle ANPR-Anbieter: Einmalzahlung, Abo oder Pay-per-Scan",
        "cluster": "kosten",
        "priority": "C",
        "score": 35,
        "target_keywords": "ANPR Preismodell, Kennzeichenerkennung Abo",
        "secondary_keywords": "Pay-per-Scan Parkplatz, ANPR Bezahlmodelle",
        "intent": "commercial",
    },

    # === RECHT (Legal) - 15 topics ===
    {
        "title": "DSGVO und ANPR: Datenschutzkonforme Kennzeichenerkennung",
        "cluster": "recht",
        "priority": "A",
        "score": 96,
        "target_keywords": "ANPR DSGVO, Kennzeichenerkennung Datenschutz",
        "secondary_keywords": "Datenschutz Parkplatz, DSGVO konforme Überwachung",
        "intent": "informational",
    },
    {
        "title": "Rechtliche Grundlagen der privaten Parkraumüberwachung in Deutschland",
        "cluster": "recht",
        "priority": "A",
        "score": 92,
        "target_keywords": "Privatparkplatz Recht, Parkraumüberwachung legal",
        "secondary_keywords": "Vertragsstrafe Parkplatz legal, Rechtslage Kennzeichenerfassung",
        "intent": "informational",
    },
    {
        "title": "Halterermittlung bei Falschparkern: Rechtliche Möglichkeiten und Grenzen",
        "cluster": "recht",
        "priority": "A",
        "score": 88,
        "target_keywords": "Halterermittlung Privatparkplatz, Halterabfrage legal",
        "secondary_keywords": "Fahrzeughalter ermitteln, Kennzeichen Halter herausfinden",
        "intent": "informational",
    },
    {
        "title": "Vertragsstrafe auf Privatparkplätzen: Höhe, Durchsetzung, Urteile",
        "cluster": "recht",
        "priority": "A",
        "score": 85,
        "target_keywords": "Vertragsstrafe Parkplatz Höhe, Privatparkplatz Strafzettel",
        "secondary_keywords": "Vertragsstrafe durchsetzen, Parkstrafe privat",
        "intent": "informational",
    },
    {
        "title": "Beschilderungspflichten für ANPR-überwachte Parkplätze",
        "cluster": "recht",
        "priority": "B",
        "score": 78,
        "target_keywords": "ANPR Beschilderung, Hinweisschild Kennzeichenerkennung",
        "secondary_keywords": "Parkplatzschild Überwachung, Videoüberwachung Hinweis",
        "intent": "informational",
    },
    {
        "title": "Speicherfristen für ANPR-Daten: Was erlaubt ist",
        "cluster": "recht",
        "priority": "B",
        "score": 75,
        "target_keywords": "ANPR Speicherfrist, Kennzeichen Speicherdauer",
        "secondary_keywords": "Daten löschen Parkplatz, Aufbewahrungsfrist Kennzeichen",
        "intent": "informational",
    },
    {
        "title": "Widerspruchsrecht bei ANPR: Rechte der Fahrzeughalter",
        "cluster": "recht",
        "priority": "B",
        "score": 72,
        "target_keywords": "ANPR Widerspruch, Kennzeichen Erfassung Recht",
        "secondary_keywords": "Auskunftsrecht Parkplatz, DSGVO Rechte Fahrzeug",
        "intent": "informational",
    },
    {
        "title": "Videoüberwachung vs. ANPR: Rechtliche Unterschiede",
        "cluster": "recht",
        "priority": "B",
        "score": 68,
        "target_keywords": "Videoüberwachung Parkplatz legal, ANPR vs Video Recht",
        "secondary_keywords": "Kamera Parkplatz erlaubt, Überwachung Parkplatz Gesetz",
        "intent": "informational",
    },
    {
        "title": "Datenschutzfolgenabschätzung für ANPR-Systeme: Leitfaden",
        "cluster": "recht",
        "priority": "B",
        "score": 65,
        "target_keywords": "DSFA ANPR, Datenschutzfolgenabschätzung Parkplatz",
        "secondary_keywords": "DSGVO Risikoanalyse, Datenschutz-Folgenabschätzung",
        "intent": "informational",
    },
    {
        "title": "ANPR und Arbeitnehmerrechte: Mitarbeiterüberwachung auf Firmenparkplätzen",
        "cluster": "recht",
        "priority": "B",
        "score": 62,
        "target_keywords": "Mitarbeiter Parkplatz überwachen, ANPR Arbeitnehmer",
        "secondary_keywords": "Betriebsrat Parkplatz, Arbeitnehmerrecht Überwachung",
        "intent": "informational",
    },
    {
        "title": "Internationale ANPR-Rechtslage: EU-Kennzeichen und Auslandsfahrzeuge",
        "cluster": "recht",
        "priority": "C",
        "score": 48,
        "target_keywords": "ANPR EU Kennzeichen, ausländische Kennzeichen erfassen",
        "secondary_keywords": "internationale Halterermittlung, EU Fahrzeug Parkstrafe",
        "intent": "informational",
    },
    {
        "title": "Haftungsrisiken für Parkplatzbetreiber mit ANPR-Systemen",
        "cluster": "recht",
        "priority": "C",
        "score": 45,
        "target_keywords": "ANPR Haftung, Parkplatzbetreiber Verantwortung",
        "secondary_keywords": "Haftpflicht Parkplatz, Schadensersatz Kennzeichenerfassung",
        "intent": "informational",
    },
    {
        "title": "Mietrecht und Stellplatzverwaltung: ANPR für Vermieter",
        "cluster": "recht",
        "priority": "C",
        "score": 42,
        "target_keywords": "ANPR Vermieter, Mietwohnung Stellplatz überwachen",
        "secondary_keywords": "Mietrecht Parkplatz, Stellplatz Mietvertrag",
        "intent": "informational",
    },
    {
        "title": "Gerichtsentscheidungen zu ANPR-Parkstrafen: Aktuelle Urteile",
        "cluster": "recht",
        "priority": "C",
        "score": 38,
        "target_keywords": "ANPR Urteil, Parkstrafe Gericht",
        "secondary_keywords": "BGH Privatparkplatz, Urteil Vertragsstrafe",
        "intent": "informational",
    },
    {
        "title": "Minderjährige und ANPR: Besonderheiten bei jungen Fahrern",
        "cluster": "recht",
        "priority": "C",
        "score": 32,
        "target_keywords": "Minderjährige Parkstrafe, begleitetes Fahren Parkplatz",
        "secondary_keywords": "Elternhaftung Parkverstoß, 17-Jährige Vertragsstrafe",
        "intent": "informational",
    },

    # === TECHNIK (Technology) - 15 topics ===
    {
        "title": "Wie funktioniert ANPR? Technologie der Kennzeichenerkennung erklärt",
        "cluster": "technik",
        "priority": "A",
        "score": 94,
        "target_keywords": "ANPR Funktionsweise, Kennzeichenerkennung Technik",
        "secondary_keywords": "OCR Kennzeichen, Nummernschilderkennung",
        "intent": "informational",
    },
    {
        "title": "ANPR-Kameras im Vergleich: IR vs. Tageslicht vs. Deep Learning",
        "cluster": "technik",
        "priority": "A",
        "score": 90,
        "target_keywords": "ANPR Kamera Vergleich, Kennzeichenkamera Typen",
        "secondary_keywords": "Infrarot ANPR, Deep Learning Kennzeichen",
        "intent": "informational",
    },
    {
        "title": "Erkennungsraten bei ANPR: Was beeinflusst die Genauigkeit?",
        "cluster": "technik",
        "priority": "A",
        "score": 86,
        "target_keywords": "ANPR Erkennungsrate, Genauigkeit Kennzeichenerkennung",
        "secondary_keywords": "ANPR Fehlerquote, OCR Präzision",
        "intent": "informational",
    },
    {
        "title": "ANPR bei Nacht und schlechtem Wetter: Zuverlässigkeit gewährleisten",
        "cluster": "technik",
        "priority": "B",
        "score": 78,
        "target_keywords": "ANPR Nacht, Kennzeichenerkennung Wetter",
        "secondary_keywords": "ANPR Regen, Infrarot Kennzeichenkamera",
        "intent": "informational",
    },
    {
        "title": "Installation einer ANPR-Anlage: Technische Anforderungen",
        "cluster": "technik",
        "priority": "B",
        "score": 75,
        "target_keywords": "ANPR Installation, Kennzeichenkamera montieren",
        "secondary_keywords": "ANPR Kabelverlegung, Kamera Ausrichtung",
        "intent": "informational",
    },
    {
        "title": "ANPR-Software: Cloud vs. lokale Verarbeitung",
        "cluster": "technik",
        "priority": "B",
        "score": 72,
        "target_keywords": "ANPR Software, Kennzeichenerkennung Cloud",
        "secondary_keywords": "Edge Computing ANPR, lokale Verarbeitung",
        "intent": "informational",
    },
    {
        "title": "Schnittstellen und API: ANPR in bestehende Systeme integrieren",
        "cluster": "technik",
        "priority": "B",
        "score": 68,
        "target_keywords": "ANPR API, Kennzeichenerkennung Integration",
        "secondary_keywords": "ANPR Schnittstelle, REST API Parkplatz",
        "intent": "informational",
    },
    {
        "title": "Stromversorgung für ANPR-Kameras: PoE, Solar und Alternativen",
        "cluster": "technik",
        "priority": "B",
        "score": 65,
        "target_keywords": "ANPR PoE, Solar Kennzeichenkamera",
        "secondary_keywords": "kabellose ANPR, Stromversorgung Parkplatz",
        "intent": "informational",
    },
    {
        "title": "ANPR-Datenbanken: Whitelist, Blacklist und dynamische Verwaltung",
        "cluster": "technik",
        "priority": "B",
        "score": 62,
        "target_keywords": "ANPR Whitelist, Kennzeichendatenbank",
        "secondary_keywords": "Blacklist Parkplatz, Kennzeichen registrieren",
        "intent": "informational",
    },
    {
        "title": "Mobile ANPR-Systeme: Flexible Parkraumüberwachung",
        "cluster": "technik",
        "priority": "C",
        "score": 48,
        "target_keywords": "mobile ANPR, tragbare Kennzeichenkamera",
        "secondary_keywords": "ANPR Kontrollfahrzeug, flexible Parkraumkontrolle",
        "intent": "informational",
    },
    {
        "title": "Cybersecurity für ANPR-Systeme: Schutz vor Hacking",
        "cluster": "technik",
        "priority": "C",
        "score": 45,
        "target_keywords": "ANPR Sicherheit, Kennzeichenkamera hacken",
        "secondary_keywords": "IT-Sicherheit Parkplatz, ANPR Verschlüsselung",
        "intent": "informational",
    },
    {
        "title": "KI und Machine Learning in modernen ANPR-Systemen",
        "cluster": "technik",
        "priority": "C",
        "score": 42,
        "target_keywords": "ANPR KI, Machine Learning Kennzeichen",
        "secondary_keywords": "künstliche Intelligenz Parkplatz, Deep Learning OCR",
        "intent": "informational",
    },
    {
        "title": "ANPR für E-Fahrzeuge: Erkennung von Ladestatus und Berechtigung",
        "cluster": "technik",
        "priority": "C",
        "score": 38,
        "target_keywords": "ANPR Elektroauto, E-Kennzeichen erkennen",
        "secondary_keywords": "Ladesäule Parkplatz, Elektrofahrzeug Parkberechtigung",
        "intent": "informational",
    },
    {
        "title": "Backup-Systeme für ANPR: Ausfallsicherheit gewährleisten",
        "cluster": "technik",
        "priority": "C",
        "score": 35,
        "target_keywords": "ANPR Backup, Kennzeichenerkennung Ausfall",
        "secondary_keywords": "Redundanz Parkplatzsystem, Ausfallsicherheit",
        "intent": "informational",
    },
    {
        "title": "Fernwartung und Updates für ANPR-Anlagen",
        "cluster": "technik",
        "priority": "C",
        "score": 32,
        "target_keywords": "ANPR Fernwartung, Kennzeichenkamera Update",
        "secondary_keywords": "Remote Management Parkplatz, Software-Update ANPR",
        "intent": "informational",
    },

    # === VERGLEICH (Comparison) - 15 topics ===
    {
        "title": "Die besten ANPR-Anbieter in Deutschland: Marktübersicht",
        "cluster": "vergleich",
        "priority": "A",
        "score": 97,
        "target_keywords": "ANPR Anbieter Deutschland, Kennzeichenerkennung Vergleich",
        "secondary_keywords": "beste ANPR Systeme, Parkplatzüberwachung Anbieter",
        "intent": "commercial",
    },
    {
        "title": "ANPR vs. Schrankenanlage: Vor- und Nachteile im Vergleich",
        "cluster": "vergleich",
        "priority": "A",
        "score": 93,
        "target_keywords": "ANPR vs Schranke, kennzeichenlos parken",
        "secondary_keywords": "Schranke Alternative, barrierefrei parken",
        "intent": "informational",
    },
    {
        "title": "Park & Control, ParkRaum, Fair Parken: Anbietervergleich",
        "cluster": "vergleich",
        "priority": "A",
        "score": 89,
        "target_keywords": "Park and Control Vergleich, Fair Parken Alternative",
        "secondary_keywords": "Parkraumbewirtschaftung Anbieter, ParkRaum Erfahrungen",
        "intent": "commercial",
    },
    {
        "title": "ANPR-Hardware im Test: Hikvision, Axis, Genetec im Vergleich",
        "cluster": "vergleich",
        "priority": "A",
        "score": 85,
        "target_keywords": "ANPR Kamera Test, Hikvision Kennzeichenerkennung",
        "secondary_keywords": "Axis ANPR, Genetec Parkplatz",
        "intent": "commercial",
    },
    {
        "title": "Manuelle Kontrolle vs. ANPR: Wann lohnt sich die Automatisierung?",
        "cluster": "vergleich",
        "priority": "B",
        "score": 76,
        "target_keywords": "Parkplatzkontrolle manuell, ANPR vs Kontrolleur",
        "secondary_keywords": "Parkwächter Alternative, automatische Kontrolle",
        "intent": "informational",
    },
    {
        "title": "Parkscheibenregelung vs. ANPR: Modernisierung alter Systeme",
        "cluster": "vergleich",
        "priority": "B",
        "score": 72,
        "target_keywords": "Parkscheibe ablösen, ANPR statt Parkscheibe",
        "secondary_keywords": "Parkscheibenpflicht Alternative, digitale Parkuhr",
        "intent": "informational",
    },
    {
        "title": "Ticket-Systeme vs. ANPR: Kosten und Nutzerfreundlichkeit",
        "cluster": "vergleich",
        "priority": "B",
        "score": 68,
        "target_keywords": "Parkticket vs ANPR, Parkscheinautomat Alternative",
        "secondary_keywords": "Ticketautomat ersetzen, bargeldlos parken",
        "intent": "informational",
    },
    {
        "title": "App-basiertes Parken vs. ANPR: Welche Lösung passt besser?",
        "cluster": "vergleich",
        "priority": "B",
        "score": 65,
        "target_keywords": "Park-App vs ANPR, Handy parken Vergleich",
        "secondary_keywords": "EasyPark Alternative, PayByPhone Vergleich",
        "intent": "informational",
    },
    {
        "title": "Komplettanbieter vs. Einzelkomponenten: ANPR-Beschaffung",
        "cluster": "vergleich",
        "priority": "B",
        "score": 62,
        "target_keywords": "ANPR Komplettlösung, Parkplatzsystem Komponenten",
        "secondary_keywords": "ANPR selber bauen, Einzelteile Kennzeichenerkennung",
        "intent": "informational",
    },
    {
        "title": "Deutsche vs. internationale ANPR-Anbieter: Was ist besser?",
        "cluster": "vergleich",
        "priority": "C",
        "score": 48,
        "target_keywords": "ANPR deutsche Anbieter, Kennzeichenerkennung lokal",
        "secondary_keywords": "ANPR Made in Germany, ausländische Parkplatzsysteme",
        "intent": "informational",
    },
    {
        "title": "Open Source ANPR vs. kommerzielle Lösungen",
        "cluster": "vergleich",
        "priority": "C",
        "score": 45,
        "target_keywords": "OpenALPR Alternative, ANPR Open Source",
        "secondary_keywords": "kostenlose Kennzeichenerkennung, ANPR selbst entwickeln",
        "intent": "informational",
    },
    {
        "title": "Kauf vs. Full-Service: ANPR-Betriebsmodelle verglichen",
        "cluster": "vergleich",
        "priority": "C",
        "score": 42,
        "target_keywords": "ANPR Full-Service, Parkplatzbewirtschaftung outsourcen",
        "secondary_keywords": "ANPR Betreibermodell, Parkplatz Management Service",
        "intent": "commercial",
    },
    {
        "title": "Stationäre vs. mobile ANPR-Lösungen im Vergleich",
        "cluster": "vergleich",
        "priority": "C",
        "score": 38,
        "target_keywords": "mobile ANPR vs stationär, flexibler Parkplatzkontrolle",
        "secondary_keywords": "ANPR Fahrzeug, temporäre Parkraumüberwachung",
        "intent": "informational",
    },
    {
        "title": "Retrofit vs. Neuinstallation: ANPR für bestehende Parkplätze",
        "cluster": "vergleich",
        "priority": "C",
        "score": 35,
        "target_keywords": "ANPR nachrüsten, Parkplatz modernisieren",
        "secondary_keywords": "Retrofit Kennzeichenerkennung, Bestandsparkplatz digitalisieren",
        "intent": "informational",
    },
    {
        "title": "ANPR-Software: SaaS-Lösungen im Funktionsvergleich",
        "cluster": "vergleich",
        "priority": "C",
        "score": 32,
        "target_keywords": "ANPR SaaS, Kennzeichenerkennung Software Vergleich",
        "secondary_keywords": "Cloud Parkplatzsoftware, ANPR Plattform",
        "intent": "commercial",
    },

    # === HOWTO (Guides) - 15 topics ===
    {
        "title": "ANPR einführen: Schritt-für-Schritt-Anleitung für Parkplatzbetreiber",
        "cluster": "howto",
        "priority": "A",
        "score": 95,
        "target_keywords": "ANPR einführen, Kennzeichenerkennung installieren",
        "secondary_keywords": "Parkplatzüberwachung starten, ANPR Projekt",
        "intent": "informational",
    },
    {
        "title": "Whitelist erstellen und pflegen: Best Practices für ANPR",
        "cluster": "howto",
        "priority": "A",
        "score": 88,
        "target_keywords": "ANPR Whitelist erstellen, Kennzeichen registrieren",
        "secondary_keywords": "Whitelist pflegen, Kennzeichendatenbank verwalten",
        "intent": "informational",
    },
    {
        "title": "Falschparker-Workflow: Von der Erfassung bis zur Mahnung",
        "cluster": "howto",
        "priority": "A",
        "score": 85,
        "target_keywords": "Falschparker Workflow, Parkverstoß Ablauf",
        "secondary_keywords": "Mahnung Falschparker, Vertragsstrafe einfordern",
        "intent": "informational",
    },
    {
        "title": "ANPR-Kamera optimal positionieren: Technische Anleitung",
        "cluster": "howto",
        "priority": "B",
        "score": 78,
        "target_keywords": "ANPR Kamera Position, Kennzeichenkamera Winkel",
        "secondary_keywords": "optimale Kameraposition, ANPR Ausrichtung",
        "intent": "informational",
    },
    {
        "title": "Datenschutz-Dokumentation für ANPR: Vorlagen und Checklisten",
        "cluster": "howto",
        "priority": "B",
        "score": 75,
        "target_keywords": "ANPR Datenschutz Vorlage, DSGVO Dokumentation Parkplatz",
        "secondary_keywords": "Verarbeitungsverzeichnis ANPR, Datenschutzerklärung Parkplatz",
        "intent": "informational",
    },
    {
        "title": "Beschilderung für ANPR-Parkplätze: Gesetzliche Anforderungen erfüllen",
        "cluster": "howto",
        "priority": "B",
        "score": 72,
        "target_keywords": "ANPR Schild, Parkplatz Hinweisschilder",
        "secondary_keywords": "Kennzeichnung Videoüberwachung, Beschilderung Privatparkplatz",
        "intent": "informational",
    },
    {
        "title": "Mieter und Besucher in ANPR-Systemen verwalten",
        "cluster": "howto",
        "priority": "B",
        "score": 68,
        "target_keywords": "ANPR Besucherverwaltung, Mieterparkplatz ANPR",
        "secondary_keywords": "Gastparkplatz freigeben, temporäre Kennzeichen",
        "intent": "informational",
    },
    {
        "title": "ANPR-Auswertungen: KPIs und Reports für Parkplatzbetreiber",
        "cluster": "howto",
        "priority": "B",
        "score": 65,
        "target_keywords": "ANPR Reports, Parkplatzauswertung Statistik",
        "secondary_keywords": "ANPR Dashboard, Parkplatzbelegung messen",
        "intent": "informational",
    },
    {
        "title": "Wartungsplan für ANPR-Anlagen: Regelmäßige Checks",
        "cluster": "howto",
        "priority": "B",
        "score": 62,
        "target_keywords": "ANPR Wartungsplan, Kennzeichenkamera reinigen",
        "secondary_keywords": "ANPR Pflege, regelmäßige Kontrolle Parkplatz",
        "intent": "informational",
    },
    {
        "title": "Einsprüche auf Vertragsstrafen richtig bearbeiten",
        "cluster": "howto",
        "priority": "C",
        "score": 48,
        "target_keywords": "Einspruch Parkstrafe, Widerspruch Vertragsstrafe",
        "secondary_keywords": "Parkverstoß anfechten, Einspruch bearbeiten",
        "intent": "informational",
    },
    {
        "title": "ANPR-Daten exportieren und archivieren: Compliance-Anleitung",
        "cluster": "howto",
        "priority": "C",
        "score": 45,
        "target_keywords": "ANPR Daten Export, Kennzeichendaten archivieren",
        "secondary_keywords": "Datenexport Parkplatz, Archivierung Compliance",
        "intent": "informational",
    },
    {
        "title": "Mitarbeiter für ANPR-System schulen: Trainingskonzept",
        "cluster": "howto",
        "priority": "C",
        "score": 42,
        "target_keywords": "ANPR Schulung, Mitarbeiter Training Parkplatz",
        "secondary_keywords": "ANPR Einweisung, Bedienung Kennzeichensystem",
        "intent": "informational",
    },
    {
        "title": "ANPR mit Zutrittskontrolle verbinden: Integrations-Anleitung",
        "cluster": "howto",
        "priority": "C",
        "score": 38,
        "target_keywords": "ANPR Zutrittskontrolle, Kennzeichen Tor öffnen",
        "secondary_keywords": "automatische Schranke, ANPR Torsteuerung",
        "intent": "informational",
    },
    {
        "title": "Notfall-Prozesse für ANPR-Ausfälle definieren",
        "cluster": "howto",
        "priority": "C",
        "score": 35,
        "target_keywords": "ANPR Ausfall Notfall, Parkplatz Backup-Prozess",
        "secondary_keywords": "Notfallplan Parkplatz, ANPR Störung beheben",
        "intent": "informational",
    },
    {
        "title": "Saisonale Parkplatznutzung mit ANPR verwalten",
        "cluster": "howto",
        "priority": "C",
        "score": 32,
        "target_keywords": "ANPR saisonal, Parkplatz Sommer Winter",
        "secondary_keywords": "flexible Parkplatzverwaltung, Stoßzeiten Parkplatz",
        "intent": "informational",
    },

    # === TRENDS (Future/Innovations) - 15 topics ===
    {
        "title": "Zukunft des Parkens: ANPR-Trends und Innovationen",
        "cluster": "trends",
        "priority": "A",
        "score": 91,
        "target_keywords": "Parken Zukunft, ANPR Trends",
        "secondary_keywords": "Parkplatz Innovation, Smart Parking Zukunft",
        "intent": "informational",
    },
    {
        "title": "Smart City Parking: Wie ANPR Städte vernetzt",
        "cluster": "trends",
        "priority": "A",
        "score": 87,
        "target_keywords": "Smart City Parken, vernetztes Parkraummanagement",
        "secondary_keywords": "intelligente Stadt Parkplatz, IoT Parken",
        "intent": "informational",
    },
    {
        "title": "Autonomes Fahren und ANPR: Vorbereitung auf selbstfahrende Autos",
        "cluster": "trends",
        "priority": "B",
        "score": 78,
        "target_keywords": "autonomes Parken, ANPR selbstfahrende Autos",
        "secondary_keywords": "autonomes Fahren Parkplatz, Zukunft Parken autonom",
        "intent": "informational",
    },
    {
        "title": "Nachhaltigkeit im Parkraummanagement: ANPR und Umweltschutz",
        "cluster": "trends",
        "priority": "B",
        "score": 74,
        "target_keywords": "nachhaltiges Parken, ANPR Umwelt",
        "secondary_keywords": "grüner Parkplatz, CO2 reduzieren Parken",
        "intent": "informational",
    },
    {
        "title": "E-Mobilität und ANPR: Ladeinfrastruktur intelligent verwalten",
        "cluster": "trends",
        "priority": "B",
        "score": 70,
        "target_keywords": "E-Mobilität Parkplatz, ANPR Ladesäule",
        "secondary_keywords": "Elektroauto Parken, Ladepark Management",
        "intent": "informational",
    },
    {
        "title": "Carsharing und ANPR: Integration für geteilte Mobilität",
        "cluster": "trends",
        "priority": "B",
        "score": 66,
        "target_keywords": "Carsharing ANPR, geteilte Mobilität Parkplatz",
        "secondary_keywords": "ShareNow Parkplatz, Carsharing Integration",
        "intent": "informational",
    },
    {
        "title": "Blockchain und ANPR: Dezentrale Parkplatzverwaltung",
        "cluster": "trends",
        "priority": "C",
        "score": 48,
        "target_keywords": "Blockchain Parken, dezentral Parkplatz",
        "secondary_keywords": "Krypto Parkgebühr, Web3 Parken",
        "intent": "informational",
    },
    {
        "title": "5G und ANPR: Echtzeitverarbeitung der nächsten Generation",
        "cluster": "trends",
        "priority": "C",
        "score": 45,
        "target_keywords": "5G ANPR, Echtzeit Kennzeichenerkennung",
        "secondary_keywords": "mobiles Internet Parkplatz, latenzfrei ANPR",
        "intent": "informational",
    },
    {
        "title": "Biometrische Zugangskontrolle: ANPR ergänzen oder ersetzen?",
        "cluster": "trends",
        "priority": "C",
        "score": 42,
        "target_keywords": "biometrisch Parkplatz, Gesichtserkennung parken",
        "secondary_keywords": "Fingerabdruck Parken, biometrische Kontrolle",
        "intent": "informational",
    },
    {
        "title": "Digital Twins: Virtuelle Parkplatz-Simulation mit ANPR-Daten",
        "cluster": "trends",
        "priority": "C",
        "score": 38,
        "target_keywords": "Digital Twin Parkplatz, Simulation Parkraum",
        "secondary_keywords": "virtueller Parkplatz, Datenmodell Parken",
        "intent": "informational",
    },
    {
        "title": "Predictive Analytics: Parkplatzbelegung vorhersagen mit KI",
        "cluster": "trends",
        "priority": "C",
        "score": 35,
        "target_keywords": "Parkplatz Vorhersage, KI Belegungsprognose",
        "secondary_keywords": "Predictive Parking, Auslastung vorhersagen",
        "intent": "informational",
    },
    {
        "title": "Mobility as a Service (MaaS): ANPR als Teil der Mobilitätskette",
        "cluster": "trends",
        "priority": "C",
        "score": 32,
        "target_keywords": "MaaS Parken, Mobility as a Service Parkplatz",
        "secondary_keywords": "integrierte Mobilität, nahtlos parken",
        "intent": "informational",
    },
    {
        "title": "Edge Computing: ANPR-Verarbeitung direkt an der Kamera",
        "cluster": "trends",
        "priority": "C",
        "score": 28,
        "target_keywords": "Edge Computing ANPR, lokale Verarbeitung Kamera",
        "secondary_keywords": "dezentrale Kennzeichenerkennung, Edge AI Parken",
        "intent": "informational",
    },
    {
        "title": "Drohnenbasierte Parkplatzüberwachung: Ergänzung zu ANPR",
        "cluster": "trends",
        "priority": "C",
        "score": 25,
        "target_keywords": "Drohne Parkplatz, Luftüberwachung Parken",
        "secondary_keywords": "Drohnenüberwachung, UAV Parkraum",
        "intent": "informational",
    },
    {
        "title": "Quantencomputing und ANPR: Zukunftstechnologie im Überblick",
        "cluster": "trends",
        "priority": "C",
        "score": 22,
        "target_keywords": "Quantencomputer Parken, Zukunft ANPR Technologie",
        "secondary_keywords": "Quantentechnologie Parkplatz, langfristig ANPR",
        "intent": "informational",
    },

    # === PROBLEME (Problem-solving) - 15 topics ===
    {
        "title": "Fremdparker auf Privatparkplätzen: Problem erkennen und lösen",
        "cluster": "probleme",
        "priority": "A",
        "score": 96,
        "target_keywords": "Fremdparker Privatparkplatz, fremde Autos Parkplatz",
        "secondary_keywords": "Fremdparker loswerden, unbefugtes Parken",
        "intent": "informational",
    },
    {
        "title": "Dauerparker identifizieren und verhindern mit ANPR",
        "cluster": "probleme",
        "priority": "A",
        "score": 90,
        "target_keywords": "Dauerparker verhindern, Langzeitparker erkennen",
        "secondary_keywords": "Dauerparker Problem, Parkzeitüberschreitung",
        "intent": "informational",
    },
    {
        "title": "Vandalismus an ANPR-Anlagen: Prävention und Reaktion",
        "cluster": "probleme",
        "priority": "B",
        "score": 76,
        "target_keywords": "ANPR Vandalismus, Kennzeichenkamera Beschädigung",
        "secondary_keywords": "Kamera Schutz, vandalismusresistente ANPR",
        "intent": "informational",
    },
    {
        "title": "Fehlerkennungen bei ANPR: Ursachen und Lösungen",
        "cluster": "probleme",
        "priority": "B",
        "score": 73,
        "target_keywords": "ANPR Fehler, falsche Kennzeichenerkennung",
        "secondary_keywords": "OCR Fehlerquote, ANPR Genauigkeit verbessern",
        "intent": "informational",
    },
    {
        "title": "Kennzeichenmissbrauch: Wenn Nummernschilder gefälscht werden",
        "cluster": "probleme",
        "priority": "B",
        "score": 70,
        "target_keywords": "Kennzeichen Fälschung, gefälschte Nummernschilder",
        "secondary_keywords": "Kennzeichenmissbrauch erkennen, ANPR Betrug",
        "intent": "informational",
    },
    {
        "title": "Beschwerden von Fahrzeughaltern professionell handhaben",
        "cluster": "probleme",
        "priority": "B",
        "score": 67,
        "target_keywords": "Beschwerde Parkstrafe, Kundenbeschwerde Parkplatz",
        "secondary_keywords": "Reklamation Vertragsstrafe, Kundensupport Parken",
        "intent": "informational",
    },
    {
        "title": "Systemausfälle bei ANPR: Schnelle Wiederherstellung",
        "cluster": "probleme",
        "priority": "B",
        "score": 64,
        "target_keywords": "ANPR Ausfall, System nicht erreichbar",
        "secondary_keywords": "ANPR Wiederherstellung, Störung beheben",
        "intent": "informational",
    },
    {
        "title": "Unlesbare Kennzeichen: Schmutz, Schnee und Abnutzung",
        "cluster": "probleme",
        "priority": "B",
        "score": 61,
        "target_keywords": "Kennzeichen verschmutzt, unlesbares Nummernschild",
        "secondary_keywords": "ANPR Schnee, Schmutz Erkennung",
        "intent": "informational",
    },
    {
        "title": "Parkplatzstress reduzieren: Psychologie der Parkplatzsuche",
        "cluster": "probleme",
        "priority": "C",
        "score": 48,
        "target_keywords": "Parkplatz Stress, Parkplatzsuche Frustration",
        "secondary_keywords": "entspannt parken, Parkangst",
        "intent": "informational",
    },
    {
        "title": "Behindertenparkplätze überwachen: Missbrauch verhindern",
        "cluster": "probleme",
        "priority": "C",
        "score": 45,
        "target_keywords": "Behindertenparkplatz Missbrauch, Schwerbehindertenparkplatz",
        "secondary_keywords": "ANPR Behindertenparkplatz, barrierefreies Parken",
        "intent": "informational",
    },
    {
        "title": "Elektro-Parkplätze freihalten: Verbrenner von Ladesäulen fernhalten",
        "cluster": "probleme",
        "priority": "C",
        "score": 42,
        "target_keywords": "Ladesäule blockiert, Verbrenner Elektroparkplatz",
        "secondary_keywords": "E-Parkplatz freihalten, Ladestation besetzt",
        "intent": "informational",
    },
    {
        "title": "Nachtparker in Gewerbeparkplätzen: Strategien gegen illegales Übernachten",
        "cluster": "probleme",
        "priority": "C",
        "score": 38,
        "target_keywords": "Nachtparker Parkplatz, Übernachten Parkplatz",
        "secondary_keywords": "Camper Supermarkt, nächtliches Parken verhindern",
        "intent": "informational",
    },
    {
        "title": "Motorrad- und Rollerparkplätze mit ANPR verwalten",
        "cluster": "probleme",
        "priority": "C",
        "score": 35,
        "target_keywords": "Motorrad Parkplatz ANPR, Roller Kennzeichen",
        "secondary_keywords": "Zweirad Parken, Motorradparkplatz",
        "intent": "informational",
    },
    {
        "title": "Anhänger und Wohnmobile: Sonderfälle im Parkraummanagement",
        "cluster": "probleme",
        "priority": "C",
        "score": 32,
        "target_keywords": "Anhänger Parkplatz, Wohnmobil parken",
        "secondary_keywords": "Sonderfahrzeuge ANPR, Übergroße Fahrzeuge",
        "intent": "informational",
    },
    {
        "title": "Diplomatenkennzeichen und Sonderrechte: ANPR-Ausnahmen",
        "cluster": "probleme",
        "priority": "C",
        "score": 28,
        "target_keywords": "Diplomatenkennzeichen parken, Sonderkennzeichen ANPR",
        "secondary_keywords": "Immunität Parkstrafe, Behördenkennzeichen",
        "intent": "informational",
    },
]


def seed_topics():
    """Insert all topics into database."""
    if not test_connection():
        logger.error("Database connection failed")
        return 1

    logger.info(f"Seeding {len(TOPICS)} topics")
    inserted = 0
    skipped = 0

    for topic in TOPICS:
        slug = slugify(topic["title"])
        try:
            TopicRepository.insert(
                title=topic["title"],
                slug=slug,
                content_cluster=topic["cluster"],
                priority=topic["priority"],
                priority_score=topic["score"],
                target_keywords=topic["target_keywords"],
                secondary_keywords=topic.get("secondary_keywords"),
                search_intent=topic["intent"],
            )
            inserted += 1
            logger.debug(f"Inserted: {topic['title'][:50]}...")
        except Exception as e:
            if "Duplicate entry" in str(e):
                skipped += 1
                logger.debug(f"Skipped duplicate: {slug}")
            else:
                logger.error(f"Error inserting {slug}: {e}")

    logger.info(f"Seeding complete: {inserted} inserted, {skipped} skipped")
    return 0


if __name__ == "__main__":
    logging.basicConfig(
        level=logging.INFO,
        format="%(asctime)s - %(levelname)s - %(message)s",
    )
    sys.exit(seed_topics())
