"""Build remaining person shards for face generation."""
import importlib
import json
import sys
from pathlib import Path

sys.path.insert(0, r"C:\Users\c5717\Downloads\modgle-demo-faces")
import generate_faces as gf

importlib.reload(gf)

root = Path(r"C:\Users\c5717\Downloads\modgle-demo-faces")
have = set()
for p in root.glob("DEMO*.jpg"):
    if p.stat().st_size <= 8000:
        continue
    if len(p.stem) == 8 and p.stem.startswith("DEMO"):
        have.add(p.stem)

people = gf.load_people()
todo = []
for p in people:
    if p["demo_id"] in have:
        continue
    prompt, kind = gf.build_prompt(p)
    todo.append(
        {
            "demo_id": p["demo_id"],
            "display_name": p["display_name"],
            "gender": p["gender"],
            "age": int(p["age"]) if p["age"] is not None else 30,
            "country": p["country"],
            "kind": kind,
            "prompt": prompt,
        }
    )

print("have", len(have), "todo", len(todo))
n = 3
for i in range(n):
    shard = todo[i::n]
    path = root / f"remaining_{i+1}.json"
    path.write_text(json.dumps(shard, indent=2), encoding="utf-8")
    print(path.name, len(shard), shard[0]["demo_id"] if shard else "-", "->", shard[-1]["demo_id"] if shard else "-")
