#!/usr/bin/env python3
"""Test cursor-based pagination with search_cursor."""
import requests, json

TOKEN = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxMDAwMzEiLCJqdGkiOiIwNjM5ODEwYzQ0YzM1MTBlZmZiMGRkYWNiM2EyNWFlNTg2YzFmNmQ5ODNjNGQ2MDA4NzkwZmM0NTkzY2EyNjg4ZGViZDE4NTgwOThmYjJjYiIsImlhdCI6MTc3MTUxNjc4OS44MzAxMzUsIm5iZiI6MTc3MTUxNjc4OS44MzAxMzcsImV4cCI6MjA4NzA0OTU4OS44MjcwODgsInN1YiI6IjIwMTcwOCIsInNjb3BlcyI6W119.ZxlCDsyBI7_SNUWjO-PUxDYKvQVfuUBzU5n-SgqHdAZCnOj9253yVcJIS5NRXJLrnyx0E_9bn8ymfXS71cvPISA4hPAlKCSMjdkv9f2k2FFwdAlQQ6mdhBB2m9dzHUIn34QwA8s4-ikB1ATKIZeqiJL-3Gh9eiMYPpvaJdCCjN-oGPMhhlehkgA04cZSgwy6HfKgb6uPvUSG9w_tvN8U06uEHKV11DedQHNWWGzuXpd2FEL3baV0z9KjSNMZsJZHx2yHUb6gVWJwaR7_louahMvrPXG-YLgnGvNMcPDPjm-z5HJ-JKcPv9_FBqAYGItZxgeGgVoS8MVhW6lc1a-6CvYtVanfXF42MPPNP-Qq76qRtHPLRBdkIATMuBxVJrMzlprT3n4F0sUUltGR4ixZuzMUm5LeyPMHgmjy2UfYzsl9eVqx0oJCmKUyY9maBXwFLJa8J1NHM_nWp3hPpCGkMyhzHK1DIf_z8Wirg1hp5vKts93eERWJBlQwhucUUS_KnZeC_gVaQ7kT4jCwaEWkpPxPxyXWRoK0mcYS_JGz3JbpVhRLj5DVYIB9k54DXqjYlCx8ezJZE9sf2SX3VWvPvD1xSQD1caTCm0To0B-MkeU1YpEfWdUslpCJXrpOy2Wbs8iDHR1BzNrMnOEr4zbz_EoB4JJe3tGTGjzNLNIw6XI"
PUBLISHER_ID = "1347930"
H = {"Authorization": f"Bearer {TOKEN}", "Accept": "application/json"}
url = f"https://platform-api.webgains.com/auth/publishers/{PUBLISHER_ID}/campaigns/1622230/feeds/products"

# Test cursor pagination with Sneakermood (1849 total, should need 2 pages)
print("=== Sneakermood cursor pagination ===")
all_ids = set()
cursor = None
for page in range(5):
    params = {"feedIds[]": [16158], "size": 1000}
    if cursor:
        params["search_cursor"] = cursor
    r = requests.get(url, headers=H, params=params, timeout=60)
    data = r.json()
    prods = data.get("data", [])
    pag = data.get("pagination", {})
    cursor = pag.get("search_cursor")
    
    new_ids = set(str(p.get("id")) for p in prods)
    overlap = all_ids & new_ids
    all_ids |= new_ids
    
    print(f"  Page {page+1}: {len(prods)} products, {len(overlap)} overlap, total unique: {len(all_ids)}, cursor={cursor}")
    
    if not prods or len(prods) < 1000:
        break
    if len(overlap) == len(new_ids):
        print("  All duplicates, stopping")
        break

print(f"\nTotal unique products: {len(all_ids)}")
