(async () => {
    const apiClient = window.ApiClient;
    if (!apiClient) {
        console.error("ApiClient not found. Are you logged in?");
        return;
    }

    const userId = apiClient.getCurrentUserId();
    const serverAddress = apiClient.serverAddress();

    const maxDaysRecent = 30; // 30 Tage Limit
    const pastDate = new Date();
    pastDate.setDate(pastDate.getDate() - maxDaysRecent);
    const dateStr = pastDate.toISOString();

    console.log(`\n%c=== TEST: DateCreated Direkt-Abfrage ===`, "color: #00a4dc; font-weight: bold; font-size: 14px;");
    console.log(`Wir suchen Filme, die nach dem ${dateStr} hinzugefügt wurden.\n`);

    // Wir probieren alle denkbaren Parameter-Schreibweisen aus,
    // die Jellyfin historisch oder in Forks für "DateCreated" akzeptieren könnte.
    const testCases = [
        { name: "MinDateCreated (PascalCase)", param: `MinDateCreated=${dateStr}` },
        { name: "minDateCreated (camelCase)", param: `minDateCreated=${dateStr}` },
        { name: "DateCreatedMin", param: `DateCreatedMin=${dateStr}` },
        { name: "dateCreatedMin", param: `dateCreatedMin=${dateStr}` },
        { name: "StartDate", param: `StartDate=${dateStr}` },
        { name: "startDate", param: `startDate=${dateStr}` }
    ];

    try {
        for (let i = 0; i < testCases.length; i++) {
            const test = testCases[i];
            const apiUrl = `${serverAddress}/Items?IncludeItemTypes=Movie,Series&Recursive=true&enableUserData=true&Limit=5&fields=Id,DateCreated&userId=${userId}&${test.param}`;
            
            console.log(`%cTest ${i+1}: ${test.name}`, "color: yellow;");
            console.log(`URL: ${apiUrl}`);

            const response = await fetch(apiUrl, {
                headers: {
                    Authorization: `MediaBrowser Client="${apiClient.appName()}", Device="${apiClient.deviceName()}", DeviceId="${apiClient.deviceId()}", Version="${apiClient.appVersion()}", Token="${apiClient.accessToken()}"`
                }
            });

            if (!response.ok) {
                 console.error(`-> ❌ HTTP Fehler: ${response.status}`);
                 continue;
            }

            const data = await response.json();
            const items = data.Items || [];
            
            // Zur Auswertung: Wenn die Abfrage ignoriert wird, liefert er oft ALLE (hier max 5) zurück.
            // Filtert er wirklich, sollten es WENIGER als 5, und zwar im besten Fall genau die RICHTIGEN sein.
            console.log(`-> Ergebnis: ${items.length} Items zurückgeliefert.`);
            
            if (items.length > 0) {
                // Wir checken, ob die zurückgelieferten Items WIRKLICH neu sind
                const oldItems = items.filter(item => new Date(item.DateCreated) < pastDate);
                if (oldItems.length > 0) {
                     console.log(`   ❌ Filter FEHLGESCHLAGEN: Es wurden ${oldItems.length} "alte" Filme zurückgegeben (z.B. ${oldItems[0].Name}). Er ignoriert also den Parameter.`);
                } else {
                     console.log(`   ✅ Filter KÖNNTE funktionieren: Alle zurückgegebenen Filme sind neuer als unser Datum! (Erster: ${items[0].Name})`);
                }
            } else {
                 console.log(`   ❓ Keine Items gefunden (entweder strenger Filter oder gar keine neuen Filme vorhanden).`);
            }
            console.log("\n");
        }

    } catch (error) {
        console.error("Fehler beim Abruf:", error);
    }
})();
