"""BAN YARO — Hunde-Filme Routes"""

from fastapi import APIRouter, Depends, HTTPException, Query
from pydantic import BaseModel
from typing import Optional
from datetime import datetime
from database import db
from auth import get_current_user, get_current_user_optional, require_admin

router = APIRouter()


# ------------------------------------------------------------------
# Seed-Daten — werden beim ersten Start in die DB geschrieben
# ------------------------------------------------------------------
_SEED_FILME = [
    # ── Originalbestand ──────────────────────────────────────────────
    {"id": "lassie",           "titel": "Lassie",                        "jahr": 1943, "genre": "Familie",            "typ": "film",  "hund_rasse": "Collie",                           "stirbt_der_hund": False, "beschreibung": "Der Klassiker schlechthin. Lassie findet immer nach Hause.",                                                                             "bild_emoji": "🐕",  "imdb_rating": 7.0},
    {"id": "benji",            "titel": "Benji",                         "jahr": 1974, "genre": "Familie",            "typ": "film",  "hund_rasse": "Mischling",                        "stirbt_der_hund": False, "beschreibung": "Ein herrenloser Hund rettet Kinder aus den Händen von Entführern.",                                                                      "bild_emoji": "🐾",  "imdb_rating": 6.4},
    {"id": "marley-and-me",    "titel": "Marley & Ich",                  "jahr": 2008, "genre": "Drama/Komödie",      "typ": "film",  "hund_rasse": "Labrador",                         "stirbt_der_hund": True,  "beschreibung": "Der chaotischste, aber liebste Labrador der Welt. Achtung: Taschentücher bereithalten.",                                                   "bild_emoji": "😭",  "imdb_rating": 7.1},
    {"id": "hachiko",          "titel": "Hachi: A Dog's Tale",           "jahr": 2009, "genre": "Drama",              "typ": "film",  "hund_rasse": "Akita",                            "stirbt_der_hund": True,  "beschreibung": "Basiert auf der wahren Geschichte des treuen Akita Hachikō. Starke emotionale Wirkung.",                                                   "bild_emoji": "💔",  "imdb_rating": 8.1},
    {"id": "101-dalmatiner",   "titel": "101 Dalmatiner",                "jahr": 1961, "genre": "Animation/Familie",  "typ": "film",  "hund_rasse": "Dalmatiner",                       "stirbt_der_hund": False, "beschreibung": "Dalmatiner-Welpen vs. die böse Cruella de Vil. Animationsklassiker.",                                                                  "bild_emoji": "🐡",  "imdb_rating": 7.2},
    {"id": "beethoven",        "titel": "Beethoven",                     "jahr": 1992, "genre": "Familie/Komödie",    "typ": "film",  "hund_rasse": "Bernhardiner",                     "stirbt_der_hund": False, "beschreibung": "Riesiger Bernhardiner bringt Chaos ins Familienleben. Mehrere Fortsetzungen.",                                                           "bild_emoji": "🎵",  "imdb_rating": 5.9},
    {"id": "rex",              "titel": "Kommissar Rex",                 "jahr": 1994, "genre": "Krimi",              "typ": "serie", "hund_rasse": "Deutscher Schäferhund",            "stirbt_der_hund": False, "beschreibung": "Österreichische Krimiserie. Rex löst gemeinsam mit seinem Herrchen Verbrechen.",                                                         "bild_emoji": "🔍",  "imdb_rating": 7.5},
    {"id": "old-yeller",       "titel": "Old Yeller",                    "jahr": 1957, "genre": "Familie/Drama",      "typ": "film",  "hund_rasse": "Mischling",                        "stirbt_der_hund": True,  "beschreibung": "Amerikanischer Filmklassiker. Berühmtestes Filmende der Hundfilm-Geschichte.",                                                           "bild_emoji": "🌾",  "imdb_rating": 7.3},
    {"id": "buddy",            "titel": "Air Bud",                       "jahr": 1997, "genre": "Familie/Sport",      "typ": "film",  "hund_rasse": "Golden Retriever",                 "stirbt_der_hund": False, "beschreibung": "Hund spielt Basketball. Klingt absurd, wurde ein Hit.",                                                                               "bild_emoji": "🏀",  "imdb_rating": 5.7},
    {"id": "john-wick",        "titel": "John Wick",                     "jahr": 2014, "genre": "Action",             "typ": "film",  "hund_rasse": "Beagle",                           "stirbt_der_hund": True,  "beschreibung": "Achtung Spoiler: Der Hund stirbt am Anfang. Das löst die ganze Geschichte aus.",                                                          "bild_emoji": "💣",  "imdb_rating": 7.4},
    {"id": "isle-of-dogs",     "titel": "Isle of Dogs",                  "jahr": 2018, "genre": "Animation",          "typ": "film",  "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Wes Anderson Stopmotion-Meisterwerk. Alle Hunde Japans auf einer Insel verbannt.",                                                         "bild_emoji": "🏝️", "imdb_rating": 7.9},
    {"id": "eight-below",      "titel": "8 Below",                       "jahr": 2006, "genre": "Abenteuer/Drama",    "typ": "film",  "hund_rasse": "Schlittenhunde",                   "stirbt_der_hund": True,  "beschreibung": "Basiert auf wahren Ereignissen. Schlittenhunde überleben die Antarktis. Einige nicht.",                                                    "bild_emoji": "❄️",  "imdb_rating": 7.3},
    # ── Animation / Kinder ──────────────────────────────────────────
    {"id": "lady-and-the-tramp",  "titel": "Susi und Strolch",          "originaltitel": "Lady and the Tramp",          "jahr": 1955, "genre": "Animation/Familie",  "typ": "film",  "hund_rasse": "Cocker Spaniel / Mischling",       "stirbt_der_hund": False, "beschreibung": "Disney-Klassiker mit der berühmtesten Spaghetti-Szene der Filmgeschichte.",                                                             "bild_emoji": "🍝",  "imdb_rating": 7.3, "streaming": "Disney+"},
    {"id": "fox-and-the-hound",   "titel": "Cap und Capper",            "originaltitel": "The Fox and the Hound",        "jahr": 1981, "genre": "Animation/Familie",  "typ": "film",  "hund_rasse": "Bloodhound",                       "stirbt_der_hund": False, "beschreibung": "Emotionaler Disney-Film über Freundschaft zwischen Fuchs und Jagdhund — und wie die Welt sie trennt.",                                    "bild_emoji": "🦊",  "imdb_rating": 7.2, "streaming": "Disney+"},
    {"id": "balto",               "titel": "Balto",                     "jahr": 1995, "genre": "Animation/Abenteuer", "typ": "film",  "hund_rasse": "Husky/Wolf-Mischling",             "stirbt_der_hund": False, "beschreibung": "1925 brachte Schlittenhund Balto lebensrettende Medizin nach Nome, Alaska. Basiert auf einer wahren Heldengeschichte.",                  "bild_emoji": "🐺",  "imdb_rating": 7.1, "streaming": "Amazon Prime"},
    {"id": "bolt",                "titel": "Bolt — Ein Hund für alle Fälle", "originaltitel": "Bolt",                 "jahr": 2008, "genre": "Animation/Abenteuer", "typ": "film",  "hund_rasse": "Weißer Schäferhund",               "stirbt_der_hund": False, "beschreibung": "Ein TV-Superhund glaubt, seine Kräfte seien echt, und reist abenteuerlich quer durch Amerika.",                                         "bild_emoji": "⚡",  "imdb_rating": 6.8, "streaming": "Disney+"},
    {"id": "frankenweenie",       "titel": "Frankenweenie",             "jahr": 2012, "genre": "Animation/Horrorkomödie","typ": "film","hund_rasse": "Bullterrier",                    "stirbt_der_hund": True,  "beschreibung": "Tim Burtons Stop-Motion-Meisterwerk: Ein Junge erweckt seinen toten Hund mit Wissenschaft wieder zum Leben.",                              "bild_emoji": "🧟",  "imdb_rating": 6.9, "streaming": "Disney+"},
    {"id": "secret-life-of-pets", "titel": "Pets — Geheimes Leben der Haustiere","originaltitel": "The Secret Life of Pets","jahr": 2016,"genre": "Animation/Komödie","typ": "film","hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Was machen unsere Haustiere, wenn wir nicht zu Hause sind? Rasante Antwort mit Witz und Charme.",                                         "bild_emoji": "🏠",  "imdb_rating": 6.5, "streaming": "Amazon Prime"},
    {"id": "plague-dogs",         "titel": "The Plague Dogs",           "jahr": 1982, "genre": "Animation/Drama",     "typ": "film",  "hund_rasse": "Labrador / Mischling",             "stirbt_der_hund": True,  "beschreibung": "Düsterer Animationsfilm für Erwachsene: Zwei Hunde fliehen aus einem Tierversuchs-Labor. Brutal ehrlich, nach Richard Adams.",               "bild_emoji": "🚫",  "imdb_rating": 7.7},
    {"id": "paw-patrol-movie",    "titel": "PAW Patrol: Der Kinofilm",  "originaltitel": "PAW Patrol: The Movie",       "jahr": 2021, "genre": "Animation/Kinder",   "typ": "film",  "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Die beliebten TV-Rettungshunde auf der großen Leinwand. Für die jüngsten Fans ein Pflichtprogramm.",                                       "bild_emoji": "🚒",  "imdb_rating": 6.1, "streaming": "Amazon Prime"},
    # ── Klassiker vor 1980 ──────────────────────────────────────────
    {"id": "the-thin-man",        "titel": "Der dünne Mann",            "originaltitel": "The Thin Man",                "jahr": 1934, "genre": "Krimi/Komödie",      "typ": "film",  "hund_rasse": "Drahthaariger Foxterrier",          "stirbt_der_hund": False, "beschreibung": "Hollywood-Klassiker mit Nick und Nora Charles — und Asta, dem witzigsten Hund der Filmgeschichte. Mehrere Fortsetzungen.",                "bild_emoji": "🍸",  "imdb_rating": 7.9},
    {"id": "lassie-come-home",    "titel": "Lassie kehrt heim",         "originaltitel": "Lassie Come Home",            "jahr": 1943, "genre": "Familie/Drama",      "typ": "film",  "hund_rasse": "Collie",                           "stirbt_der_hund": False, "beschreibung": "Der Originalfilm: Ein armes Farmkind muss seinen geliebten Collie verkaufen — Lassie findet trotzdem heim.",                             "bild_emoji": "🏡",  "imdb_rating": 7.1},
    {"id": "incredible-journey",  "titel": "Die unglaubliche Reise",    "originaltitel": "The Incredible Journey",      "jahr": 1963, "genre": "Abenteuer/Familie",  "typ": "film",  "hund_rasse": "Bullterrier / Labrador",            "stirbt_der_hund": False, "beschreibung": "Zwei Hunde und eine Katze meistern 400 km kanadische Wildnis — Disney-Abenteuer nach dem Roman von Sheila Burnford.",                     "bild_emoji": "🗺️", "imdb_rating": 7.0},
    {"id": "greyfriars-bobby",    "titel": "Greyfriars Bobby",          "jahr": 1961, "genre": "Familie/Drama",        "typ": "film",  "hund_rasse": "Skye Terrier",                     "stirbt_der_hund": False, "beschreibung": "Basiert auf der wahren Geschichte des Terriers, der 14 Jahre das Grab seines Herrchens in Edinburgh bewachte.",                            "bild_emoji": "⛪",  "imdb_rating": 7.2, "streaming": "Disney+"},
    {"id": "sounder",             "titel": "Sounder",                   "jahr": 1972, "genre": "Drama/Familie",        "typ": "film",  "hund_rasse": "Coonhound",                        "stirbt_der_hund": False, "beschreibung": "Oscar-nominiertes Drama über eine schwarze Farmfamilie in der Great Depression. Ihr Hund Sounder ist das Herz der Geschichte.",           "bild_emoji": "🌾",  "imdb_rating": 7.5},
    {"id": "where-red-fern-grows","titel": "Wo der rote Farn wächst",   "originaltitel": "Where the Red Fern Grows",   "jahr": 1974, "genre": "Familie/Drama",      "typ": "film",  "hund_rasse": "Coonhound",                        "stirbt_der_hund": True,  "beschreibung": "Ein Junge spart jahrelang für zwei Jagdhunde. Kultfilm der amerikanischen Kindheit — das Ende lässt kaum jemanden trocken.",              "bild_emoji": "🌿",  "imdb_rating": 6.9},
    {"id": "milo-and-otis",       "titel": "Milo und Otis",             "originaltitel": "The Adventures of Milo and Otis","jahr": 1986,"genre": "Abenteuer/Familie","typ": "film",  "hund_rasse": "Mops",                             "stirbt_der_hund": False, "beschreibung": "Japanischer Realfilm mit Katze und Hund auf großer Abenteuerreise. Für Kinder ein Klassiker, für Erwachsene nostalgisches Heimweh.",     "bild_emoji": "🐾",  "imdb_rating": 6.9},
    {"id": "umberto-d",           "titel": "Umberto D.",                "jahr": 1952, "genre": "Drama",                "typ": "film",  "hund_rasse": "Mischling",                        "stirbt_der_hund": False, "beschreibung": "Meisterwerk des italienischen Neorealismus: Ein alter Rentner und sein Hund kämpfen würdevoll gegen Armut in Rom.",                         "bild_emoji": "🇮🇹", "imdb_rating": 8.1, "streaming": "Mubi"},
    # ── Wahre Geschichten ───────────────────────────────────────────
    {"id": "homeward-bound",      "titel": "Auf dem Weg nach Hause",    "originaltitel": "Homeward Bound",              "jahr": 1993, "genre": "Abenteuer/Familie",  "typ": "film",  "hund_rasse": "Bullterrier / Golden Retriever",    "stirbt_der_hund": False, "beschreibung": "Zwei Hunde und eine Katze kämpfen sich mit Stimmen durch die amerikanische Wildnis nach Hause. Remake des Klassikers.",                    "bild_emoji": "🏔️", "imdb_rating": 7.0, "streaming": "Disney+"},
    {"id": "togo",                "titel": "Togo",                      "jahr": 2019, "genre": "Abenteuer/Drama",       "typ": "film",  "hund_rasse": "Sibirischer Husky",                "stirbt_der_hund": False, "beschreibung": "Die unbekannte Geschichte hinter dem Balto-Mythos: Der echte Held des Serum-Runs 1925 war Togo. Außergewöhnlicher Disney+-Film.",           "bild_emoji": "🛷",  "imdb_rating": 7.9, "streaming": "Disney+"},
    {"id": "red-dog",             "titel": "Red Dog",                   "jahr": 2011, "genre": "Drama/Komödie",         "typ": "film",  "hund_rasse": "Kelpie",                           "stirbt_der_hund": True,  "beschreibung": "Australischer Kultfilm über einen echten Wanderhund, der eine Minengemeinschaft im Outback zusammenbrachte. Rauh und herzlich.",           "bild_emoji": "🦘",  "imdb_rating": 7.3, "streaming": "Amazon Prime"},
    {"id": "megan-leavey",        "titel": "Megan Leavey",              "jahr": 2017, "genre": "Biopic/Drama",          "typ": "film",  "hund_rasse": "Belgischer Schäferhund (Malinois)", "stirbt_der_hund": False, "beschreibung": "Die wahre Geschichte einer US-Marine und ihres Sprengstoff-Suchhundes Rex im Irak-Einsatz. Kate Mara in einer ihrer stärksten Rollen.",   "bild_emoji": "🎖️", "imdb_rating": 7.1, "streaming": "Amazon Prime"},
    {"id": "arthur-the-king",     "titel": "Arthur der König",          "originaltitel": "Arthur the King",             "jahr": 2024, "genre": "Abenteuer/Drama",    "typ": "film",  "hund_rasse": "Mischling",                        "stirbt_der_hund": False, "beschreibung": "Mark Wahlberg und ein streunender Hund meistern gemeinsam ein Extremrennen durch die Dominikanische Republik. Inspiriert von wahren Ereignissen.","bild_emoji": "🏆", "imdb_rating": 7.0, "streaming": "Amazon Prime"},
    {"id": "rescued-by-ruby",     "titel": "Gerettet von Ruby",         "originaltitel": "Rescued by Ruby",             "jahr": 2022, "genre": "Biopic/Familie",     "typ": "film",  "hund_rasse": "Australian Shepherd / Border Collie","stirbt_der_hund": False,"beschreibung": "Ein Polizist und ein Tierheim-Hund retten sich gegenseitig — wahre Geschichte aus Rhode Island.",                                           "bild_emoji": "🌟",  "imdb_rating": 7.2, "streaming": "Netflix"},
    {"id": "my-dog-skip",         "titel": "Mein Hund Skip",            "originaltitel": "My Dog Skip",                 "jahr": 2000, "genre": "Familie/Drama",      "typ": "film",  "hund_rasse": "Jack Russell Terrier",             "stirbt_der_hund": True,  "beschreibung": "Die Coming-of-Age-Geschichte eines einsamen Jungen im Mississippi der 1940er, der durch seinen Hund Skip Freundschaft findet.",              "bild_emoji": "📚",  "imdb_rating": 7.0},
    # ── Arbeitshunde / Polizeihunde ─────────────────────────────────
    {"id": "turner-and-hooch",    "titel": "Turner & Hooch",            "jahr": 1989, "genre": "Krimi/Komödie",        "typ": "film",  "hund_rasse": "Dogue de Bordeaux",                "stirbt_der_hund": True,  "beschreibung": "Tom Hanks als ordentlicher Detective trifft auf Hooch, den sabbernden Chaoshund. Buddy-Cop-Klassiker mit überraschend emotionalem Ende.",  "bild_emoji": "🕵️", "imdb_rating": 6.2, "streaming": "Disney+"},
    {"id": "k9",                  "titel": "K-9",                       "jahr": 1989, "genre": "Krimi/Komödie",        "typ": "film",  "hund_rasse": "Deutscher Schäferhund",            "stirbt_der_hund": False, "beschreibung": "Jim Belushi als Drogenfahnder bekommt zwangsweise den eigenwilligen Schäferhund Jerry als Partner. Klassiker des Buddy-Cop-Genres.",       "bild_emoji": "🚔",  "imdb_rating": 6.2},
    {"id": "max",                 "titel": "Max",                       "jahr": 2015, "genre": "Drama/Familie",        "typ": "film",  "hund_rasse": "Belgischer Schäferhund (Malinois)", "stirbt_der_hund": False, "beschreibung": "Ein Kriegshund aus Afghanistan wird nach dem Tod seines Handlers von dessen Familie adoptiert. Über Trauma und Vertrauen.",                "bild_emoji": "🎗️", "imdb_rating": 6.6, "streaming": "Amazon Prime"},
    {"id": "dog-2022",            "titel": "Dog",                       "jahr": 2022, "genre": "Drama/Komödie",        "typ": "film",  "hund_rasse": "Belgischer Schäferhund (Malinois)", "stirbt_der_hund": False, "beschreibung": "Channing Tatum fährt mit einem traumatisierten Kriegshund quer durch Amerika — roh, komisch und berührend.",                               "bild_emoji": "🚗",  "imdb_rating": 6.5, "streaming": "Amazon Prime"},
    {"id": "quill",               "titel": "Quill — Ein Führhund",      "originaltitel": "Quill: The Life of a Guide Dog","jahr": 2004,"genre": "Drama/Familie",     "typ": "film",  "hund_rasse": "Labrador",                         "stirbt_der_hund": True,  "beschreibung": "Japanischer Film über das Leben des Führhundes Quill vom Welpen bis zum Tod. Zeigt die unersetzliche Arbeit von Blindenführhunden.",        "bild_emoji": "👁️", "imdb_rating": 7.1},
    # ── Komödien ────────────────────────────────────────────────────
    {"id": "beethoven-2",         "titel": "Beethoven's 2nd",           "jahr": 1993, "genre": "Familie/Komödie",      "typ": "film",  "hund_rasse": "Bernhardiner",                     "stirbt_der_hund": False, "beschreibung": "Beethoven verliebt sich und bekommt Nachwuchs — vier chaotische Welpen bringen die Familie erneut an den Rand des Nervenzusammenbruchs.",  "bild_emoji": "🐶",  "imdb_rating": 5.4},
    {"id": "dog-days-2018",       "titel": "Dog Days",                  "jahr": 2018, "genre": "Komödie/Romanze",      "typ": "film",  "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Mehrere Angelenos und ihre Hunde, deren Leben sich charmant verflechten. Leichte Feel-Good-Komödie mit Vanessa Hudgens.",                    "bild_emoji": "☀️",  "imdb_rating": 6.3},
    {"id": "as-good-as-it-gets",  "titel": "Besser geht's nicht",       "originaltitel": "As Good as It Gets",          "jahr": 1997, "genre": "Komödie/Drama",      "typ": "film",  "hund_rasse": "Griffon Bruxellois",               "stirbt_der_hund": False, "beschreibung": "Jack Nicholson als Misanthrop, der durch einen kleinen Hund namens Verdell sein Herz entdeckt. Oscar-Gewinner, zeitlos witzig.",           "bild_emoji": "💊",  "imdb_rating": 7.7, "streaming": "Amazon Prime"},
    {"id": "eat-pray-bark",       "titel": "Eat Pray Bark",             "jahr": 2026, "genre": "Komödie",              "typ": "film",  "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Deutsche Komödie über fünf exzentrische Hundebesitzer, die gemeinsam einen Hundetrainer in den Tiroler Bergen aufsuchen. Top 10 in 49 Netflix-Ländern.", "bild_emoji": "🏔️", "imdb_rating": None, "streaming": "Netflix"},
    {"id": "the-artist",          "titel": "The Artist",                "jahr": 2011, "genre": "Drama/Komödie",        "typ": "film",  "hund_rasse": "Jack Russell Terrier",             "stirbt_der_hund": False, "beschreibung": "Oscar-Gewinner als Stummfilm-Hommage. Uggie der Jack Russell stahl allen die Show und gewann den Palm Dog Award in Cannes.",                "bild_emoji": "🎬",  "imdb_rating": 7.8, "streaming": "Amazon Prime"},
    # ── Thriller / Action / Horror ──────────────────────────────────
    {"id": "cujo",                "titel": "Cujo",                      "jahr": 1983, "genre": "Horror/Thriller",      "typ": "film",  "hund_rasse": "Bernhardiner",                     "stirbt_der_hund": True,  "beschreibung": "Stephen Kings Roman verfilmt: Ein tollwütiger Bernhardiner terrorisiert eine Mutter und ihr Kind in einem Auto. Klassiker des 80er-Horror.",  "bild_emoji": "🩸",  "imdb_rating": 6.1, "streaming": "Amazon Prime"},
    {"id": "white-god",           "titel": "White God — Hund ohne Gnade","originaltitel": "White God",                 "jahr": 2014, "genre": "Drama/Thriller",      "typ": "film",  "hund_rasse": "Mischling",                        "stirbt_der_hund": True,  "beschreibung": "Ungarischer Arthouse-Thriller mit 250 echten Straßenhunden. Ein Mädchen sucht seinen Hund — während die Hunde Rache nehmen. Cannes-Preis.",  "bild_emoji": "🔴",  "imdb_rating": 6.8},
    {"id": "dogman-2018",         "titel": "Dogman",                    "jahr": 2018, "genre": "Krimi/Drama",          "typ": "film",  "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Matteo Garrones preisgekrönter Film: Ein stiller Hundegroomer verstrickt sich mit einem brutalen Kriminellen. Cannes-Gewinner 2018.",       "bild_emoji": "✂️",  "imdb_rating": 7.2, "streaming": "Amazon Prime"},
    {"id": "call-of-the-wild",    "titel": "Ruf der Wildnis",           "originaltitel": "The Call of the Wild",        "jahr": 2020, "genre": "Abenteuer/Drama",    "typ": "film",  "hund_rasse": "Saint Bernard Mix (CGI)",          "stirbt_der_hund": False, "beschreibung": "Jack Londons Klassiker mit Harrison Ford: Hund Buck wandert vom Salon-Leben in die Wildnis des Klondike. Episch.",                         "bild_emoji": "🌲",  "imdb_rating": 6.7, "streaming": "Disney+"},
    # ── Deutsche / österreichische Produktionen ─────────────────────
    {"id": "lassie-neues-abenteuer","titel": "Lassie — Ein neues Abenteuer","jahr": 2023, "genre": "Familie/Abenteuer","typ": "film", "hund_rasse": "Collie",                           "stirbt_der_hund": False, "beschreibung": "Deutsche Neuinterpretation: Lassie hilft Kindern dabei, mysteriöse Hundesdiebstähle aufzudecken. Für Kinder und Familien.",                 "bild_emoji": "🐕",  "imdb_rating": 5.6},
    # ── Neuere Serien ───────────────────────────────────────────────
    {"id": "turner-hooch-serie",  "titel": "Turner & Hooch (Serie)",    "originaltitel": "Turner & Hooch",              "jahr": 2021, "genre": "Krimi/Komödie",      "typ": "serie", "hund_rasse": "Dogue de Bordeaux",                "stirbt_der_hund": False, "beschreibung": "Disney+-Sequel zur Filmklassik: Der Sohn des Originals detektiviert mit Hoochs Nachfolger. Nach einer Staffel abgesetzt.",                "bild_emoji": "📺",  "imdb_rating": 6.6, "streaming": "Disney+"},
    {"id": "healing-powers-of-dude","titel": "Dude, mein Hund",         "originaltitel": "The Healing Powers of Dude",  "jahr": 2020, "genre": "Komödie/Familie",    "typ": "serie", "hund_rasse": "Labradoodle",                      "stirbt_der_hund": False, "beschreibung": "Netflix-Jugendserie: Ein Junge mit sozialer Angststörung und sein emotionaler Support-Hund meistern gemeinsam die Middle School.",         "bild_emoji": "💙",  "imdb_rating": 6.6, "streaming": "Netflix"},
    {"id": "hudson-rex",          "titel": "Hudson & Rex",              "jahr": 2019, "genre": "Krimi",                 "typ": "serie", "hund_rasse": "Deutscher Schäferhund",            "stirbt_der_hund": False, "beschreibung": "Kanadische Neuauflage von Kommissar Rex: Detective Hudson und sein Schäferhund Rex lösen in Neufundland Verbrechen. Läuft seit 2019.",    "bild_emoji": "🍁",  "imdb_rating": 7.4},
    # ── Klassische Serien ───────────────────────────────────────────
    {"id": "lassie-serie",        "titel": "Lassie (TV-Serie)",         "originaltitel": "Lassie",                      "jahr": 1954, "genre": "Familie/Abenteuer",  "typ": "serie", "hund_rasse": "Collie",                           "stirbt_der_hund": False, "beschreibung": "Die legendäre CBS-Serie, die 20 Jahre lief und Generationen prägte. Lassies wöchentliche Rettungsaktionen wurden zum Inbegriff des Treue-Hundes.", "bild_emoji": "📡", "imdb_rating": 7.5},
    {"id": "rin-tin-tin-serie",   "titel": "Rin Tin Tin",               "originaltitel": "The Adventures of Rin Tin Tin","jahr": 1954, "genre": "Western/Familie",    "typ": "serie", "hund_rasse": "Deutscher Schäferhund",            "stirbt_der_hund": False, "beschreibung": "Legendäre 1950er-Western-Serie. Ein Waisenjunge und sein Schäferhund helfen der US-Kavallerie im Wilden Westen.",                           "bild_emoji": "🤠",  "imdb_rating": 7.0},
    # ── Dokumentationen ─────────────────────────────────────────────
    {"id": "dogs-netflix",        "titel": "Dogs",                      "jahr": 2018, "genre": "Dokumentation",         "typ": "doku", "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Herzzerreißende Netflix-Dokuserie über die Bindung zwischen Hunden und Menschen weltweit. Sechs Episoden, Tränen garantiert.",              "bild_emoji": "❤️",  "imdb_rating": 8.0, "streaming": "Netflix"},
    {"id": "pick-of-the-litter",  "titel": "Pick of the Litter",        "jahr": 2018, "genre": "Dokumentation",         "typ": "doku", "hund_rasse": "Labrador",                         "stirbt_der_hund": False, "beschreibung": "Ein Labrador-Wurf wird zur Führhundausbildung bestimmt. Nicht alle schaffen es — spannend wie ein Spielfilm.",                            "bild_emoji": "🎗️", "imdb_rating": 7.6, "streaming": "Amazon Prime"},
    {"id": "inside-mind-of-dog",  "titel": "Im Kopf des Hundes",        "originaltitel": "Inside the Mind of a Dog",    "jahr": 2024, "genre": "Dokumentation",      "typ": "doku", "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Netflix-Wissenschaftsdoku: Was wissen Hunde wirklich über uns? Rob Lowe erzählt, Forscher erklären die Kognition unserer Vierbeiner.",     "bild_emoji": "🧠",  "imdb_rating": 7.2, "streaming": "Netflix"},
    {"id": "stray-doku",          "titel": "Stray",                     "jahr": 2020, "genre": "Dokumentation",         "typ": "doku", "hund_rasse": "Mischling",                        "stirbt_der_hund": False, "beschreibung": "Poetische Doku aus Hundeperspektive: Die Kamera folgt drei Straßenhunden durch Istanbul. Philosophisch, still und ungemein berührend.",   "bild_emoji": "🕌",  "imdb_rating": 6.9, "streaming": "Amazon Prime"},
    {"id": "dog-by-dog",          "titel": "Dog by Dog",                "jahr": 2015, "genre": "Dokumentation",         "typ": "doku", "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Erschütternde Doku über den milliardenschweren Welpen-Industrie-Komplex in den USA. Folgt dem Geldfluss hinter Puppy Mills.",              "bild_emoji": "💰",  "imdb_rating": 8.8, "streaming": "Netflix"},
    {"id": "gunthers-millions",   "titel": "Günthers Millionen",        "originaltitel": "Gunther's Millions",          "jahr": 2023, "genre": "Dokumentation",      "typ": "doku", "hund_rasse": "Deutscher Schäferhund",            "stirbt_der_hund": False, "beschreibung": "Die absurde Netflix-Doku: Erbte ein Schäferhund wirklich eine halbe Milliarde Euro? Die Wahrheit ist noch seltsamer.",                      "bild_emoji": "💎",  "imdb_rating": 5.6, "streaming": "Netflix"},
    # ── Weitere ─────────────────────────────────────────────────────
    {"id": "a-dogs-purpose",      "titel": "Bailey — Ein Freund fürs Leben","originaltitel": "A Dog's Purpose",         "jahr": 2017, "genre": "Drama/Familie",      "typ": "film",  "hund_rasse": "Verschiedene (Labrador, Corgi u.a.)","stirbt_der_hund": True, "beschreibung": "Ein Hund wird mehrfach wiedergeboren und sucht in jeder Inkarnation nach seinem Sinn. Taschentücher-Pflicht.",                               "bild_emoji": "🔄",  "imdb_rating": 7.3, "streaming": "Amazon Prime"},
    {"id": "a-dogs-journey",      "titel": "Bailey 2",                  "originaltitel": "A Dog's Journey",             "jahr": 2019, "genre": "Drama/Familie",      "typ": "film",  "hund_rasse": "Beagle / Bernhardiner u.a.",        "stirbt_der_hund": True,  "beschreibung": "Fortsetzung: Bailey beschützt in mehreren Leben die Enkelin seines Herrchens. Emotional und rührend.",                                     "bild_emoji": "🔄",  "imdb_rating": 7.5, "streaming": "Amazon Prime"},
    {"id": "art-of-racing",       "titel": "Enzo und die wundersame Welt der Menschen","originaltitel": "The Art of Racing in the Rain","jahr": 2019,"genre": "Drama","typ": "film","hund_rasse": "Golden Retriever",                 "stirbt_der_hund": True,  "beschreibung": "Ein Golden Retriever erzählt seine Lebensgeschichte. Philosophisch, witzig, herzzerreißend — Kevin Costner leiht ihm die Stimme.",         "bild_emoji": "🏎️", "imdb_rating": 7.6, "streaming": "Disney+"},
    {"id": "dog-gone",            "titel": "Dog Gone",                  "originaltitel": "Dog Gone",                    "jahr": 2023, "genre": "Drama/Familie",      "typ": "film",  "hund_rasse": "Golden Retriever",                 "stirbt_der_hund": False, "beschreibung": "Vater und Sohn suchen auf dem Appalachian Trail ihren verlorenen kranken Hund — und finden dabei zueinander. Wahre Geschichte.",           "bild_emoji": "🥾",  "imdb_rating": 6.1, "streaming": "Netflix"},
    {"id": "white-fang",          "titel": "Wolfsblut",                 "originaltitel": "White Fang",                  "jahr": 1991, "genre": "Abenteuer/Familie",  "typ": "film",  "hund_rasse": "Wolf-Hund-Hybrid",                 "stirbt_der_hund": False, "beschreibung": "Jack Londons Klassiker mit Ethan Hawke: Ein Wolf-Hund-Hybrid findet in Alaska zwischen Wildnis und Menschenwelt seinen Platz.",              "bild_emoji": "❄️",  "imdb_rating": 6.7},
    {"id": "because-of-winn-dixie","titel": "Winn-Dixie",              "originaltitel": "Because of Winn-Dixie",        "jahr": 2005, "genre": "Familie/Drama",      "typ": "film",  "hund_rasse": "Mischling",                        "stirbt_der_hund": False, "beschreibung": "Ein einsames Mädchen findet einen streunenden Hund im Supermarkt — und mit ihm eine ganze Gemeinschaft.",                                   "bild_emoji": "🛒",  "imdb_rating": 6.4},
    {"id": "lassie-2005",         "titel": "Lassie (2005)",             "jahr": 2005, "genre": "Familie/Abenteuer",    "typ": "film",  "hund_rasse": "Collie",                           "stirbt_der_hund": False, "beschreibung": "Britische Neuverfilmung mit Peter O'Toole. Lassie flieht aus Schottland und findet den langen Weg nach Yorkshire. Atmosphärisch.",         "bild_emoji": "🏴󠁧󠁢󠁳󠁣󠁴󠁿", "imdb_rating": 6.7},
    # ── Neue Einträge: Animation ──────────────────────────────────────
    {"id": "all-dogs-go-to-heaven",  "titel": "Alle Hunde kommen in den Himmel", "originaltitel": "All Dogs Go to Heaven", "jahr": 1989, "genre": "Animation/Familie",  "typ": "film",  "hund_rasse": "Schäferhund / Mischling",           "stirbt_der_hund": True,  "beschreibung": "Don Bluth-Klassiker: Gauner-Hund Charlie entkommt dem Himmel und sucht Rache — bis er sich in ein Waisenmädchen verliebt.",              "bild_emoji": "😇",  "imdb_rating": 6.8},
    {"id": "all-dogs-go-heaven-2",   "titel": "Alle Hunde kommen in den Himmel 2", "originaltitel": "All Dogs Go to Heaven 2", "jahr": 1996, "genre": "Animation/Familie", "typ": "film", "hund_rasse": "Schäferhund / Mischling",          "stirbt_der_hund": False, "beschreibung": "Fortsetzung: Charlie kehrt aus dem Himmel zurück nach San Francisco — mit Charlie Sheen als Synchronstimme.",                           "bild_emoji": "😇",  "imdb_rating": 5.4},
    {"id": "oliver-and-company",     "titel": "Oliver & Co.",              "originaltitel": "Oliver & Company",            "jahr": 1988, "genre": "Animation/Familie",  "typ": "film",  "hund_rasse": "Verschiedene (Dodger = Mischling)",  "stirbt_der_hund": False, "beschreibung": "Disney modernisiert Oliver Twist: Ein obdachloser Kater schließt sich einer Hunde-Gang unter Anführer Dodger im New York der 1980er an.", "bild_emoji": "🎸",  "imdb_rating": 6.7, "streaming": "Disney+"},
    {"id": "peanuts-movie",          "titel": "Die Peanuts — Der Film",    "originaltitel": "The Peanuts Movie",           "jahr": 2015, "genre": "Animation/Familie",  "typ": "film",  "hund_rasse": "Beagle",                            "stirbt_der_hund": False, "beschreibung": "Snoopy und Charlie Brown auf der großen Leinwand. Perfekt für alle, die mit dem Kultcomic aufgewachsen sind.",                          "bild_emoji": "✈️",  "imdb_rating": 7.0, "streaming": "Disney+"},
    {"id": "clifford-big-red-dog",   "titel": "Clifford — Der große rote Hund", "originaltitel": "Clifford the Big Red Dog", "jahr": 2021, "genre": "Animation/Familie", "typ": "film", "hund_rasse": "Mischling (riesig)",               "stirbt_der_hund": False, "beschreibung": "Der riesige rote Hund aus dem Kinderbuchklassiker kommt ins Kino — Chaos und Herz für die ganze Familie.",                              "bild_emoji": "🔴",  "imdb_rating": 5.4, "streaming": "Amazon Prime"},
    {"id": "101-dalmatians-1996",    "titel": "101 Dalmatiner (1996)",     "originaltitel": "101 Dalmatians",              "jahr": 1996, "genre": "Familie/Komödie",    "typ": "film",  "hund_rasse": "Dalmatiner",                        "stirbt_der_hund": False, "beschreibung": "Glenn Close als unvergessliche Cruella de Vil im Live-Action-Remake des Disney-Klassikers — böse, schrill und absolut unterhaltsam.",   "bild_emoji": "🐾",  "imdb_rating": 5.7, "streaming": "Disney+"},
    {"id": "102-dalmatians",         "titel": "102 Dalmatiner",            "originaltitel": "102 Dalmatians",              "jahr": 2000, "genre": "Familie/Komödie",    "typ": "film",  "hund_rasse": "Dalmatiner",                        "stirbt_der_hund": False, "beschreibung": "Cruella ist scheinbar geläutert — aber die Dalmatiner-Welpen sind wieder in Gefahr. Fortsetzung mit Glenn Close.",                      "bild_emoji": "🐾",  "imdb_rating": 4.9, "streaming": "Disney+"},
    {"id": "lady-and-tramp-2019",    "titel": "Susi und Strolch (2019)",   "originaltitel": "Lady and the Tramp",          "jahr": 2019, "genre": "Familie/Romanze",    "typ": "film",  "hund_rasse": "Cocker Spaniel / Mischling",        "stirbt_der_hund": False, "beschreibung": "Disney+ Live-Action-Remake mit echten Hunden: Die ikonische Spaghetti-Szene neu inszeniert, herzlich und mit modernem Charme.",          "bild_emoji": "🍝",  "imdb_rating": 6.4, "streaming": "Disney+"},
    {"id": "my-dog-tulip",           "titel": "Mein Hund Tulip",          "originaltitel": "My Dog Tulip",                "jahr": 2009, "genre": "Animation/Drama",     "typ": "film",  "hund_rasse": "Deutscher Schäferhund",             "stirbt_der_hund": True,  "beschreibung": "Animierter Arthouse-Film nach J.R. Ackerley: Ein eigenbrötlerischer Engländer und die vorbehaltlose Liebe zu seiner Schäferhündin Tulip.", "bild_emoji": "🌷",  "imdb_rating": 7.0},
    {"id": "bluey",                  "titel": "Bluey",                    "jahr": 2018, "genre": "Animation/Kinder",      "typ": "serie", "hund_rasse": "Blue Heeler",                       "stirbt_der_hund": False, "beschreibung": "Australische Kinder-Animationsserie über eine Blue-Heeler-Familie, die weltweit Eltern und Kinder gleichermaßen begeistert. Meistgeliebte Kinderserie des 21. Jahrhunderts.", "bild_emoji": "💙",  "imdb_rating": 9.0, "streaming": "Disney+"},
    {"id": "strays-2023",            "titel": "Strays — Lass uns Hunde sein", "originaltitel": "Strays",               "jahr": 2023, "genre": "Animation/Komödie",    "typ": "film",  "hund_rasse": "Mischling / Australian Shepherd",   "stirbt_der_hund": False, "beschreibung": "Komplett obszöne Erwachsenen-Trickfilm-Komödie: Verlassener Hund will mit neuen Hundefreunden Rache am Herrchen nehmen. Nicht für Kinder!","bild_emoji": "🤬",  "imdb_rating": 5.8, "streaming": "Amazon Prime"},
    # ── Neue Einträge: Familie/Drama ──────────────────────────────────
    {"id": "hotel-for-dogs",         "titel": "Hotel für Hunde",          "originaltitel": "Hotel for Dogs",              "jahr": 2009, "genre": "Familie/Komödie",    "typ": "film",  "hund_rasse": "Verschiedene",                      "stirbt_der_hund": False, "beschreibung": "Zwei Geschwister verwandeln ein leerstehendes Hotel in ein geheimes Paradies für Straßenhunde. Herzerwärmende Familienunterhaltung.",    "bild_emoji": "🏨",  "imdb_rating": 5.8},
    {"id": "snow-dogs",              "titel": "Snowdogs",                 "originaltitel": "Snow Dogs",                   "jahr": 2002, "genre": "Familie/Komödie",    "typ": "film",  "hund_rasse": "Siberian Husky",                    "stirbt_der_hund": False, "beschreibung": "Cuba Gooding Jr. erbt eine Schlittenhunde-Meute in Alaska und muss erst lernen, mit ihnen umzugehen. Leichte Disney-Komödie.",            "bild_emoji": "🛷",  "imdb_rating": 4.2, "streaming": "Disney+"},
    {"id": "a-dogs-way-home",        "titel": "Auf dem Heimweg — Lassie und Ich", "originaltitel": "A Dog's Way Home", "jahr": 2019, "genre": "Abenteuer/Familie",   "typ": "film",  "hund_rasse": "Pit-Bull-Mischling",                "stirbt_der_hund": False, "beschreibung": "Hündin Bella verliert sich 400 Meilen von zu Hause entfernt und kämpft sich durch alle Widrigkeiten zurück zu ihrem Herrchen.",           "bild_emoji": "🏡",  "imdb_rating": 6.7, "streaming": "Netflix"},
    {"id": "fluke",                  "titel": "Fluke — Das fremde Ich",   "originaltitel": "Fluke",                       "jahr": 1995, "genre": "Drama/Fantasy",      "typ": "film",  "hund_rasse": "Mischling",                         "stirbt_der_hund": False, "beschreibung": "Ein Mann stirbt und wird als Hund wiedergeboren — und kehrt zu seiner Familie zurück. Ungewöhnliches Dramafantasy mit tiefem emotionalem Kern.", "bild_emoji": "🔄", "imdb_rating": 6.2},
    {"id": "zeus-and-roxanne",       "titel": "Zeus und Roxanne",         "originaltitel": "Zeus and Roxanne",             "jahr": 1997, "genre": "Familie/Abenteuer", "typ": "film",  "hund_rasse": "Mischling",                         "stirbt_der_hund": False, "beschreibung": "Ein Hund und ein Delfin werden beste Freunde — und bringen dabei auch ihre Besitzer zusammen. Charmante Familienunterhaltung der 90er.",   "bild_emoji": "🐬",  "imdb_rating": 5.2},
    {"id": "benji-2018",             "titel": "Benji (2018)",             "originaltitel": "Benji",                       "jahr": 2018, "genre": "Familie/Abenteuer", "typ": "film",  "hund_rasse": "Mischling",                         "stirbt_der_hund": False, "beschreibung": "Netflix-Remake des Klassikers: Der streunende Hund Benji rettet erneut Kinder aus gefährlichen Händen — jetzt für eine neue Generation.",  "bild_emoji": "🐾",  "imdb_rating": 6.3, "streaming": "Netflix"},
    {"id": "ugly-dachshund",         "titel": "Der hässliche Dackel",     "originaltitel": "The Ugly Dachshund",          "jahr": 1966, "genre": "Familie/Komödie",    "typ": "film",  "hund_rasse": "Deutscher Dogge / Dackel",          "stirbt_der_hund": False, "beschreibung": "Disney-Klassiker: Eine Harlekindogge wird von Dackeln aufgezogen und denkt, sie sei selbst ein Dackel. Harmlose Familienkomödie.",           "bild_emoji": "😅",  "imdb_rating": 6.4},
    {"id": "shiloh",                 "titel": "Shiloh — Mein treuer Freund", "originaltitel": "Shiloh",                  "jahr": 1996, "genre": "Familie/Drama",      "typ": "film",  "hund_rasse": "Beagle",                            "stirbt_der_hund": False, "beschreibung": "Ein Junge in West Virginia rettet einen misshandelten Beagle vor seinem brutalen Besitzer — eine Geschichte über Mut und Gewissen.",       "bild_emoji": "🌿",  "imdb_rating": 6.7},
    {"id": "iron-will",              "titel": "Iron Will",                "jahr": 1994, "genre": "Abenteuer/Familie",     "typ": "film",  "hund_rasse": "Schlittenhunde",                    "stirbt_der_hund": False, "beschreibung": "Junger Mann rettet die Farm seiner Familie mit einem gewagten Schlittenhunde-Rennen von Kanada nach Minnesota. Inspirierend und episch.",  "bild_emoji": "🏆",  "imdb_rating": 6.7, "streaming": "Disney+"},
    {"id": "belle-et-sebastien",     "titel": "Belle und Sébastien",      "originaltitel": "Belle et Sébastien",          "jahr": 2013, "genre": "Familie/Abenteuer", "typ": "film",  "hund_rasse": "Pyrenäen-Berghund",                 "stirbt_der_hund": False, "beschreibung": "Französischer Familienfilm: Ein Waisenjunge und die riesige Berghündin Belle sind beste Freunde in den Alpen des Zweiten Weltkriegs.",    "bild_emoji": "🏔️", "imdb_rating": 7.0},
    {"id": "dog-of-flanders",        "titel": "Ein Hund von Flandern",    "originaltitel": "A Dog of Flanders",           "jahr": 1999, "genre": "Drama/Familie",      "typ": "film",  "hund_rasse": "Bouvier des Flandres",              "stirbt_der_hund": True,  "beschreibung": "Bewegende Verfilmung des Klassikers: Ein armer Junge in Belgien und sein Hund träumen von Kunst und Würde — mit tragischem Ende.",         "bild_emoji": "🎨",  "imdb_rating": 7.0},
    {"id": "underdog-2007",          "titel": "Underdog — Ein Held auf vier Pfoten", "originaltitel": "Underdog",        "jahr": 2007, "genre": "Familie/Komödie",    "typ": "film",  "hund_rasse": "Beagle",                            "stirbt_der_hund": False, "beschreibung": "Ein Laborhund erhält Superkräfte und wird zum maskierten Superhelden der Stadt. Leichte Disney-Familienkomödie nach der Zeichentrickserie.", "bild_emoji": "🦸", "imdb_rating": 5.1},
    {"id": "bingo-1991",             "titel": "Bingo",                    "jahr": 1991, "genre": "Familie/Komödie",       "typ": "film",  "hund_rasse": "Mischling",                         "stirbt_der_hund": False, "beschreibung": "Ein Zirkushund reist quer durch Amerika, um seinen jungen Herrchen zu finden. Kindheitserinnerung der frühen 90er.",                       "bild_emoji": "🎪",  "imdb_rating": 5.8},
    {"id": "goodbye-my-lady",        "titel": "Leb wohl, Lady",           "originaltitel": "Goodbye, My Lady",            "jahr": 1956, "genre": "Familie/Drama",      "typ": "film",  "hund_rasse": "Basenji",                           "stirbt_der_hund": False, "beschreibung": "Ein Junge im Mississippi-Sumpfland findet einen seltsamen lachenden Hund — und muss ihn am Ende zurückgeben. Zeitloser Klassiker.",        "bild_emoji": "🌊",  "imdb_rating": 7.1},
    {"id": "mitt-liv-som-hund",      "titel": "Mein Leben als Hund",      "originaltitel": "Mitt liv som hund",           "jahr": 1985, "genre": "Drama/Komödie",      "typ": "film",  "hund_rasse": "Mischling",                         "stirbt_der_hund": True,  "beschreibung": "Lasse Hallströms schwedisches Meisterwerk: Ein Junge wird aufs Land geschickt und vergleicht sein Leben mit dem Schicksal von Laika.",       "bild_emoji": "🇸🇪", "imdb_rating": 7.8},
    {"id": "homeward-bound-2",       "titel": "Auf dem Weg nach Hause 2 — Im Großstadtdschungel", "originaltitel": "Homeward Bound II: Lost in San Francisco", "jahr": 1996, "genre": "Abenteuer/Familie", "typ": "film", "hund_rasse": "Bullterrier / Golden Retriever", "stirbt_der_hund": False, "beschreibung": "Die Tiere aus Teil 1 verirren sich in San Francisco und müssen erneut den Weg nach Hause finden — diesmal durch die Stadt.", "bild_emoji": "🌉", "imdb_rating": 6.0, "streaming": "Disney+"},
    {"id": "alpha-2018",             "titel": "Alpha",                    "jahr": 2018, "genre": "Abenteuer/Drama",       "typ": "film",  "hund_rasse": "Wolf",                              "stirbt_der_hund": False, "beschreibung": "Vor 20.000 Jahren: Ein junger Jäger freundet sich mit einem verletzten Wolf an und legt damit den Grundstein für die Mensch-Hund-Beziehung.", "bild_emoji": "🐺", "imdb_rating": 6.7, "streaming": "Amazon Prime"},
    {"id": "nankyoku-monogatari",    "titel": "Antarktis",                "originaltitel": "Nankyoku Monogatari",          "jahr": 1983, "genre": "Drama/Abenteuer",    "typ": "film",  "hund_rasse": "Sakhalin Husky",                    "stirbt_der_hund": True,  "beschreibung": "Japanisches Meisterwerk: 15 Schlittenhunde werden 1958 in der Antarktis zurückgelassen — die wahre Geschichte zweier Überlebender.",        "bild_emoji": "🇯🇵", "imdb_rating": 7.7},
    # ── Neue Einträge: Komödie ────────────────────────────────────────
    {"id": "cats-and-dogs",          "titel": "Cats & Dogs",              "jahr": 2001, "genre": "Familie/Komödie",       "typ": "film",  "hund_rasse": "Beagle / Verschiedene",             "stirbt_der_hund": False, "beschreibung": "Geheimdienstagenten auf vier Pfoten: Hunde gegen Katzen im Kampf um die Weltherrschaft. Spionagefilm-Parodie für die ganze Familie.",     "bild_emoji": "🐱",  "imdb_rating": 5.2},
    {"id": "cats-and-dogs-2",        "titel": "Cats & Dogs 2 — Die Rache der Kitty Kahlohr", "originaltitel": "Cats & Dogs: The Revenge of Kitty Galore", "jahr": 2010, "genre": "Familie/Komödie", "typ": "film", "hund_rasse": "Verschiedene", "stirbt_der_hund": False, "beschreibung": "Fortsetzung: Hunde und Katzen müssen kooperieren, um eine wahnsinnige Superschurkin-Katze zu stoppen.", "bild_emoji": "😾", "imdb_rating": 4.1},
    {"id": "shaggy-dog-1959",        "titel": "Der zottige Hund",         "originaltitel": "The Shaggy Dog",              "jahr": 1959, "genre": "Familie/Komödie",    "typ": "film",  "hund_rasse": "Alter Ungarischer Hirtenhund (Sheepdogähnlich)", "stirbt_der_hund": False, "beschreibung": "Disney-Familienklassiker: Ein Teenager verwandelt sich durch einen magischen Ring immer wieder in einen Hund. Mit Fred MacMurray.", "bild_emoji": "✨", "imdb_rating": 6.3},
    {"id": "shaggy-dog-2006",        "titel": "The Shaggy Dog (2006)",    "originaltitel": "The Shaggy Dog",              "jahr": 2006, "genre": "Familie/Komödie",    "typ": "film",  "hund_rasse": "Bobtail (Alter Englischer Schäferhund)", "stirbt_der_hund": False, "beschreibung": "Tim Allen als Staatsanwalt, der sich in einen Hund verwandelt — modernes Remake des Disney-Klassikers mit Slapstick-Humor.",            "bild_emoji": "✨",  "imdb_rating": 5.2, "streaming": "Disney+"},
    {"id": "marmaduke-2010",         "titel": "Marmaduke",                "jahr": 2010, "genre": "Familie/Komödie",       "typ": "film",  "hund_rasse": "Deutsche Dogge",                    "stirbt_der_hund": False, "beschreibung": "Die riesige Comic-Dogge Marmaduke zieht nach Kalifornien und mischt die dortige Hunde-Gesellschaft auf. Lockerleichte Familienkomödie.",    "bild_emoji": "😬",  "imdb_rating": 4.6},
    {"id": "show-dogs",              "titel": "Show Dogs",                "jahr": 2018, "genre": "Familie/Komödie",       "typ": "film",  "hund_rasse": "Rottweiler",                        "stirbt_der_hund": False, "beschreibung": "Ein Polizei-Rottweiler muss undercover bei einer Hundeschau ermitteln. Kindliche Spionagekomödie mit Will Arnett.",                       "bild_emoji": "🏅",  "imdb_rating": 4.3},
    {"id": "must-love-dogs",         "titel": "Must Love Dogs",           "jahr": 2005, "genre": "Romanze/Komödie",       "typ": "film",  "hund_rasse": "Neufundländer",                     "stirbt_der_hund": False, "beschreibung": "Romantische Komödie: Eine frisch Geschiedene sucht online die Liebe — und ein Hund spielt dabei die entscheidende Rolle. Mit Diane Lane.", "bild_emoji": "💕",  "imdb_rating": 6.0},
    {"id": "best-in-show",           "titel": "Best in Show",             "jahr": 2000, "genre": "Komödie/Mockumentary", "typ": "film",  "hund_rasse": "Verschiedene",                      "stirbt_der_hund": False, "beschreibung": "Christopher Guest's genialer Mockumentary über völlig überdrehte Hundeshow-Besucher beim Mayflower Dog Show — vernichtende Satire auf Hundebesitzer.", "bild_emoji": "🎭", "imdb_rating": 7.8},
    {"id": "wiener-dog",             "titel": "Wiener-Dog",               "jahr": 2016, "genre": "Drama/Komödie",        "typ": "film",  "hund_rasse": "Dackel",                            "stirbt_der_hund": True,  "beschreibung": "Todd Solondz' episodischer Indie-Film: Ein kleiner Dackel wandert durch mehrere skurrile Menschenleben. Dunkel, philosophisch, preisgekrönt.", "bild_emoji": "🌭", "imdb_rating": 6.6},
    # ── Neue Einträge: Action/Thriller ───────────────────────────────
    {"id": "mans-best-friend-1993",  "titel": "Man's Best Friend",        "originaltitel": "Man's Best Friend",           "jahr": 1993, "genre": "Horror/Thriller",    "typ": "film",  "hund_rasse": "Mastiff",                           "stirbt_der_hund": True,  "beschreibung": "Ein genetisch manipulierter Kettenhund bricht aus einem Labor aus und entpuppt sich als tödliche Bedrohung. B-Movie-Horrorklassiker.",      "bild_emoji": "🧬",  "imdb_rating": 5.1},
    {"id": "white-dog-1982",         "titel": "White Dog",                "originaltitel": "White Dog",                   "jahr": 1982, "genre": "Drama/Thriller",      "typ": "film",  "hund_rasse": "Weißer Schäferhund",                "stirbt_der_hund": False, "beschreibung": "Samuel Fullers politisch brisanter Film: Ein weißer Schäferhund wurde auf schwarze Menschen abgerichtet — und soll nun umtrainiert werden.", "bild_emoji": "⚪", "imdb_rating": 7.2},
    {"id": "hound-of-baskervilles",  "titel": "Der Hund von Baskerville", "originaltitel": "The Hound of the Baskervilles", "jahr": 1939, "genre": "Krimi/Thriller",   "typ": "film",  "hund_rasse": "Fantastisches Wesen",               "stirbt_der_hund": False, "beschreibung": "Basil Rathbone als Sherlock Holmes in der besten Verfilmung des Doyle-Klassikers — die unheilvolle Legende des Dartmoor-Hundes.",          "bild_emoji": "🔦",  "imdb_rating": 7.4},
    # ── Neue Einträge: Japan/International ───────────────────────────
    {"id": "mari-to-koinu",          "titel": "Mari und ihr Hundewelpe",  "originaltitel": "Mari to koinu no monogatari", "jahr": 2007, "genre": "Drama/Familie",       "typ": "film",  "hund_rasse": "Shiba Inu",                         "stirbt_der_hund": False, "beschreibung": "Wahre Geschichte: Eine Shiba-Inu-Mutter rettet nach einem Erdbeben in den japanischen Alpen ihr Herrchen und ihre Welpen.",               "bild_emoji": "🏔️", "imdb_rating": 7.2},
    {"id": "ginga-nagareboshi-gin",  "titel": "Ginga: Nagareboshi Gin",   "originaltitel": "Ginga: Nagareboshi Gin",      "jahr": 1986, "genre": "Anime/Abenteuer",     "typ": "serie", "hund_rasse": "Akita Inu",                         "stirbt_der_hund": False, "beschreibung": "Legendärer japanischer Anime: Silber, ein junger Akita, kämpft gegen einen gigantischen Bären — packende Shonen-Klassikerserie der 80er.", "bild_emoji": "⭐", "imdb_rating": 8.0},
    # ── Neue Einträge: Serien ──────────────────────────────────────────
    {"id": "dog-whisperer",          "titel": "Der Hundeflüsterer",       "originaltitel": "Dog Whisperer with Cesar Millan", "jahr": 2004, "genre": "Dokumentation/Reality", "typ": "serie", "hund_rasse": "Verschiedene",                "stirbt_der_hund": False, "beschreibung": "Cesar Millan rehabilitiert Problemhunde und schult deren Besitzer. Legendäre Reality-Serie, die das Hundetraining nachhaltig beeinflusst hat.", "bild_emoji": "🤫", "imdb_rating": 7.8},
    {"id": "its-me-or-the-dog",      "titel": "Ich oder der Hund",        "originaltitel": "It's Me or the Dog",          "jahr": 2005, "genre": "Dokumentation/Reality","typ": "serie", "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Victoria Stilwell bringt unerzogenen Hunden Manieren bei — mit Positiver Verstärkung statt Dominanztheorie. Britische Erfolgsrealityshow.",  "bild_emoji": "💪",  "imdb_rating": 7.2},
    {"id": "lucky-dog",              "titel": "Lucky Dog",                "originaltitel": "Lucky Dog",                   "jahr": 2013, "genre": "Dokumentation/Reality","typ": "serie", "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Trainer Brandon McMillan rettet Todestrakt-Hunde aus Tierheimen und trainiert sie innerhalb einer Woche als perfekte Familienhunde.",      "bild_emoji": "🌟",  "imdb_rating": 7.5},
    {"id": "dog-impossible",         "titel": "Dog: Impossible",          "originaltitel": "Dog: Impossible",             "jahr": 2019, "genre": "Dokumentation/Reality","typ": "serie", "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Matt Beisner arbeitet mit aggressiven und traumatisierten Hunden, die andere aufgegeben haben. National Geographic's bewegende Trainerserie.", "bild_emoji": "🙏",  "imdb_rating": 8.1},
    {"id": "belle-sebastian-anime",  "titel": "Belle und Sebastian (Anime)", "originaltitel": "Belle et Sébastien",       "jahr": 1984, "genre": "Anime/Familie",        "typ": "serie", "hund_rasse": "Pyrenäen-Berghund",                "stirbt_der_hund": False, "beschreibung": "Japanische Zeichentrickserie der NHK: Sébastien und sein riesiger weißer Hund Belle in den Alpen — eine Lieblingsserie mehrerer Generationen.", "bild_emoji": "⛰️", "imdb_rating": 7.5},
    {"id": "the-dog-house",          "titel": "The Dog House",            "originaltitel": "The Dog House",               "jahr": 2019, "genre": "Dokumentation",         "typ": "serie", "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Channel 4-Doku über Wood Green Animal Shelter: Zuschauer beobachten, wie Hunde und Menschen füreinander bestimmt werden. Britische Kultdoku.", "bild_emoji": "🏡", "imdb_rating": 8.2},
    {"id": "puppy-dog-pals",         "titel": "Puppy Dog Pals",           "originaltitel": "Puppy Dog Pals",              "jahr": 2017, "genre": "Animation/Kinder",     "typ": "serie", "hund_rasse": "Mops",                             "stirbt_der_hund": False, "beschreibung": "Disney Junior-Serie: Zwei Möpse erleben täglich Abenteuer in der Nachbarschaft, während ihr Herrchen weg ist. Ideal für Kleinkinder.",     "bild_emoji": "🐾",  "imdb_rating": 7.4, "streaming": "Disney+"},
    {"id": "dogs-of-berlin",         "titel": "Dogs of Berlin",           "jahr": 2018, "genre": "Krimi/Drama",           "typ": "serie", "hund_rasse": "Kampfhund",                        "stirbt_der_hund": False, "beschreibung": "Netflix Deutschland-Originalserie: Zwei Berliner Ermittler aus verschiedenen Welten jagen einen Mörder — düster, social, brutal ehrlich.",  "bild_emoji": "🐕",  "imdb_rating": 7.4, "streaming": "Netflix"},
    # ── Neue Einträge: Dokumentationen ────────────────────────────────
    {"id": "the-champions-2015",     "titel": "The Champions",            "jahr": 2015, "genre": "Dokumentation",         "typ": "doku", "hund_rasse": "Pit Bull",                         "stirbt_der_hund": False, "beschreibung": "Bewegende Doku über die Pitbulls von Michael Vick's Dogfighting-Ring — und ihre erstaunliche Rehabilitation durch engagierte Retter.",     "bild_emoji": "💪",  "imdb_rating": 7.8},
    {"id": "one-nation-under-dog",   "titel": "One Nation Under Dog",     "originaltitel": "One Nation Under Dog",        "jahr": 2012, "genre": "Dokumentation",         "typ": "doku", "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "HBO-Dokumentation über die komplexe Beziehung der Amerikaner zu Hunden — von Tierheimen bis Luxus-Hundesalons.",                         "bild_emoji": "🇺🇸", "imdb_rating": 7.4},
    {"id": "dogs-on-the-inside",     "titel": "Dogs on the Inside",       "originaltitel": "Dogs on the Inside",          "jahr": 2014, "genre": "Dokumentation",         "typ": "doku", "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Gefangene in einem Hochsicherheitsgefängnis trainieren Tierheim-Hunde — eine Geschichte über Mitgefühl, Verantwortung und zweite Chancen.",  "bild_emoji": "🔒",  "imdb_rating": 7.6},
    {"id": "wonderdog-2023",         "titel": "Wonderdog",                "originaltitel": "Wonderdog",                   "jahr": 2023, "genre": "Dokumentation",         "typ": "doku", "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Netflix-Doku über die außergewöhnlichen Fähigkeiten von Hunden: Was können sie wirklich riechen, hören und fühlen? Wissenschaft trifft Herz.", "bild_emoji": "🔬", "imdb_rating": 7.1, "streaming": "Netflix"},
    {"id": "the-supervet",           "titel": "The Supervet",             "originaltitel": "The Supervet",                "jahr": 2014, "genre": "Dokumentation",         "typ": "doku", "hund_rasse": "Verschiedene",                     "stirbt_der_hund": False, "beschreibung": "Channel 4-Doku über Noel Fitzpatrick, den visionären Veterinärchirurgen, der unheilbar verletzte Tiere mit Hightech-Prothesen rettet.",   "bild_emoji": "🦾",  "imdb_rating": 8.7},
    {"id": "off-the-chain",          "titel": "Off the Chain",            "originaltitel": "Off the Chain",               "jahr": 2004, "genre": "Dokumentation",         "typ": "doku", "hund_rasse": "Pit Bull",                         "stirbt_der_hund": False, "beschreibung": "Erschütternde Doku über Pit Bulls in Amerika — zwischen Missbrauch, Dogfighting-Kultur und den Menschen, die für sie kämpfen.",             "bild_emoji": "⛓️",  "imdb_rating": 7.2},
    {"id": "war-dog-soldier",        "titel": "War Dog: A Soldier's Best Friend", "originaltitel": "War Dog: A Soldier's Best Friend", "jahr": 2017, "genre": "Dokumentation", "typ": "doku", "hund_rasse": "Belgischer Schäferhund (Malinois)", "stirbt_der_hund": False, "beschreibung": "National Geographic-Doku über Militärhunde und die unzerstörbare Bindung zu ihren Hundeführern — von der Ausbildung bis zum Einsatz.", "bild_emoji": "🎖️", "imdb_rating": 7.8},
]

_SEED_PROMIS = [
    {"name": "Hachikō",          "rasse": "Akita Inu",           "bekannt_fuer": "9 Jahre täglich auf seinen verstorbenen Herrchen am Bahnhof Shibuya gewartet. Statue in Tokio.",           "emoji": "🗿"},
    {"name": "Rin Tin Tin",      "rasse": "Deutscher Schäferhund","bekannt_fuer": "Filmhund der 1920er. Rettete Warner Bros. vor dem Bankrott. Erster Hundestar Hollywoods.",                 "emoji": "🎬"},
    {"name": "Laika",            "rasse": "Mischling",           "bekannt_fuer": "Erstes Lebewesen im Weltall (Sputnik 2, 1957). Sowjetische Weltraumpionierin.",                              "emoji": "🚀"},
    {"name": "Endal",            "rasse": "Labrador",            "bekannt_fuer": "Assistenzhund in England. Erster Hund der eine EC-Karte am Geldautomaten benutzte.",                        "emoji": "💳"},
    {"name": "Barry",            "rasse": "Bernhardiner",        "bekannt_fuer": "Legendärer Rettungshund der Alpen (1800–1812). Soll 40 Menschen das Leben gerettet haben.",                 "emoji": "🏔️"},
    {"name": "Greyfriars Bobby", "rasse": "Skye Terrier",        "bekannt_fuer": "14 Jahre das Grab seines Herrchens in Edinburgh bewacht. Statue und Pub benannt nach ihm.",                 "emoji": "⛪"},
    {"name": "Balto",            "rasse": "Siberian Husky",      "bekannt_fuer": "Führte 1925 den letzten Abschnitt des Serum-Runs nach Nome, Alaska. Statue im Central Park New York.",      "emoji": "🛷"},
    {"name": "Togo",             "rasse": "Siberian Husky",      "bekannt_fuer": "Der echte Held des Serum-Runs 1925 — legte die schwierigste Strecke zurück, blieb aber lange unbekannt.",  "emoji": "🏅"},
    {"name": "Asta",             "rasse": "Drahthaariger Foxterrier","bekannt_fuer": "Filmhund in der 'Dünner Mann'-Reihe (1934–1947). Hollywood-Ikone der klassischen Ära.",               "emoji": "🎩"},
    {"name": "Lassie",           "rasse": "Rough Collie",        "bekannt_fuer": "Meistverfilmter Hund der Geschichte. Erster Vierbeiner mit einem Stern auf dem Hollywood Walk of Fame.",   "emoji": "⭐"},
]


def seed_movies():
    """Füllt die movies-Tabelle mit allen Seed-Einträgen (idempotent per INSERT OR IGNORE)."""
    import logging
    logger = logging.getLogger(__name__)
    with db() as conn:
        for i, f in enumerate(_SEED_FILME):
            conn.execute("""
                INSERT OR IGNORE INTO movies
                    (id, titel, originaltitel, jahr, genre, typ, hund_rasse,
                     stirbt_der_hund, beschreibung, bild_emoji, imdb_rating,
                     streaming, sort_order)
                VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)
            """, (
                f["id"], f["titel"], f.get("originaltitel"),
                f.get("jahr"), f.get("genre"), f.get("typ", "film"),
                f.get("hund_rasse"), 1 if f.get("stirbt_der_hund") else 0,
                f.get("beschreibung"), f.get("bild_emoji", "🐾"),
                f.get("imdb_rating"), f.get("streaming"), i,
            ))
        logger.info(f"movies: seed_movies() ausgeführt, {len(_SEED_FILME)} Einträge in der Liste.")


# ------------------------------------------------------------------
# Schemas
# ------------------------------------------------------------------
class FilmVoteRequest(BaseModel):
    bewertung: int  # 1–5

class HundDesMonatsVoteRequest(BaseModel):
    dog_id: int

class MovieCreate(BaseModel):
    id:              str
    titel:           str
    originaltitel:   Optional[str] = None
    jahr:            Optional[int] = None
    genre:           Optional[str] = None
    typ:             str = "film"
    hund_rasse:      Optional[str] = None
    stirbt_der_hund: bool = False
    beschreibung:    Optional[str] = None
    bild_emoji:      str = "🐾"
    imdb_rating:     Optional[float] = None
    streaming:       Optional[str] = None

class MovieUpdate(BaseModel):
    titel:           Optional[str] = None
    originaltitel:   Optional[str] = None
    jahr:            Optional[int] = None
    genre:           Optional[str] = None
    typ:             Optional[str] = None
    hund_rasse:      Optional[str] = None
    stirbt_der_hund: Optional[bool] = None
    beschreibung:    Optional[str] = None
    bild_emoji:      Optional[str] = None
    imdb_rating:     Optional[float] = None
    streaming:       Optional[str] = None


# ------------------------------------------------------------------
# GET /api/movies/filme
# ------------------------------------------------------------------
_SORT_COLS = {
    "titel":     "m.titel ASC",
    "jahr_desc": "m.jahr DESC",
    "jahr_asc":  "m.jahr ASC",
    "imdb":      "m.imdb_rating DESC",
    "bewertung": "community_avg DESC",
    "default":   "CASE WHEN m.imdb_rating IS NULL THEN 1 ELSE 0 END, m.imdb_rating DESC, m.jahr DESC",
}

@router.get("/filme")
async def get_filme(
    sort: str = Query("default"),
    typ:  str = Query("alle"),   # alle | film | serie | doku
    user = Depends(get_current_user_optional),
):
    order = _SORT_COLS.get(sort, _SORT_COLS["default"])

    where = ""
    params: list = []
    if typ != "alle":
        where = "WHERE m.typ = ?"
        params.append(typ)

    with db() as conn:
        rows = conn.execute(f"""
            SELECT m.*,
                   COALESCE(AVG(v.bewertung), 0)  AS community_avg,
                   COUNT(v.id)                    AS bewertung_cnt,
                   uv.bewertung                   AS user_rating
            FROM movies m
            LEFT JOIN movie_votes v  ON v.film_id = m.id
            LEFT JOIN movie_votes uv ON uv.film_id = m.id
                                     AND uv.user_id = ?
            {where}
            GROUP BY m.id
            ORDER BY {order}
        """, [user["id"] if user else None] + params).fetchall()

    result = []
    for r in rows:
        d = dict(r)
        d["stirbt_der_hund"] = bool(d["stirbt_der_hund"])
        d["bewertung_avg"]   = round(d["community_avg"] or 0, 1)
        result.append(d)
    return result


# ------------------------------------------------------------------
# POST /api/movies/filme/{film_id}/vote
# ------------------------------------------------------------------
@router.post("/filme/{film_id}/vote")
async def vote_film(film_id: str, data: FilmVoteRequest, user=Depends(get_current_user)):
    if data.bewertung < 1 or data.bewertung > 5:
        raise HTTPException(400, "Bewertung muss zwischen 1 und 5 liegen.")
    with db() as conn:
        if not conn.execute("SELECT 1 FROM movies WHERE id=?", (film_id,)).fetchone():
            raise HTTPException(404, "Film nicht gefunden.")
        conn.execute("""
            INSERT INTO movie_votes (user_id, film_id, bewertung)
            VALUES (?, ?, ?)
            ON CONFLICT(user_id, film_id) DO UPDATE SET bewertung=excluded.bewertung
        """, (user["id"], film_id, data.bewertung))
        row = conn.execute(
            "SELECT AVG(bewertung) as avg_bew, COUNT(*) as cnt FROM movie_votes WHERE film_id=?",
            (film_id,),
        ).fetchone()
    return {
        "film_id":       film_id,
        "bewertung_avg": round(row["avg_bew"], 1) if row["avg_bew"] else data.bewertung,
        "bewertung_cnt": row["cnt"],
        "user_rating":   data.bewertung,
    }


# ------------------------------------------------------------------
# Admin: CRUD für Filme
# ------------------------------------------------------------------
@router.post("/filme", status_code=201)
async def create_film(data: MovieCreate, admin=Depends(require_admin)):
    with db() as conn:
        max_order = conn.execute("SELECT COALESCE(MAX(sort_order),0) FROM movies").fetchone()[0]
        try:
            conn.execute("""
                INSERT INTO movies (id, titel, originaltitel, jahr, genre, typ, hund_rasse,
                    stirbt_der_hund, beschreibung, bild_emoji, imdb_rating, streaming, sort_order)
                VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)
            """, (data.id, data.titel, data.originaltitel, data.jahr, data.genre, data.typ,
                  data.hund_rasse, 1 if data.stirbt_der_hund else 0, data.beschreibung,
                  data.bild_emoji, data.imdb_rating, data.streaming, max_order + 1))
        except Exception:
            raise HTTPException(400, "Film-ID bereits vorhanden.")
    return {"ok": True}

@router.patch("/filme/{film_id}")
async def update_film(film_id: str, data: MovieUpdate, admin=Depends(require_admin)):
    updates = {k: v for k, v in data.model_dump(exclude_none=True).items()}
    if "stirbt_der_hund" in updates:
        updates["stirbt_der_hund"] = 1 if updates["stirbt_der_hund"] else 0
    if not updates:
        return {"ok": True}
    set_clause = ", ".join(f"{k}=?" for k in updates)
    with db() as conn:
        conn.execute(f"UPDATE movies SET {set_clause} WHERE id=?", (*updates.values(), film_id))
    return {"ok": True}

@router.delete("/filme/{film_id}")
async def delete_film(film_id: str, admin=Depends(require_admin)):
    with db() as conn:
        conn.execute("DELETE FROM movies WHERE id=?", (film_id,))
    return {"ok": True}


# ------------------------------------------------------------------
# GET /api/movies/promis — Berühmte Hunde (aus Seed-Daten)
# ------------------------------------------------------------------
@router.get("/promis")
async def get_promis():
    return _SEED_PROMIS


# ------------------------------------------------------------------
# Hund des Monats
# ------------------------------------------------------------------
@router.get("/hund-des-monats")
async def get_hund_des_monats(user=Depends(get_current_user_optional)):
    monat = datetime.now().strftime("%Y-%m")
    with db() as conn:
        rows = conn.execute("""
            SELECT d.id, d.name, d.rasse, d.foto_url, u.name as besitzer_name,
                   COUNT(v.id) as stimmen
            FROM hund_des_monats_votes v
            JOIN dogs d ON d.id = v.dog_id
            JOIN users u ON u.id = d.user_id
            WHERE v.monat = ?
            GROUP BY v.dog_id
            ORDER BY stimmen DESC
            LIMIT 10
        """, (monat,)).fetchall()
        user_vote = None
        if user:
            row = conn.execute(
                "SELECT dog_id FROM hund_des_monats_votes WHERE user_id=? AND monat=?",
                (user["id"], monat),
            ).fetchone()
            if row:
                user_vote = row["dog_id"]
    return {"monat": monat, "top": [dict(r) for r in rows], "user_vote": user_vote}


@router.get("/hund-des-monats/kandidaten")
async def get_hdm_kandidaten(user=Depends(get_current_user)):
    """Alle öffentlichen Hunde anderer User, mit aktuellem Stimmenstand."""
    monat = datetime.now().strftime("%Y-%m")
    with db() as conn:
        rows = conn.execute("""
            SELECT d.id, d.name, d.rasse, d.foto_url,
                   u.name  AS besitzer_name,
                   COALESCE(v.stimmen, 0) AS stimmen
            FROM dogs d
            JOIN users u ON u.id = d.user_id
            LEFT JOIN (
                SELECT dog_id, COUNT(*) AS stimmen
                FROM hund_des_monats_votes
                WHERE monat = ?
                GROUP BY dog_id
            ) v ON v.dog_id = d.id
            WHERE d.is_public = 1
              AND d.user_id  != ?
            ORDER BY
                CASE WHEN d.foto_url IS NOT NULL THEN 0 ELSE 1 END,
                stimmen DESC,
                d.name  ASC
            LIMIT 60
        """, (monat, user["id"])).fetchall()
    return [dict(r) for r in rows]


@router.post("/hund-des-monats/vote")
async def vote_hund_des_monats(data: HundDesMonatsVoteRequest, user=Depends(get_current_user)):
    monat = datetime.now().strftime("%Y-%m")
    with db() as conn:
        dog = conn.execute("SELECT id, user_id, is_public FROM dogs WHERE id=?", (data.dog_id,)).fetchone()
        if not dog:
            raise HTTPException(404, "Hund nicht gefunden.")
        if dog["user_id"] == user["id"]:
            raise HTTPException(403, "Du kannst nicht für deinen eigenen Hund abstimmen.")
        if not dog["is_public"]:
            raise HTTPException(403, "Dieser Hund ist nicht öffentlich.")
        conn.execute("""
            INSERT INTO hund_des_monats_votes (user_id, dog_id, monat)
            VALUES (?, ?, ?)
            ON CONFLICT(user_id, monat) DO UPDATE SET dog_id=excluded.dog_id
        """, (user["id"], data.dog_id, monat))
        row = conn.execute(
            "SELECT COUNT(*) as cnt FROM hund_des_monats_votes WHERE dog_id=? AND monat=?",
            (data.dog_id, monat),
        ).fetchone()
    return {"dog_id": data.dog_id, "monat": monat, "stimmen": row["cnt"]}
